必須掌握的Linux命令 系統狀態檢測命令 1.ifconfig命令 ifconfig命令用於獲取網卡配置與網路狀態等信息,格式為“ifconfig [網路設備] [參數]”。 使用ifconfig命令來查看本機當前的網卡配置與網路狀態等信息時,其實主要查看的就是網卡名稱、inet參數後面的IP地址 ...
必須掌握的Linux命令
系統狀態檢測命令
1.ifconfig命令
ifconfig命令用於獲取網卡配置與網路狀態等信息,格式為“ifconfig [網路設備] [參數]”。
使用ifconfig命令來查看本機當前的網卡配置與網路狀態等信息時,其實主要查看的就是網卡名稱、inet參數後面的IP地址、ether參數後面的網卡物理地址(又稱為MAC地址),以及RX、TX的接收數據包與發送數據包的個數及累計流量(即下麵加粗的信息內容):
[root@linuxprobe ~]# ifconfig eno16777728: flags=4163 mtu 1500 inet 192.168.10.10 netmask 255.255.255.0 broadcast 192.168.10.255 inet6 fe80::20c:29ff:fec4:a409 prefixlen 64 scopeid 0x20 ether 00:0c:29:c4:a4:09 txqueuelen 1000 (Ethernet) RX packets 36 bytes 3176 (3.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 38 bytes 4757 (4.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2.uname命令
uname命令用於查看系統內核與系統版本等信息,格式為“uname [-a]”。
在使用uname命令時,一般會固定搭配上-a參數來完整地查看當前系統的內核名稱、主機名、內核發行版本、節點名、系統時間、硬體名稱、硬體平臺、處理器類型以及操作系統名稱等信息。
[root@linuxprobe ~]# uname -a Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux
順帶一提,如果要查看當前系統版本的詳細信息,則需要查看redhat-release文件,其命令以及相應的結果如下:
[root@linuxprobe ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.0 (Maipo)
3.uptime命令
uptime用於查看系統的負載信息,格式為uptime。
顯示當前系統時間、系統已運行時間、啟用終端數量以及平均負載值等信息。平均負載值指的是系統在最近1分鐘、5分鐘、15分鐘內的壓力情況。
[root@linuxprobe ~]# uptime 22:49:55 up 10 min, 2 users, load average: 0.01, 0.19, 0.18
4.free命令
free用於顯示當前系統中記憶體的使用量信息,格式為“free [-h]”。
5.who命令
who用於查看當前登入主機的用戶終端信息,格式為“who [參數]”。
6.last命令
last命令用於查看所有系統的登錄記錄,格式為“last [參數]”。
7.history命令
history命令用於顯示歷史執行過的命令,格式為“history [-c]”。
執行history命令能顯示出當前用戶在本地電腦中執行過的最近1000條命令記錄。如果覺得1000不夠用,還可以自定義/etc/profile文件中的HISTSIZE變數值。在使用history命令時,如果使用-c參數則會清空所有的命令歷史記錄。還可以使用“!編碼數字”的方式來重覆執行某一次的命令。
[root@linuxprobe ~]# history 1 tar xzvf VMwareTools-9.9.0-2304977.tar.gz 2 cd vmware-tools-distrib/ 3 ls 4 ./vmware-install.pl -d 5 reboot 6 df -h 7 cd /run/media/ 8 ls 9 cd root/ 10 ls 11 cd VMware\ Tools/ 12 ls 13 cp VMwareTools-9.9.0-2304977.tar.gz /home 14 cd /home 15 ls 16 tar xzvf VMwareTools-9.9.0-2304977.tar.gz 17 cd vmware-tools-distrib/ 18 ls 19 ./vmware-install.pl -d 20 reboot 21 history [root@linuxprobe ~]# !15 anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Desktop Downloads Music Public Videos
8.sosreport命令
sosreport命令用於收集系統配置及架構信息並輸出診斷文檔,格式為sosreport。診斷文檔用於提供給第三方來進行維護。
[root@linuxprobe ~]# sosreport sosreport (version 3.0) This command will collect diagnostic and configuration information from this Red Hat Enterprise Linux system and installed applications. An archive containing the collected information will be generated in /var/tmp and may be provided to a Red Hat support representative. Any information provided to Red Hat will be treated in accordance with the published support policies at: https://access.redhat.com/support/ The generated archive may contain data considered sensitive and its content should be reviewed by the originating organization before being passed to any third party. No changes will be made to system configuration. Press ENTER to continue, or CTRL-C to quit. 此處敲擊回車來確認收集信息 Please enter your first initial and last name [linuxprobe.com]:此處敲擊回車來確認主機編號 Please enter the case number that you are generating this report for:此處敲擊回車來確認主機編號 Running plugins. Please wait ... Running 70/70: yum... Creating compressed archive... Your sosreport has been generated and saved in: /var/tmp/sosreport-linuxprobe.com-20170905230631.tar.xz The checksum is: 79436cdf791327040efde48c452c6322 Please send this file to your support representative.
工作目錄切換命令
工作目錄指的是用戶當前在系統中所處的位置。
1.pwd命令
pwd命令用於顯示用戶當前所處的工作目錄,格式為“pwd [選項]”。
[root@linuxprobe etc]# pwd /etc
2.cd命令
cd命令用於切換工作路徑,格式為“cd [目錄名稱]”。
除了常見的切換目錄方式,還可以使用“cd -”命令返回到上一次所處的目錄,使用“cd..”命令進入上級目錄,以及使用“cd ~”命令切換到當前用戶的家目錄,亦或使用“cd ~username”切換到其他用戶的家目錄。例如,可以使用“cd 路徑”的方式切換進/etc目錄中:
[root@linuxprobe ~]# cd /etc
同樣的道理,可使用下述命令切換到/bin目錄中:
[root@linuxprobe etc]# cd /bin
此時,要返回到上一次的目錄(即/etc目錄),可執行如下命令:
[root@linuxprobe bin]# cd - /etc [root@linuxprobe etc]#
還可以通過下麵的命令快速切換到用戶的家目錄:
[root@linuxprobe etc]# cd ~ [root@linuxprobe ~]#
3.ls命令
ls命令用於顯示目錄中的文件信息,格式為“ls [選項] [文件] ”。
使用ls命令的“-a”參數看到全部文件(包括隱藏文件),使用“-l”參數可以查看文件的屬性、大小等詳細信息。將這兩個參數整合之後,再執行ls命令即可查看當前目錄中的所有文件並輸出這些文件的屬性信息:
[root@linuxprobe ~]# ls -al total 60 dr-xr-x---. 14 root root 4096 May 4 07:56 . drwxr-xr-x. 17 root root 4096 May 4 15:55 .. -rw-------. 1 root root 1213 May 4 15:44 anaconda-ks.cfg -rw-------. 1 root root 957 May 4 07:54 .bash_history -rw-r--r--. 1 root root 18 Dec 28 2013 .bash_logout -rw-r--r--. 1 root root 176 Dec 28 2013 .bash_profile -rw-r--r--. 1 root root 176 Dec 28 2013 .bashrc drwx------. 10 root root 4096 May 4 07:56 .cache drwx------. 15 root root 4096 May 4 07:49 .config -rw-r--r--. 1 root root 100 Dec 28 2013 .cshrc drwx------. 3 root root 24 May 4 07:46 .dbus drwxr-xr-x. 2 root root 6 May 4 07:49 Desktop drwxr-xr-x. 2 root root 6 May 4 07:49 Documents drwxr-xr-x. 2 root root 6 May 4 07:49 Downloads -rw-------. 1 root root 16 May 4 07:49 .esd_auth -rw-------. 1 root root 628 May 4 07:56 .ICEauthority -rw-r--r--. 1 root root 1264 May 4 07:48 initial-setup-ks.cfg drwx------. 3 root root 18 May 4 07:49 .local drwxr-xr-x. 2 root root 6 May 4 07:49 Music drwxr-xr-x. 2 root root 6 May 4 07:49 Pictures drwxr-xr-x. 2 root root 6 May 4 07:49 Public -rw-r--r--. 1 root root 129 Dec 28 2013 .tcshrc drwxr-xr-x. 2 root root 6 May 4 07:49 Templates drwxr-xr-x. 2 root root 6 May 4 07:49 Videos -rw-------. 1 root root 1962 May 4 07:54 .viminfo
如果想要查看目錄屬性信息,則需要額外添加一個-d參數。例如,可使用如下命令查看/etc目錄的許可權與屬性信息:
[root@linuxprobe ~]# ls -ld /etc drwxr-xr-x. 132 root root 8192 Jul 10 10:48 /etc
文本文件編輯命令
Linux系統中“一切都是文件”
1.cat命令
cat命令用於查看純文本文件(內容較少的),格式為“cat [選項] [文件]”。
顯示行號在後面追加一個-n參數:
[root@linuxprobe ~]# cat -n initial-setup-ks.cfg 1 #version=RHEL7 2 # X Window System configuration information 3 xconfig --startxonboot 4 5 # License agreement 6 eula --agreed 7 # System authorization information 8 auth --enableshadow --passalgo=sha512 9 # Use CDROM installation media 10 cdrom 11 # Run the Setup Agent on first boot 12 firstboot --enable 13 # Keyboard layouts 14 keyboard --vckeymap=us --xlayouts='us' 15 # System language 16 lang en_US.UTF-8 ………………省略部分輸出信息………………
2.more命令
more命令用於查看純文本文件(內容較多的),格式為“more [選項]文件”。
[root@linuxprobe ~]# more initial-setup-ks.cfg
3.head命令
head命令用於查看純文本文檔的前N行,格式為“head [選項] [文件]”。
查看文本中前20行的內容:
[root@linuxprobe ~]# head -n 20 initial-setup-ks.cfg #version=RHEL7 # X Window System configuration information xconfig --startxonboot # License agreement eula --agreed # System authorization information auth --enableshadow --passalgo=sha512 # Use CDROM installation media cdrom # Run the Setup Agent on first boot firstboot --enable # Keyboard layouts keyboard --vckeymap=us --xlayouts='us' # System language lang en_US.UTF-8 ignoredisk --only-use=sda # Network information network --bootproto=dhcp --device=eno16777728 --onboot=off --ipv6=auto [root@linuxprobe ~]#
4.tail命令
tail命令用於查看純文本文檔的後N行或持續刷新內容,格式為“tail [選項] [文件]”。
查看文本內容的最後20行:
[root@linuxprobe ~]# tail -f /var/log/messages May 4 07:56:38 localhost gnome-session: Window manager warning: Log level 16: STACK_OP_ADD: window 0x1e00001 already in stack May 4 07:56:38 localhost gnome-session: Window manager warning: Log level 16: STACK_OP_ADD: window 0x1e00001 already in stack May 4 07:56:38 localhost vmusr[12982]: [ warning] [Gtk] gtk_disable_setlocale() must be called before gtk_init() May 4 07:56:50 localhost systemd-logind: Removed session c1. Aug 1 01:05:31 localhost systemd: Time has been changed Aug 1 01:05:31 localhost systemd: Started LSB: Bring up/down networking. Aug 1 01:08:56 localhost dbus-daemon: dbus[1124]: [system] Activating service name='com.redhat.SubscriptionManager' (using servicehelper) Aug 1 01:08:56 localhost dbus[1124]: [system] Activating service name='com.redhat.SubscriptionManager' (using servicehelper) Aug 1 01:08:57 localhost dbus-daemon: dbus[1124]: [system] Successfully activated service 'com.redhat.SubscriptionManager' Aug 1 01:08:57 localhost dbus[1124]: [system] Successfully activated service 'com.redhat.SubscriptionManager'
5.tr命令
tr命令用於替換文本文件中的字元,格式為“tr [原始字元] [目標字元]”。
把某個文本內容中的英文全部替換為大寫:
[root@linuxprobe ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z] #VERSION=RHEL7 # SYSTEM AUTHORIZATION INFORMATION AUTH --ENABLESHADOW --PASSALGO=SHA512 # USE CDROM INSTALLATION MEDIA CDROM # RUN THE SETUP AGENT ON FIRST BOOT FIRSTBOOT --ENABLE IGNOREDISK --ONLY-USE=SDA # KEYBOARD LAYOUTS KEYBOARD --VCKEYMAP=US --XLAYOUTS='US' # SYSTEM LANGUAGE LANG EN_US.UTF-8 # NETWORK INFORMATION NETWORK --BOOTPROTO=DHCP --DEVICE=ENO16777728 --ONBOOT=OFF --IPV6=AUTO NETWORK --HOSTNAME=LOCALHOST.LOCALDOMAIN # ROOT PASSWORD ROOTPW --ISCRYPTED $6$PDJJF42G8C6PL069$II.PX/YFAQPO0ENW2PA7MOMKJLYOAE2ZJMZ2UZJ7BH3UO4OWTR1.WK/HXZ3XIGMZGJPCS/MGPYSSOI8HPCT8B/ # SYSTEM TIMEZONE TIMEZONE AMERICA/NEW_YORK --ISUTC USER --NAME=LINUXPROBE --PASSWORD=$6$A9V3INSTNBWEIR7D$JEGFYWBCDOOOKJ9SODECCDO.ZLF4OSH2AZ2SS2R05B6LZ2A0V2K.RJWSBALL2FEKQVGF640OA/TOK6J.7GUTO/ --ISCRYPTED --GECOS="LINUXPROBE" # X WINDOW SYSTEM CONFIGURATION INFORMATION XCONFIG --STARTXONBOOT # SYSTEM BOOTLOADER CONFIGURATION BOOTLOADER --LOCATION=MBR --BOOT-DRIVE=SDA AUTOPART --TYPE=LVM # PARTITION CLEARING INFORMATION CLEARPART --NONE --INITLABEL %PACKAGES @BASE @CORE @DESKTOP-DEBUGGING @DIAL-UP @FONTS @GNOME-DESKTOP @GUEST-AGENTS @GUEST-DESKTOP-AGENTS @INPUT-METHODS @INTERNET-BROWSER @MULTIMEDIA @PRINT-CLIENT @X11 %END
6.wc命令
wc命令用於統計指定文本的行數、字數、位元組數,格式為“wc [參數] 文本”。
7.stat命令
stat命令用於查看文件的具體存儲信息和時間等信息,格式為“stat 文件名稱”。
stat命令可以用於查看文件的存儲信息和時間等信息,命令stat anaconda-ks.cfg會顯示出文件的三種時間狀態(已加粗):Access、Modify、Change。這三種時間的區別將在下麵的touch命令中詳細詳解:
[root@linuxprobe ~]# stat anaconda-ks.cfg File: ‘anaconda-ks.cfg’ Size: 1213 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 68912908 Links: 1 Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:admin_home_t:s0 Access: 2017-07-14 01:46:18.721255659 -0400 Modify: 2017-05-04 15:44:36.916027026 -0400 Change: 2017-05-04 15:44:36.916027026 -0400 Birth: -
8.cut命令
cut命令用於按“列”提取文本字元,格式為“cut [參數] 文本”。
提取以冒號(:)為間隔符號的第一列內容:
[root@linuxprobe ~]# cut -d: -f1 /etc/passwd root bin daemon adm lp sync
...
9.diff命令
diff命令用於比較多個文本文件的差異,格式為“diff [參數] 文件”。
接下來使用diff --brief命令顯示比較後的結果,判斷文件是否相同:
[root@linuxprobe ~]# diff --brief diff_A.txt diff_B.txt Files diff_A.txt and diff_B.txt differ
最後使用帶有-c參數的diff命令來描述文件內容具體的不同:
[root@linuxprobe ~]# diff -c diff_A.txt diff_B.txt *** diff_A.txt 2017-08-30 18:07:45.230864626 +0800 --- diff_B.txt 2017-08-30 18:08:52.203860389 +0800 *************** *** 1,5 **** ! Welcome to linuxprobe.com Red Hat certified ! Free Linux Lessons Professional guidance Linux Course --- 1,7 ---- ! Welcome tooo linuxprobe.com ! Red Hat certified ! Free Linux LeSSonS ! ////////.....//////// Professional guidance Linux Course
文件目錄管理命令
1.touch命令
touch命令用於創建空白文件或設置文件的時間,格式為“touch [選項] [文件]”。
[root@linuxprobe ~]# touch -d "2017-05-04 15:44" anaconda-ks.cfg [root@linuxprobe ~]# ls -l anaconda-ks.cfg -rw-------. 1 root root 1260 May 4 15:44 anaconda-ks.cfg
2.mkdir命令
mkdir命令用於創建空白的目錄,格式為“mkdir [選項] 目錄”。
[root@linuxprobe ~]# mkdir linuxprobe [root@linuxprobe ~]# cd linuxprobe [root@linuxprobe linuxprobe]# mkdir -p a/b/c/d/e [root@linuxprobe linuxprobe]# cd a [root@linuxprobe a]# cd b [root@linuxprobe b]#
3.cp命令
cp命令用於複製文件或目錄,格式為“cp [選項] 源文件 目標文件”。
4.mv命令
mv命令用於剪切文件或將文件重命名,格式為“mv [選項] 源文件 [目標路徑|目標文件名]”。
剪切操作不同於複製操作,因為它會預設把源文件刪除掉,只保留剪切後的文件。如果在同一個目錄中對一個文件進行剪切操作,其實也就是對其進行重命名:
[root@linuxprobe ~]# mv x.log linux.log [root@linuxprobe ~]# ls install.log linux.log
5.rm命令
rm命令用於刪除文件或目錄,格式為“rm [選項] 文件”。
[root@linuxprobe ~]# rm install.log rm: remove regular empty file ‘install.log’? y
6.dd命令
dd命令用於按照指定大小和個數的數據塊來複制文件或轉換文件,格式為“dd [參數]”。
例如我們可以用dd命令從/dev/zero設備文件中取出一個大小為560MB的數據塊,然後保存成名為560_file的文件:
[root@linuxprobe ~]# dd if=/dev/zero of=560_file count=1 bs=560M 1+0 records in 1+0 records out 587202560 bytes (587 MB) copied, 27.1755 s, 21.6 MB/s
dd命令的功能也絕不僅限於複製文件這麼簡單。如果您想把光碟機設備中的光碟製作成iso格式的鏡像文件,在Windows系統中需要藉助於第三方軟體才能做到,但在Linux系統中可以直接使用dd命令來壓制出光碟鏡像文件,將它變成一個可立即使用的iso鏡像:
[root@linuxprobe ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso 7311360+0 records in 7311360+0 records out 3743416320 bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s
7.file命令
file命令用於查看文件的類型,格式為“file 文件名”。
[root@linuxprobe ~]# file anaconda-ks.cfg anaconda-ks.cfg: ASCII text [root@linuxprobe ~]# file /dev/sda /dev/sda: block special
打包壓縮與搜索命令
1.tar命令
tar命令用於對文件進行打包壓縮或解壓,格式為“tar [選項] [文件]”。
[root@linuxprobe ~]# tar czvf etc.tar.gz /etc tar: Removing leading `/' from member names /etc/ /etc/fstab /etc/crypttab /etc/mtab /etc/fonts/ /etc/fonts/conf.d/ /etc/fonts/conf.d/65-0-madan.conf /etc/fonts/conf.d/59-liberation-sans.conf /etc/fonts/conf.d/90-ttf-arphic-uming-embolden.conf /etc/fonts/conf.d/59-liberation-mono.conf /etc/fonts/conf.d/66-sil-nuosu.conf ………………省略部分壓縮過程信息………………
接下來將打包後的壓縮包文件指定解壓到/root/etc目錄中(先使用mkdir命令來創建/root/etc目錄):
[root@linuxprobe ~]# mkdir /root/etc [root@linuxprobe ~]# tar xzvf etc.tar.gz -C /root/etc etc/ etc/fstab etc/crypttab etc/mtab etc/fonts/ etc/fonts/conf.d/ etc/fonts/conf.d/65-0-madan.conf etc/fonts/conf.d/59-liberation-sans.conf etc/fonts/conf.d/90-ttf-arphic-uming-embolden.conf etc/fonts/conf.d/59-liberation-mono.conf etc/fonts/conf.d/66-sil-nuosu.conf etc/fonts/conf.d/65-1-vlgothic-gothic.conf etc/fonts/conf.d/65-0-lohit-bengali.conf etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf ………………省略部分解壓過程信息………………
2.grep命令
grep命令用於在文本中執行關鍵詞搜索,並顯示匹配的結果,格式為“grep [選項] [文件]”。
[root@linuxprobe ~]# grep /sbin/nologin /etc/passwd bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin ………………省略部分輸出過程信息………………
3.find命令
find命令用於按照指定條件來查找文件,格式為“find [查找路徑] 尋找條件 操作”。
[root@linuxprobe ~]# find /etc -name "host*" -print /etc/avahi/hosts /etc/host.conf /etc/hosts /etc/hosts.allow /etc/hosts.deny /etc/selinux/targeted/modules/active/modules/hostname.pp /etc/hostname