歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

Linux日常維護常用命令集合整理

   網絡命令:

  # ifconfig# 顯示網絡信息,包括IP地址、數據包接收/發送情況

  # ifconfig eth0 up# 啟動eth0

  # vi /etc/sysconfig/network-scripts/ifcfg-eth0 # 更改eth0配置文件

  # iwconfig # 顯示無線網絡信息

  # sudo /etc/init.d/network restart | start | stop# 重啟網絡|啟動網絡|停止網絡

  # service network start| service networking restart# 同上

  # /etc/network/interfaces# 手動配置網絡文件

  # ifup interface# 啟用網絡接口

  # ifdown interface# 禁用網絡接口

  # wget http://xxx.com/xx.tar.gz # 下載

  # route -n# 列舉內核 IP 路由表,用來解決相關問題

  # sudo dhclient# 從DHCP服務器上獲取IP地址

  # sudo dhclient -r# 從指定的網絡接口獲取IP 地址

  # cat /etc/resolv.conf# 查看DNS 服務器

  # iwlist scan# 顯示區域內無線網絡情況

  # lshw -C network# 顯示網卡和網絡設備驅動信息(需以管理員權限運行)

  其他常用命令:

  # cat# 把檔案串連接後傳到基本輸出(屏幕)

  # more# 類似cat,會以一頁一頁的顯示,下一頁,上一頁,幫助

  # grep# 查找文件裡符合條件的字符串,若包含則顯示那一列

  # tar -zxpf xx.tar.gz# 解壓縮

  # hostname | cat /etc/sysconfig/network# 查看主機名

  # lspci -nn# 以數字和硬件名稱方式顯示連接到PCI總線的PCI供應商和設備代碼

  # lsusb# 顯示USB設備

  # lshw -C usb# 顯示USB相關的硬件上的附加信息(適用於USB加密狗)

  # yum install XX# yum安裝命令

  # yum list installed | wc -l | rpm -qa# 查看所有安裝的軟件包

  # chkconfig --list # 列出所有系統服務

  # grep on# 列出所有啟動的系統服務

  # service XX(服務) restart | stop | start# 重啟|停止|啟動XX服務

  # echo $LANG $LANGUAGE | cat /etc/sysconfig/i18n# 查看系統默認語言

  硬盤掛載:

  # mount -t 硬盤類型 硬盤 掛載點

  (硬盤類型:FAT則是msdos,FAT32則是vfat,NTFS則是ntfs)

  # fdisk -l# 查看硬盤以及所有使用情況

  # mkdir /mnt/win_disk# 在/mnt目錄下建立掛載點

  # mount -t ntfs /dev/sda6 /mnt/win_disk# 掛載sda6至/mnt/win_disk

  # unmount /mnt/win_disk# 卸載硬盤

  # mount -t iso9660 /dev/cdrom /mnt/cdrom# 掛載光盤

  # mount /dev/fd0 /mnt/floppy# 掛載軟盤

  常用命令歸類:

  系統

  # uname -a | uname -r # 查看內核/操作系統/CPU信息

  # lsb_release -a # 查看系統版本信息

  # head -n 1 /etc/issue # 查看操作系統版本

  # cat /proc/cpuinfo | more /proc/cpuinfo | grep "model name" # 查看CPU信息

  # hostname # 查看計算機名

  # lspci -tv # 列出所有PCI設備

  # lsusb -tv # 列出所有USB設備

  # lsmod # 列出加載的內核模塊

  # env # 查看環境變量

  # getconf LONG_BIT # 查看cpu位數(32 or 64)

  # more /etc/redhat-release | cat /etc/redhat-release# 查看當前linux的版本信息

  # passwd # 修改用戶密碼

  # reboot | Ctrl+Alt+Del | init 6#重啟

  # shutdown -h now | halt | init 0#關機

  資源

  # free -m # 查看內存使用量和交換區使用量

  # df -h # 查看各分區使用情況

  # du -sh <目錄名> # 查看指定目錄的大小

  # grep MemTotal /proc/meminfo # 查看內存總量

  # grep MemFree /proc/meminfo # 查看空閒內存量

  # uptime # 查看系統運行時間、用戶數、負載

  # cat /proc/loadavg # 查看系統負載

  # pwd # 查看所在目錄

  # ls -l # 顯示目錄文件列表(-a:顯示隱藏)

  磁盤和分區

  # mount | column -t # 查看掛接的分區狀態

  # fdisk -l | df -h # 查看所有分區

  # swapon -s # 查看所有交換分區

  # hdparm -i /dev/hda # 查看磁盤參數(僅適用於IDE設備)

  # dmesg | grep IDE # 查看啟動時IDE設備檢測狀況

  網絡

  # ifconfig # 查看所有網絡接口的屬性

  # iptables -L # 查看防火牆設置

  # route -n # 查看路由表

  # netstat -lntp # 查看所有監聽端口

  # netstat -antp # 查看所有已經建立的連接

  # netstat -s # 查看網絡統計信息

  # cat /etc/sysconfig/network# 查看網關

  # cat /etc/resolv.conf # 查看DNS

  進程

  # ps -ef # 查看所有進程

  # top # 實時顯示進程狀態

  # ps -auxw # 列舉當前進程ID

  # kill XX進程ID # 終止單一進程

  # killall 程序名 # 終止程序的所有進程

  # xkill # 終止X-Window程序

  用戶

  # w # 查看活動用戶

  # id <用戶名> # 查看指定用戶信息

  # last # 查看用戶登錄日志

  # cut -d: -f1 /etc/passwd # 查看系統所有用戶

  # cut -d: -f1 /etc/group # 查看系統所有組

  # crontab -l # 查看當前用戶的計劃任務

  # startx # 啟動X桌面

  # switchdesk gnome|KDE|..# 切換桌面

  服務

  # chkconfig --list # 列出所有系統服務

  # chkconfig --list | grep on # 列出所有啟動的系統服務

  程序

  # rpm -qa | wc -l # 查看所有安裝的軟件包

  # yum list installed # 同上

  # cat -n /root/install.log# 查看系統安裝時安裝的軟件包

  # more /root/install.log # 同上

  # /.configure # 配置

  # make # 編譯

  # make install # 安裝

  1、--df –hP 不管文件系統的名字多長,就不折行的輸出,這在寫監控磁盤使用率的時候很有用

  df –hP -P, --portability use the POSIX output format

  2、--在/var/log/messages篩選昨天和今天的錯誤日志

  cat /var/log/messages | grep -iE 'warning | panic | error | exception | fail' | grep "$(date | awk '{print $2" "$3}')" >>$FILENAME

  cat /var/log/messages | grep -iE 'warning | panic | error | exception | fail' | grep "$(date -d yesterday | awk '{print $2" "$3}')" >>$FILENAME

  3、-- sort根據字段來排序,-t 後跟分隔符,-k n(n代表數字)根據第幾列來排序,-n 對字符串數字進行排序

  sort -t ':' -k 3 -n /etc/passwd //對/etc/passwd文件的uid進行從小到大的排序,如下所示:

  station90.example.com# sort -n -t ":" -k 3 /etc/passwd | head -n 3

  root:x:0:0:root:/root:/bin/bash

  bin:x:1:1:bin:/bin:/bin/bash

  daemon:x:2:2:Daemon:/sbin:/bin/bash

  4、--bc 數學運算

  station90.example.com# echo "scale=3;1/5" | bc //精確到小數點幾位,需要加scale,scale默認值為0

  .200

  station90.example.com# echo "1.2*8" | bc

  9.6

  [root@station90 ~]# bc -q //-q --quiet don't print initial banner

  3*4

  12

  3/4

  0

  scale=5

  3/4

  .75000

  [root@station90 ~]# var1=2

  [root@station90 ~]# echo "scale=5;$var1/3" | bc //bc支持變量

  .66666

  [root@station90 ~]# var1=3

  [root@station90 ~]# var2=$(echo "scale=3;$var1/3" | bc)

  [root@station90 ~]# echo $var2

  1.000

  5、--取出第二行第2列的數據 NR取出第幾行的數據

  [email protected]/1211> cat 1.txt

  1 4

  2 5

  3 6

  [email protected]/1211> awk 'NR==2 {print $2}' 1.txt

  5

  每隔2s執行一次df –h

  watch –n 2 “df –h”

  ls –ltrh 人性化的顯示輸出

  rm *刪除文件報錯,可通過如下方式刪除文件

  find ./ -type f > /tmp/0110.txt

  for a in $(cat /tmp/0110.txt);do rm $a;done

  tar命令中,參數—files-from很好用,如:

  解壓tar中特定幾個文件,同時使用-C指定解壓路徑,--files-from後面的文件0110.txt存放要解壓的文件名,可進行模糊匹配

  tar -zxvf xxxxx.tar.gz -C xxxx/ --files-from 0110.txt

  在進行壓縮文件的時候,--files-from也是很好用的,如:

  對當前路徑下的文件保留十天十天,其他的進行刪除操作

  find ./ -type f –name “emcm*” –mtime +10 > /tmp/0110.txt

  tar –zcvpf xxxxx.tar.gz –files-from /tmp/0110.txt

  for a in $(cat /tmp/0110.txt);do rm $a;done

  5、split分割文件和合成文件

  split -b 70m xxx.tar.gz xxx.tar.gz_

  因網絡原因,將導出文件分割為70M,在您下載了所有文件後,執行如下命令進行合成文件:

  cat xxx.tar.gz_aa xxx.tar.gz_ab xxx.tar.gz_ac xxx.tar.gz_ad > xxx.tar.gz

  若您需要在windows上合成,如您下載文件到d盤,執行如下命令:

  C:\Users\Administrator>d:

  d:\>copy /b "xxx.tar.gz_aa"+"xxx.tar.gz_ab"+"xxx.tar.gz_ac"+"xxx.tar.gz_ad" xxx.tar.gz

  6、查看進程打開了多少個文件句柄,取前3

  [root@squid ~]# lsof -n | awk '{print $2}' | sort| uniq -c | sort -nr | head -n 3

  128 6618

  58 9945

  55 9883

  7、批量更改操作系統用戶密碼

  chpasswd < 1.txt

  cat 1.txt

  test1:$%uK83Re

  test2:$#rK8e78

  test3:#&rH9e3R

  8、當時同事正在做一些操作,可能導致存儲有問題,只要能在存儲上創建文件,則說明存儲還是OK的,這時候的工作就是時不時的去多台服務器上去創建文件,簡單重復但很累,就寫下面的腳本代替:

  腳本作用:若不能創建文件則發出響聲報警echo $'\a'

  #!/bin/bash

  for i in {1..10000}

  do

  sleep 3

  echo "xxxxxxxxxxxxxxxxxxxxx"> lhf_$i.txt

  if [ $? -eq 0 ];then

  echo "ok"

  else

  echo "failure"

  echo $'\a'

  fi

  done

  9、tac 倒著看文本,如要看最新的message日志就挺方便的

  tac /var/log/message | less

  10、grep 參數-A,-B,-C

  -A 1 取當前行和所篩選值的後一行

  -B 1 取當前行和所篩選值的前一行

  -C 1 取當前行和所篩選值的上下行

  station90.example.com:~/1205 # cat grep.txt

  1

  2

  3

  4

  5

  6

  station90.example.com:~/1205 # cat grep.txt | grep -B 1 4 //取當前行和所篩選值的前一行

  3

  4

  station90.example.com:~/1205 # cat grep.txt | grep -A 1 4 //取當前行和所篩選值的後一行

  4

  5

  station90.example.com:~/1205 # cat grep.txt | grep -C 1 4 //取當前行和所篩選值的上下行

  3

  4

  5

  11、grep –l –r參數

  搜索含有keyword關鍵字文件,-l只列出含有關鍵字的文件名,-r遞歸

  grep -l -r keyword ./

  12、grep 參數–x –w

  cat 1.txt | grep –x 192.168.1.1匹配的是行,只有這一行只有192.168.1.1的時候才進行匹配

  cat 1.txt | grep –w 192.168.1.1匹配的詞組,只要這一行有192.168.1.1就是匹配的

  13、grep –f 後跟文件名,如:

  Cat 1.txt | grep –f 2.txt 2.txt內容中的每一行都會在1.txt進行匹配下,如果1.txt文件中有匹配的,則1.txt文件將顯示匹配內容,如果2.txt和1.txt的文件都很大,是很消耗性能的

  14、更改用戶的uid和組的gid

  usermod –u uid 用戶名

  groupmod –g gid 組名

  15、sed 用法

  1、sed將號碼前的86替換成空

  sed -i 's/^86//g' 1.txt

  2、將文本中的第115行上面插入xxxxx

  sed -i "115i\xxxxx" 1.txt

  3、在開頭加上”,同時將空格替換成\+空格

  sed -i -e "s/^/\"/g" -e "s/$/\"/g" -e "s/ /\\\ /g" mdsp_filepath.txt

  4、分步寫,則為:

  sed -i "s/^/\"/g" 1.txt

  sed -i "s/ /\\\ /g" 1.txt

  5、在文件內容的末尾加上”

  sed -i "s/$/\"/g" 1.txt

  16、xargs用法

  1、批量重命名文件

  ls | xargs -i mv {} {}.bak

  2、在文件中,查詢關鍵字的信息

  find . -name '*.CDR'|xargs grep '關鍵字'

  17、awk用法

  awk –F指定分隔符,默認的分隔符為空格,如

  以|作為分隔符,取第九列

  awk -F '|' '{print $9}' 1.txt

  18、批量取文件所在的絕對路徑dirname,文件名須不帶空格

  station90.example.com~ # cat 1.txt

  /etc/ATAEV100R002C03SPC200/sles10sp2_x64.properties

  /etc/ATAEV100R002C03SPC200/1206/task.properties

  /etc/DIR_COLORS

  station90.example.com:~ # for i in $(cat 1.txt);do dirname $i;done

  /etc/ATAEV100R002C03SPC200

  /etc/ATAEV100R002C03SPC200/1206

  /etc

  19、批量取文件名basename

  station90.example.com~# for i in $(cat 1.txt);do basename $i;done

  sles10sp2_x64.properties

  task.properties

  DIR_COLORS

  netcontrol_global_hooks

  20、rsync傳輸文件

  rsync –avH –n –delete ./ [email protected]:/home/oracle/

  -n 並不會真正的傳輸,只是一種測試

  -a示以遞歸方式傳輸文件,並保持所有文件屬性

  --delete 如果遠程文件和被傳輸的目錄文件不同,則刪除(謹慎使用)

  後續繼續更新,現在腦袋就先想到了這些,朋友們覺得好的,就留言給我,我一並整出來,一起進步!!!

Copyright © Linux教程網 All Rights Reserved