• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業
    • 60秒人工響應
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補償
    您的位置: 網站首頁 > 幫助中心>文章內容

    linux 小技巧

    發布時間:  2012/8/13 18:01:15

    前言:因為用Linux的時間越來越長,所需要做的事也越來越多,效率成了我必需突破的瓶頸。在此總結一下這段時間用過的一些好的Linux技巧。以后時常補充這樣自己要用的時候就很方便了。
    Author:Ajian
    [文本處理]
    1、查看某文件的一部分
    如果你只想看文件的前 5 行,可以使用 head 命令,
    如:head -5 /etc/passwd
    如果你想查看文件的后 10 行,可以使用 tail 命令,
    如:tail -10 /etc/passwd
    查看文件中間一段,可以使用 sed 命令
    如:sed –n '5,10p' /etc/passwd 這樣你就可以只查看文件的第 5 行到第 10 行

    2、將 file.txt 里的123改為 456
    方法 1
    sed 's/123/456/g' file.txt > file.txt.new   修改的保存到其它文件
    sed -i 's/123/456/g' file.txt 直接修改原文件
    方法 2
    vi file.txt
    輸入命令:
    :%s/123/456/g
    注意:如果替換的文件有特殊符號如/就要用\來取消。
    例:sed -i 's/\/usr\/local\/apache2\/htdocs/\/var\/www\/html/g' /usr/local/apache2/conf/httpd.conf
    如果只是下原有的行后添加就用&
    例:sed -i 's/DirectoryIndex index.html index.html.var/& index.htm index.php /g' /usr/local/apache2/conf/httpd.conf
    3、echo 典型應用
    echo "abcdefg" | perl -lne '{$a = reverse($_); print $a;}' 把一個字符串翻轉
    echo bottle|rev 把一個字符串翻轉

    [文件目錄管理]
    1、刪除幾天以前的所有東西(包括目錄名和目錄中的文件)
    1) find . -ctime +3 -exec rm -rf {} \;
    2) find ./ -mtime +3 -print|xargs rm -f –r

    2、在多級目錄中查找某個文件的方法
    1) find /dir -name filename.ext
    2) du -a | grep filename.ext
    3) locate filename.ext

    3、刪除軟硬連接注意點
    刪除軟件連接的時候一定要記得不要在刪除的文件夾后加一斜杠,
    rm -f filename/  
    會說這是一個文件夾不能刪除
    rm filename
    會提示說是否要刪除這個連接。
    如果用的第一種可能會把其它文件都刪除

    4、刪除目錄中含輸入關鍵字的文件
    find /mnt/ebook/ -type f -exec grep "在此輸入關鍵字" {} \; -print -exec rm {} \;

    5、在當前目錄下解壓 rpm 文件
    cat kernel-ntfs-2.4.20-8.i686.rpm | rpm2cpio | pax –r

    6、用命令清空 Root 回收站中的文件
    cd /var/.Trash-root
    rm -rf *

    [系統與安全]
    1、讓用戶的密碼必須有一定的長度,并且符合復雜度
    vi /etc/login.defs,修改 PASS_MIN_LEN

    2、用 dat 查詢昨天的日期
    date --date='yesterday'

    3、修改系統時
    1) 設置你的時區: timeconfig 里選擇Asia/Shanghai (如果你位于 GMT+8 中國區域)
    2) 與標準時間服務器校準: ntpdate time.nist.gov
    date -s “2003-04-14 cst”,cst 指時區,時間設定用 date -s 18:10
    修改后執行 clock -w 寫到 CMOS
    3) 將當前軟件系統時間寫入硬件時鐘: hwclock –systohc

    4、改變 redhat 的系統語言/字符集
    修改 /etc/sysconfig/i18n 文件,如
    LANG="en_US",xwindow會顯示英文界面,
    LANG="zh_CN.GB18030",xwindow會顯示中文界面。
    還有一種方法
    cp /etc/sysconfig/i18n $HOME/.i18n
    vi $HOME/.i18n 文件,如
    LANG="en_US",xwindow會顯示英文界面,
    LANG="zh_CN.GB18030",xwindow會顯示中文界面。
    這樣就可以改變個人的界面語言,而不影響別的用戶

    5、查看系統信息
    cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)
    cat /proc/interrupts - 中斷
    cat /proc/ioports - 設備 IO端口
    cat /proc/meminfo - 內存信息(i.e. mem used, free, swap size)
    cat /proc/partitions - 所有設備的所有分區
    cat /proc/pci - PCI設備的信息
    cat /proc/swaps - 所有 Swap 分區的信息
    cat /proc/version - Linux 的版本號 相當于 uname -r
    uname -a - 看系統內核等信息

    6、讓 linux自動同步時間
    vi /etc/crontab
    加上一句:
    00 0 1 * * root rdate -s time.nist.gov

    7、如何防止某個關鍵文件被修改
    在 Linux 下,有些配置文件是不允許任何人(包括 root)修改的。為了防止被誤刪除或修改
    可以設定該文件的“不可修改位(immutable) ”。命令如下:
    # chattr +i /etc/fstab
    如果需要修改文件則采用下面的命令:
    # chattr -i /etc/fstab
    [管理與網絡]
    1、 lsof 用法小全
    lsof abc.txt 顯示開啟文件 abc.txt 的進程
    lsof -i :22 知道 22 端口現在運行什么程序
    lsof -c nsd 顯示 nsd 進程現在打開的文件
    lsof -g gid 顯示歸屬 gid 的進程情況
    lsof +d /usr/local/ 顯示目錄下被進程開啟的文件
    lsof +D /usr/local/ 同上,但是會搜索目錄下的目錄,時間較長
    lsof -d 4   顯示使用 fd 為4 的進程
    lsof -i [i] 用以顯示符合條件的進程情況
    語法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
    46 --> IPv4 or IPv6
    protocol --> TCP or UDP
    hostname --> Internet host name
    hostaddr --> IPv4 位置
    service --> /etc/service中的 service name (可以不止一個)
    port --> 端口號(可以不止一個)
    例子: TCP:25 - TCP and port 25
    @1.2.3.4 - Internet IPv4 host address 1.2.3.4
    tcp@ohaha.ks.edu.tw:ftp - TCP protocol host:ohaha.ks.edu.tw service name:ftp
    lsof -n 不將 IP轉換為 hostname,預設是不加上-n參數
    例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n
    lsof -p 12    看進程號為 12的進程打開了哪些文件

    2、grep 不顯示本身進程
    #ps -aux|grep httpd|grep -v grep
    grep -v grep可以取消顯示你所執行的 grep 本身這個進程,-v 參數是不顯示所列出的進程名

    3、查看本機IP
    ifconfig |grep "inet" |cut -c 0-36|sed -e 's/[a-zA-Z: ]//g'
    hostname –i

    4、查看有多少活動的Httpd進程
    #!/bin/sh
    while (true)
    do
    pstree |grep "*\[httpd\]$"|sed 's/.*-\([0-9][0-9]*\)\*\[httpd\]$/\1/'
    sleep 3
    done
    同樣可以引用到其它的進程

    5、設置 com1口,讓超級終端通過 com1口進行登錄
    第一步:確認有/sbin/agetty,編輯/etc/inittab,添加
    7:2345:respawn:/sbin/agetty /dev/ttyS0 9600
    9600bps 是因為連路由器時缺省一般都是這種速率,也可以設成
    19200、38400、57600、115200
    第二步:修改/etc/securetty,添加一行:ttyS0,確保 root 用戶能登錄
    第三步:重啟機器,就可以拔掉鼠標鍵盤顯示器(啟動時最好還是要看看輸出信息)了

    6、查找或刪除正在使用某文件的進程
    fuser filename
    fuser -k filename

    7、已知網絡中一個機器的硬件地址,如何知道它所對應的 IP地址
    在 Linux 下,假定要查“00:0A:EB:27:17:B9”這樣一個硬件地址所對應的 IP 地址,可以使
    用以下命令:
    # cat /proc/net/arp |grep 00:0A:EB:27:17:B9
    192.168.2.54 0x1 0x6 00:0A:EB:27:17:B9 *eth2
    另外,還可以用“arp -a”命令查詢:
    # arp –a|grep 00:0A:EB:27:17:B9
    (192.168.2.54)at 00:0A:EB:27:17:B9[ether] on eth2

    8、在 Linux下如何綁定 IP地址和硬件地址
    可以編輯一個地址對應文件,里面記錄了 IP地址和硬件地址的對應關系,然后執行“arp –
    f 地址對應文件”。如果沒有指定地址對應文件,則通常情況下一默認文件/etc/ethers為準。
    地址對應文件的格式如下:
    192.168.0.1 00:0D:61:27:58:93
    192.168.0.2 00:40:F4:2A:2E:5C
    192.168.0.3 00:0A:EB:5E:BA:8E

    9、更改 eth0是否混雜模式(混雜模式可以監聽其它主機的信息)
    網卡 eth0 改成混雜模式:
    ifconfig eth0 promisc
    關閉混雜模式:
    ifconfig eth0 –promisc

    10、linux下清空 arp表的命令
    #arp -d -a(適用于 bsd)
    for HOST in `arp | sed '/Address/d' | awk '{ print $1}'` ; do arp -d $HOST; done

    11、如何得到網卡的 MAC地址
    arp -a | awk '{print $4}'
    ifconfig eth0 | head -1 | awk '{print $5}'

    12、一個網卡綁定多 ip
    方法一、建立eth0:1在網卡后加冒號和數字的文件
    cp /etc/sysconfig/network-scripts/eth0 /etc/sysconfig/network-scripts/eth0:1
    再修改下eth0:1就可以了.
    方法二、
    在/etc/sysconfig/network-scripts/下創建一個文件:ifcfg-ethX-rangeX ("X"為網卡號)
    文件內容:
    IPADDR_START=<start ip>
    IPADDR_END=<end ip>
    CLONENUM=0
    可以有 256個 ip

    13、一個 ip如何綁定兩塊網卡
    假設 192.168.0.88 是ip,192.168.0.1 是網關:
    /sbin/modprobe bonding miimon=100 mode=1
    /sbin/ifdown eth0
    /sbin/ifdown eth1
    /sbin/ifconfig bond0 192.168.0.88
    /sbin/ifenslave bond0 eth0 eth1
    /sbin/route add default gw 192.168.0.1

    14、設置ssh 上來能不自動斷線
    修改自己 HOME 目錄下的.bash_profile文件,加上
    export TMOUT=1000000 (以秒為單位)
    然后運行 source .bash_profile

    15、mount 局域網上其他windows機器共享出的目錄
    mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom

    16、向登陸到同一臺服務器上的所有用戶發一條信息
    1)輸入 wall并回車
    2)輸入要發送的消息
    3)結束時按“Control-d”鍵,消息即在用戶的控制窗口中顯示

    17、向遠程機器上的所有用戶發送消息
    使用 rwall(向所有人遠程寫)命令同時發送消息到網絡中的所有用戶。
    rwall hostname file
    當使用 CDE或 OpenWindows 等窗口系統時,每個窗口被看成是一次單個的登錄;
    如果用戶登錄次數超過一次則消息直接發送到控制窗口
    18、向網絡中的所有用戶發送消息
    發送消息到網絡中的所有用戶
    1)輸入 rwall -n netgroup 并回車
    2)輸入要發送的消息
    3)結束時按“Control-d”鍵,消息即在系統每個用戶的控制窗口中顯示,下面是系統管理員
    發消息到網絡組 Eng 每個用戶的例子:
    % rwall -n EngSystem will be rebooted at 11:00.(Control-d)
    %
    用戶控制窗口中的消息:Broadcast message from root on console…System will be rebooted at
    11:00.EOF
    注意:也可以通過 rwall hostname(主機名)命令到系統的所有用戶

    19、 將 top的結果輸出到文件中
    top -d 2 -n 3 -b >test.txt
    可以把 top 的結果每隔 2秒,打印 3次,這樣后面頁的進程也能夠看見了

    20、裝雙系統不能看到另一個系統的解決辦法
    首先光盤啟動,進入 rescue 模式,運行 GRUB,進入 grub 提示符 grub>,然后敲入下面的
    語句,重啟就好了。
    root (hd0,2),setup (hd0)

    21、壓縮傳輸文件或目錄
    傳輸到遠程:tar czf - www | ssh server "tar zxf -"
    壓縮到遠程:tar czf - www | ssh server "cat > www.tar.gz"
    解壓到遠程:ssh server "tar zxf -" < www.tar.gz
    解壓到本地:ssh server "cat www.tar.gz" | tar zxf -

    22、命令行下發送帶附件的郵件
    方法 1.      uuencode <in_file> <remote_file> | mail -s "title" mail@address
    <in_file> 本地需要作為附件的文件名。
    <remote_file> 郵件中的附件文件名,可以和<in_file>不同,其實內容一樣。
    方法 2.       cat <mailcontent.txt> | mutt -s "title" -a <attachfile> mail@address
    <mailcontent.txt>郵件正文內容。
    <attachfile>本地需要作為附件的文件名。
    [Mysql維護]
    1、mysql 的數據庫存放在什么地方
    1) 如果使用 rpm包安裝,應該在/var/lib/mysql 目錄下,以數據庫名為目錄名
    2) 如果源碼安裝在/usr/local/mysql中,應該在/usr/local/mysql/var中,以數據庫名為目錄名
    2、 從 mysql 中導出和導入數據
    導出數據庫
    mysqldump 數據庫名 > 文件名
    導入數據庫
    mysqladmin create 數據庫名
    mysql 數據庫名 < 文件名

    3、忘了 mysql 的 root 口令怎么辦
    # service mysql stop
    # mysqld_safe --skip-grant-tables &
    # mysqladmin -u user password 'newpassword''
    # mysqladmin flush-privileges

    4、 mysqld 起來了,卻無法登錄,提示"/var/lib/mysql/mysql.sock"不存在
    這種情況大多數是因為你的 mysql 是使用 rpm 方式安裝的,它會自動尋找
    /var/lib/mysql/mysql.sock 這個文件,
    通過 unix socket 登錄 mysql。
    常見解決辦法如下:
    1)創建/修改文件 /etc/my.cnf,至少增加/修改一行
    [mysql]
    [client]
    socket = /tmp/mysql.sock
    #在這里寫上你的 mysql.sock 的正確位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/ 下
    2)指定 IP地址,使用 tcp 方式連接mysql,而不使用本地 sock 方式
    #mysql -h127.0.0.1 -uuser -ppassword
    3)為 mysql.sock 加個連接,比如說實際的 mysql.sock 在 /tmp/ 下,則
    # ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock即可

    5、 導出數據的幾種常用方法
    1)使用 mysqldump
    #mysqldump -uuser -ppassword -B database --tables table1 --tables table2 >
    dump_data_20051206.sql
    詳細的參數
    2)backup to語法
    mysql>BACKUP TABLE tbl_name[,tbl_name...] TO '/path/to/backup/directory';
    詳細請查看 mysql 手冊
    3)mysqlhotcopy
    #mysqlhotcopy db_name [/path/to/new_directory]

    #mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory

    #mysqlhotcopy db_name./regex/
    詳細請查看 mysql 手冊
    4)select into outfile
    詳細請查看 mysql 手冊
    5)客戶端命令行
    #mysql -uuser -ppassword -e "sql statements" database > result.txt
    以上各種方法中,以 mysqldump 最常用

    6、 如何在命令行上執行 sql 語句
    #mysql -uuser -ppassword -e "sql statements" database

    7、 導入備份出來文件的常見方法
    1)由 mysqldump 出來的文件
    #mysql -uuser -ppassword [database] < dump.sql
    2)文件類型同上,使用 source 語法
    mysql>source /path_to_file/dump.sql;
    3)按照一定格式存儲的文本文件或 csv 等文件
    #mysqlimport [options] database file1 [file2....]
    詳細請查看 mysql 手冊
    4)文件類型同上,也可以使用 load data 語法導入
    詳細請查看 mysql 手冊
    一、Solaris修改主機名

    1. 編輯/etc/hosts

    2. 編輯/etc/hostname.網卡名

    3. 編輯/etc/nodename

    4. 編輯/etc/net/ticots/hosts

    5. 編輯/etc/net/ticosord/hosts

    6. 編輯/etc/net/ticlts/hosts

    二、網卡配置方法

    1.查看網卡是否已經安裝

    # ls /dev |grep “網卡名”

    2.配置網卡接口名稱

    # vi /etc/hostname.網卡名

    Myethernet

    3.配置子網掩碼

    # vi /etc/inet/netmasks

    192.168.0.0    255.255.255.0

    4.配置網卡接口地址

    # vi /etc/inet/hosts

    127.0.0.1 localhost

    192.168.0.100 Myethernet

    5.統一配置文件

    # vi /etc/inet/ipnodes

    ::localhost

    127.0.0.1 localhost

    192.168.0.105 Myethernet     loghost

    三、修改主機名

    1.編輯/etc/hosts

    2.編輯/etc/hostname.bge0

    3.編輯/etc/nodename

    4.編輯/etc/net/ticots/hosts

    5.編輯/etc/net/ticotsord/hosts

    6.編輯/etc/net/ticlts/hosts

    四、建立、取消網卡邏輯IP

    1.建立

    # ifconfig e1000g0:1 plumb up

    # ifconfig e1000g0:1 10.0.0.1 netmask 255.255.255.0 up

    2.取消

    # ifconfig e10000:1 unplumb

    3.永久性生效,需要修改/etc/hosts、/etc/hostname.e1000g0:1、/etc/inet/ipnodes 文件。

    五、SOLARIS運行級別

    0 進入OK狀態 (需要SUN的PROM芯片支持)

    1 管理狀態 (單用戶模式,禁止其他用戶登陸)

    2 多用戶模式 (沒有網絡文件共享服務)

    3 多用戶模式 (有網絡文件共享服務)

    4 保留,未使用

    5 退出操作系統并關機

    6 重啟

    S,s 單用戶模式

    六、磁盤命名

    邏輯設備:在/dev/目錄下的設備名

    物理設備:在/device/目錄下的設備名

    說明:邏輯設備通常容易被我們區分,而物理設備由KERNEL直接去識別,所以比較難理解。一般我們去記某一設備的邏輯設備名就可以了。

    Sun使用下列命名方式定義邏輯設備名

    /dev/[r]dsk/cXtXdXsX

             c:邏輯控制器號 

             t:物理總線目標號

             d:磁盤式邏輯單元號(LUN SCSI設備為0)

             s:分區號

    七、文字模式與WINDOWS模式的開關命令

    # /usr/dt/bin/dtconfig –[de]

    -d disable

    -e enable

    八、顯示完全程序名的ps命令

    /usr/ucb/ps –auxwww

    相當于linux下ps –ef –cols

    九、Solaris - ping命令查看主機IP地址

    ping命令加上-a或-s即可查看主機IP地址:
    #ping -a hostname
    or
    #ping -s hostname

    十、ls命令的幾個技巧

    按時修改間(modification time)排序:ls -t, ls -lt, ls -1t, ls -Ct

    按訪問時間(access time)排序:ls -u

    按文件大小排序:ls -lS

    顯示所有文件,除了.及..:ls -A

    十一、刪除“-”開頭的文件

    對于文件名中含-的文件,rm命令容易認為這是命令選項,用rm *報:

    rm: ERROR: Illegal option -- c

    usage: rm [-fiRr] file...

    刪除的方法:

    1 rm ./-filename 這樣使-不是第一個字符。

    2.rm -- -filename 用--告訴rm這是最后一個選項,參見getopt。有的系統用

    rm - -filename

    3.ls -i 列出inum ;用find . -inum inum_of_thisfile -exec rm '{}' \;

    用這種方法可以刪除含特殊字符的文件。

    十二、>重定向

    1.你也可以輸出重定向到一個設備里,因為linux把所有設備都看成文件

    比如,當多用戶登錄是,A用戶使用的是pts/0終端

    你可以用這種方式和他聊天

    echo "hi" > /dev/pts/0

    不過這種方法很流氓,而且需要你對這個設備有寫權

    2.新建文件

    >aaa         新建文件aaa

    >-aaa        新建文件-aaa

    3.清空文件

    >aaa

    linux技巧

    ++實現RedHat非正常關機的自動磁盤修復
    先登錄到服務器,然后在/etc/sysconfig里增加一個文件autofsck,內容如下:
    AUTOFSCK_DEF_CHECK=yes
    PROMPT=yes

    ++改變文件或目錄之最后修改時間(變為當前時間)
    執行格式:touch name ( name 可為文件或目錄名稱。)

    ++如何設置login后歡迎信息
    修改/etc/motd,往里面寫入文本即可。

    ++如何設置login前歡迎界面
    修改/etc/issue或者issue.net,往里面寫入文本。
    issue的內容是出現在本機登錄的用戶界面上,而issue.net則是在用戶通過網絡telnet的時候出現。

    ++如何修改網卡MAC地址
    首先必須關閉網卡設備,否則會報告系統忙,無法更改。
    命令是: /sbin/ifconfig eth0 down
    修改 MAC 地址,這一步較 Windows 中的修改要簡單。
    命令是:/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
    重新啟用網卡 /sbin/ifconfig eht0 up
    網卡的 MAC 地址更改就完成了

    ++建立別名/刪除別名
    alias cp='cp -i'
    unalias cp

    ++如何知道某個命令使用了什么庫文件
    例如要知道ls使用了什么庫文件,可以使用:
    $ ldd /bin/ls

    ++如何使一個用戶進程在用戶退出系統后仍然運行
    使用nohup command &,比如:nohup wget -c ftp://test.com/test.iso
    #這樣即使用戶退出系統,wget進程仍然繼續運行直到test.iso下載完成為止

    ++如何限制用戶的最小密碼長度
    修改/etc/login.defs里面的PASS_MIN_LEN的值。比如限制用戶最小密碼長度是8:
    PASS_MIN_LEN 8

    ++如何取消root命令歷史記錄以增加安全性
    為了設置系統不記錄每個人執行過的命令,就在/etc/profile里設置:
    HISTFILESIZE=0
    HISTSIZE=0
    或者:
    ln -s /dev/null ~/.bash_history

    ++如何測試硬盤性能
    使用hdparm -t -T /dev/hdX就可以測試硬盤的buffer-cache reads和buffered disk reads兩個數據,可以用來當作硬盤性能的參考。
    同時使用hdparm -c3 /dev/hdaX還能設置硬盤以32bit傳輸,以加快數據傳輸的速度。

    ++如何列出一個目錄占用的空間
    du或du -s或du -k
    du -S | sort -n 可以迅速發現那個目錄是最大的。
    用df可以看到已安裝的文件系統的空間大小及剩余空間大小。
    quota -v查看用戶的磁盤空間信息,如果你用quota限制了用戶空間大小的話。

    ++如何使新用戶首次登陸后強制修改密碼
    #useradd -p ‘’ testuser; chage -d 0 testuser

    ++在Linux中有時開機不自動檢查新硬件,新安裝的網卡找不到。請問怎么解決?
    答:自動檢查新硬件的服務是Kudzu,用戶可以用“ntsysv”命令啟動該服務。下次重啟就會找到用戶的新網卡。

    ++從臺灣省的一個 網站找到的,如何讓系統密碼和samba密碼一致,并可以讓用戶自行修改他們的密碼.
    使用web界面來同步更改system passwd 及 samba password
    下載 http://changepassword.sourceforge.net/
    安裝就可以了.先看README哈.
    附加:
    將系統用戶批量倒成samba用戶.
    less /etc/passwd | mksmbpasswd.sh >; /etc/samba/smbpasswd

    ++更改Linux啟動時用圖形界面還是字符界面
    cd /etc
    vi inittab
    將id:5:initdefault: 其中5表示默認圖形界面
    改id:3: initdefault: 3表示字符界面

    ++配置smb可以被哪些IP所用.
    cd /etc/samba
    Vi smb.conf
    找到hosts allow = 192.168.1. 192.168.2. 127.
    修改其為哪些機器所用,注意IP之間用逗號分開
    舉例:
    hosts allow =192.168.1.110,192.168.1.120

    ++禁止在后臺使用CTRL-ALT-DELETE重起機器
    cd /etc/inittab
    vi inittab 在文件找到下面一行
    # Trap CTRL-ALT-DELETE
    ca::ctrlaltdel:/sbin/shutdown -t3 -r now (注釋掉這一行)
    如: # Trap CTRL-ALT-DELETE
    #ca::ctrlaltdel:/sbin/shutdown -t3 -r now

    ++修改主機名
    vi /etc/sysconfig/network
    修改HOSTNAME一行為HOSTNAME=主機名

    ++查看開機檢測的硬件
    dmesg | more

    ++查看硬盤使用情況
    df –m

    ++查看目錄的大小
    du –sh dirname

    ++解壓小全
    tar xvfj lichuanhua.tar.bz2
    tar xvfz lichuanhua.tar.gz
    tar xvfz lichuanhua.tgz
    tar xvf lichuanhua.tar
    unzip lichuanhua.zip
    注:壓縮 tar cvfz FileName.tar.gz DirName

    ++顯示內存使用情況
    free –m

    ++顯示系統運行了多長時間
    uptime

    ++顯示開機自檢的內容命令
    dmesg

    ++端口的詳細列表
    /etc/services

    ++查看物理信息
    lspci

    ++文本截面的中文支持
    RH 9.0自帶安裝包 zhcon_0.2.3_1.rh9.i386.rpm
    安裝完成后,執行: zhcon 就可以支持中文了

    ++linux 控制 windows
    (1)用RH9.0自己帶rdesktop,版本是1.2.0
    命令:rdesktop –u user –f 192.168.1.70 色默認的是8位
    (2)要達到16色,就要下載新版本1.3.0
    rdesktop –a 16 –u lichuanhua –g 800*600 192.168.1.70

    ++不讓顯示器休眠
    setterm –blank 0

    ++顯示最后一個登錄到系統的用戶
    last

    ++查看所有帳號的最后登錄時間
    lastlog /var/log/lastlog

    ++查看系統自開通以來所有用戶的登錄時間和地點
    cat /var/log/secure

    ++顯示當前用戶所屬信息
    id

    ++如何知道Apache的連接數目
    ps -ef|grep httpd|wc -l #其它服務可以類推
    netstat -nat|grep -i “80″|wc -l # 以上結果再減1吧

    ++刪除用戶帳號的同時,把用戶的主目錄也一起刪除
    userdel -r 用戶名

    ++修改已有用戶的信息
    usermod [參數] 用戶名
    參數: -c, -d, -m, -g, -G, -s, -u以及-o與adduser參數意義相同
    新參數: -l 新用戶名(指定一個新的賬號,即將原來的用戶名改為新的用戶名)

    ++改變redhat的系統語言/字符集
    改 /etc/sysconfig/i18n 文件,如
    LANG=”en_US”,xwindow會顯示英文界面,
    LANG=”zh_CN.GB18030″,xwindow會顯示中文界面。
    還有一種方法
    cp /etc/sysconfig/i18n $HOME/.i18n
    修改 $HOME/.i18n 文件,如
    LANG=”en_US”,xwindow會顯示英文界面,
    LANG=”zh_CN.GB18030″,xwindow會顯示中文界面。
    這樣就可以改變個人的界面語言,而不影響別的用戶
    vi .bashrc
    export LANG=zh_CN.GB2312
    export LC_ALL=zh_CN.GB2312

    ++cd光盤做成iso文件
    cp /dev/cdrom xxxx.iso

    ++快速觀看開機的硬件檢測
    dmesg | more

    ++查看硬盤的使用情況
    df -k 以K為單位顯示
    df -h 以人性化單位顯示,可以是b,k,m,g,t..

    ++查看目錄的大小
    du -sh dirname
    -s 僅顯示總計
    -h 以K、M、G為單位,提高信息的可讀性。KB、MB、GB是以1024為換算單 位, -H以1000為換算單位。

    ++查找或刪除正在使用某文件的進程
    fuser filename
    fuser -k filename

    ++linux中讓用戶的密碼必須有一定的長度,并且符合復雜度
    vi /etc/login.defs,改PASS_MIN_LEN

    ++以不同的用戶身份運行程序
    su - username -c “/path/to/command”
    有時候需要運行特殊身份的程序, 就可以讓su來做

    ++ adduser m -g cvsroot -s /bin/false
    添加用戶m,參數-s /bin/false表示不允許用戶直接登錄服務器
    id m
    顯示m用戶的uid和gid號。

    ++ 強制卸載rpm包
    rpm -e –nodeps 包名稱
    #個別不正常情況下:
    rm -f /var/lib/rpm/__*
    rpm –rebuilddb

    ++拒絕除root用戶的其它用戶登陸
    touch /etc/nologin
    也可以在/etc/passwd中加!對指定用戶限制登陸

    ++檢查自己所屬之群組名稱
    執行格式:groups

    ++修改文件/文件夾所屬用戶組(支持-R)
    chown .組名 文件名(注:組名名勿忘”.”,“:”也可)
    也可chgrp 組名 文件名
    chown 用戶名.組名 文件名(同時修改所屬用戶及用戶組)

    ++用fuser命令查看一下是哪些進程使用這個分區上的文件:
    fuser –v –m /usr
    如果沒有什么重要的進程,用以下命令停掉它們:
    fuser -k –v –m /usr
    然后就可以重新掛載這些文件系統了。

    ++網絡喚醒主機
    ether-wake 目標網卡MAC

    ++如何查找大小為500K到1000K之間的文件
    find / -type f -size +500k -and -size -1000k

    ++讓主機不響應ping
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    若想恢復就用
    echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    #必須是用命令改,不能是vi修改

    ++自動注銷ROOT
    編輯你的配置文件”vi /etc/profile”,在"HISTSIZE="后面加入下面這行:
    TMOUT=300
    #300,表示300秒

    ++ls只列出目錄
    ls -lF | grep ^d
    ls -lF | grep /$
    ls -F | grep /$

    ++讓cron任務不回饋信息
    * * * * * cmd > /dev/null 2>&1

    ++lsof(list open files)用法
    lsof -i :xx
    lsof abc.txt 顯示開啟文件abc.txt的進程
    lsof -i :22 知道22端口現在運行什么程序
    lsof -c nsd 顯示nsd進程現在打開的文件
    lsof -g gid 顯示歸屬gid的進程情況

    ++改變sshd 的端口
    在/etc/ssh/sshd_config 中加入一行:Port 2222,/etc/init.d/sshd restart 重啟守護進程

    ++防止任何人使用su 命令成為root
    vi /etc/pam.d/su,在開頭添加下面兩行:
    auth sufficient /lib/security/pam_rootok.so
    auth required /lib/security/Pam_wheel.so group=wheel
    然后把用戶添加到“wheel”組:chmod -G10 username

    ++如何讓ssh 只允許指定的用戶登錄
    方法1:在/etc/pam.d/sshd 文件中加入
    auth required pam_listfile.so item=user sense=allow file=/etc/sshusers onerr=fail
    然后在/etc 下建立sshusers 文件,加入允許使用ssh 服務的用戶名(每一個用戶名都要單獨一行),重新起動sshd

    ++利用ssh 復制文件
    1、從A 復制B(推過去)   #scp -rp /path/filename username@remoteIP:/path
    2、從B 復制到A(拉過來)#scp -rp username@remoteIP:/path/filename /path

    ++linux機器掛載windows上的共享文件
    windows IP:192.168.1.1
    mount -t smbfs -o username=massky,password=massky //192.168.1.1/dbf /mnt/share
    如想機器重啟自動掛載,vi /etc/fstab最后加入:
    //192.168.1.1/dbf /mnt/share smbfs defaults,auto,username=massky,password=massky 0 0

    ++定制linux 提示符
    在bash 中提示符是通過一個環境變量$PS1 指定的。用export $PS1 查看現在的值,比較直
    觀常用的提示符可以設定為export PS1=“[\u@\h \W]\$”。其中\u 代表用戶名,\h 代表主機
    名,\W 代表當前工作目錄的最后一層,如果是普通用戶\$則顯示$,root 用戶顯示#。

    ++清空文件
    [echo] > 文件名

    ++DNS相關
    host -a domain.com #顯示相關資訊都列出來
    host domain.com 202.106.0.20 #用202.106.0.20這臺DNS服務器查詢domain.com

    ++前后臺任務相關
    jobs 列出屬于當前用戶的進程
    bg 將進程搬到后臺運行(Background)
    fg 將進程搬到前臺運行(Foreground)
    萬一你運行程序時忘記使用“&”了,又不想重新執行。可以先使用ctrl+z掛起程序,然后敲入bg命令,這樣程序就在后臺繼續運行了。

    ++查找當前目錄下七天前的文件,并刪除
    find ./ -mtime +7 -type f -exec rm {} \;

    ++產生指定大小的文件(bs*count)
    dd if=/dev/zero of=filename bs=1000000 count=10

    ++查找當前目錄下文件并更改擴展名
    更改所有.ss文件為.aa
    # find ./ -name "*.ss" -exec rename .ss .aa '{}' \;

    ++修改系統時間
    date -s "2005-6-4 17:26"

    ++讓服務器自動同步時間
    0 1 * * * /usr/sbin/ntpdate 210.72.145.44
    或 0 1 * * * rdate -s time.nist.gov

    ++解決打開文件過多的問題
    在etc/security/limits.conf 配置文件中設置進程文件描述符極限:
    * soft nofile 2048
    * hard nofile 4096
    系統級文件描述符極限及timeout時間修改,添加如下兩行到 /etc/rc.d/rc.local 啟動腳本中:
    # Increase system-wide file descriptor limit.
    echo 65536 > /proc/sys/fs/file-max
    echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
    #一般情況下,最大打開文件數比較合理的設置為每4M物理內存256,比如1G內存可以設為65536,
    #而最大的使用的i節點的數目應該是最大打開文件數目的3倍到4倍

    ++如何用tar打包一個目錄時,去掉其中的某些子目錄或指定文件
    加參數 –exclude 即可, 可加文件名或目錄名, 可多寫
    tar cvf –exclude {dirname,filename} #dirname不要加/

    ++終端下修改服務器時區
    /usr/sbin/timeconfig
    或直接#/etc/sysconfig/clock

    ++關閉啟動時的內存不足256M提示
    #vi /etc/rc.sysinit #把最后六行注釋掉
    或#vi /var/lib/supportinfo
    把其中的 MinRAM: 256M 這個值調低點.

    ++在多層目錄中查找到某一指定"字符串"
    grep string -R /etc/sysconfig/
    find ./pathname/ -name '*' | xargs grep 'string'

    ++占用CPU的一個命令
    #yes string #有時候測試用得上。狂占CPU

    ++Kill相關
    kill -STOP [pid]
    發送SIGSTOP (17,19,23)停止一個進程,而并不消滅這個進程。
    kill -CONT [pid]
    發送SIGCONT (19,18,25)重新開始一個停止的進程。
    kill -KILL [pid]
    發送SIGKILL (9)強迫進程立即停止,并且不實施清理操作。
    kill -9 -1
    終止你擁有的全部進程。

    ++在當前目錄下建個bak目錄,然后 cp * bak,會提示略過bak,有其它辦法可以排除指定文件(夾)?
    ls -F|grep -v \/|xargs -i cp {} bak #推薦
    或 find ! -name "./bak"

    ++ 根據進程名顯示進程號
    # pidof httpd
    1846 1845 1844 1843 1842 1841 1840 1839 1820

    ++e2fsck
    檢查使用 Linux ext2 檔案系統的 partition 是否正常工作, 檢查 /dev/hda5 是否正常,如果有異常便自動修復,并且設定若有問答,均回答[是] :
    e2fsck -a -y /dev/hda5

    ++反向輸出
    rev 反向輸出(以行為單位)
    tac 反向輸出(全文)

    ++顯示終端號
    tty

    ++文件行數/字數統計
    wc –l file   計算文件行數
    wc -w file 計算文件中的單詞數
    wc -c file   計算文件中的字符數

    ++出每行第5個到第9個字符
    cut -b5-9 file.txt

    ++刪除文本文件中出現的行列
    uniq

    ++返回文件所在路徑
    dirname /bin/tux #將返回 /bin

    ++fcitx在英文環境下正常使用
    #vi ~/.bashrc
    xport LC_CTYPE="zh_CN.UTF-8"
    export XMODIFIERS="@im=fcitx"
    export XIM=fcitx
    export XIM_PROGRAM=fcitx
    #gnome-session-properties可以把fctix加入登入后自啟動

    ++split分割合并文件
    split -b1440k a_whopping_big_file chunk #拆
    cat chunk* > a_whopping_big_file #合

    刪除 core 文件

    # find ~ -name core -exec file {} ; -exec rm -i {} ;

    查看使用文件的進程

    # fuser -u /usr/my_application/foo

    搜索字符串

    #grep "hello world" `find ./ -name "*" -print -exec file {} ; |grep text | cut -d ':' -f 1`

    目錄

    #alias dir='ls -Lla|grep ^d'


    輸出 IP 地址

    #ifconfig | grep "inet addr" | grep -v "127.0.0.1" | awk '{print $2;}' | awk -F':' '{print $2;}'

    按文件長度排序

    #ls -l | grep ^- | sort -nr -k 5 | more

    #ls -lR | grep ^- | sort -nr -k 5 | more


    二進制文件中的可打印字符

    # strings name of binary file

    一個月的最后一個星期天執行任務:

    18 * * * 0 [`date "+%d"` -gt 24] && /path/to/script


    修改擴展名:

    # for f in *.abc; do mv $f `basename $f .abc`.def ; done


    查看硬盤情況:(Solaris)

    # iostat -En


    整個目錄樹拷貝:

    # cd

    # find . -depth -print | cpio -pudm


    按長度排序目錄下所有文件

    # du -a | sort -n -r | more


    檢查文件內每行是否有相同列數

    #awk '{print NF}' test.txt |sort -nu|more


    去除空行

    #sed -e '/^[ ]*$/d' InputFile >OutputFile


    查看進程占用的對應文件 inode 號(Solaris)

    #/usr/proc/bin/pfiles


    刪除指定用戶的所有進程

    # kill -9 `ps -fu username |awk '{ print $2 }'|grep -v PID`


    Bash 操作快捷鍵:

    ctrl-l -- clear screen

    ctrl-r -- does a search in the previously given commands so that you don't

    have to repeat long command.

    ctrl-u -- clears the typing before the hotkey.

    ctrl-a -- takes you to the begining of the command you are currently typing.

    ctrl-e -- takes you to the end of the command you are currently typing in.

    esc-b -- takes you back by one word while typing a command.

    ctrl-c -- kills the current command or process.

    ctrl-d -- kills the shell.

    ctrl-h -- deletes one letter at a time from the command you are typing in.

    ctrl-z -- puts the currently running process in background, the process

    can be brought back to run state by using fg command.

    esc-p -- like ctrl-r lets you search through the previously given commands.

    esc-. -- gives the last command you typed.


    文件名里的空格替換為下劃線

    # for i in $1 ; do mv "$i" `echo $i | sed 's/ /_/g'` ; done


    查看遠程主機時間

    # telnet remotehostname 13|grep :


    只顯示 top 命令的states 行

    #while true; do top -d 2 | col -b | grep states; sleep 10; done


    加速顯示 tar 文件內容

    # tar tvfn


    讓 目錄名也能 Spell Check

    #shopt -s cdspell

    當輸錯命令時,系統會自動進入類似的目錄


    查看 Sun 服務器型號

    # /usr/platform/`uname -m`/sbin/prtdiag -v | grep `uname -m`


    在vi 中一行文字前后添加字符

    :/^(.*)/s//我要 1 添加/


    查找某包含字符串(Verita)軟件包的詳細信息 (Solaris)

    pkginfo -l `pkginfo | grep -i VERITAS | awk '{print $2}'`


    億恩科技地址(ADD):鄭州市黃河路129號天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
       聯系:億恩小凡
       QQ:89317007
       電話:0371-63322206


    本文出自:億恩科技【www.vbseamall.com】

    服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      1
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線