學習Linux命令筆記
1.命令基本格式 [[email protected] ~]# ls [[email protected] ~]# ls -l 顯示詳細資訊 ==== [[email protected] ~]# ll 檔案大小[[email protected] ~]# ls -lh 檔案最後一次的修改時間 檔名 [[email protected] ~]# ls -a 顯示所有檔案,包括隱藏檔案 .點開頭的是隱藏檔案 [[email protected] ~]# ls -ld 檢視目錄屬性 [[email protected]
[[email protected] ~]# find /etc -size +20k -a -size -50k -exec ls -lh { } \; 第一條命令的搜尋結果交由exec後的命令處理 [[email protected] ~]# grep “size” anaconda.cfg 在anaconda.cfg檔案裡找包含有size關鍵字的行 [[email protected] ~]# grep -v“size” anaconda.cfg 在anaconda.cfg檔案裡找不含有size關鍵字的行 4.幫助命令 [[email protected] ~]# man man 檢視man的幫助文件 [[email protected] ~]# man ls 檢視ls命令的格式方法(輸入-d,自動跳轉到-d上,按字母n鍵向下跳,按Shift+n鍵向上跳) [[email protected] ~]# man -f 檢視man命令有哪些幫助級別 [[email protected] ~]# man -f passwd 檢視passwd有哪些幫助級別 [[email protected] ~]# man 1 passwd 檢視passwd 1級別的幫助文件 [[email protected] ~]# man -f null 檢視null有哪些幫助級別 [[email protected] ~]# man 4 null 檢視null 4級別的幫助文件 [[email protected] ~]# whereis ifconfig ifconfig的目錄位置 [[email protected] ~]# apropos passwd 檢視所有包含passwd關鍵字的幫助文件 [[email protected] ~]# ls –help 檢視選項幫助 [[email protected] ~]# help shell 獲取shell內部命令的幫助 [[email protected] ~]# whereis cd 確定是否是shell內部命令(找不到執行檔案就是內部命令) [[email protected] ~]# help cd 獲取內部命令幫助 [[email protected] ~]# info ls ls最詳細的幫助文件 5.壓縮命令 5.1 .zip [[email protected] ~]# zip longzls.zip longzls 壓縮longzlsw檔案(壓縮包用紅色表示) [[email protected] ~]# zip -r jp.zip jp 壓縮jp目錄 [[email protected] ~]# unzip longzls.zip 解壓縮longzls.zip檔案 [[email protected] ~]# unzip jp.zip 解壓縮jp.zip目錄 5.2 .gz [[email protected] ~]# gzip longzls 壓縮longzls檔案,原始檔消失 [[email protected] ~]# gzip -c longzls > longzls.gz 壓縮longzls檔案,原始檔保留 [[email protected] ~]# gzip -r jp 壓縮jp目錄下的所有子檔案 [[email protected] ~]# gzip -d longzls.gz 解壓縮longzls檔案 [[email protected] ~]# gunzip longzls.gz 解壓縮longzls檔案 [[email protected] ~]# gunzip -r jp 解壓縮jp目錄下的所有子檔案 5.3 .bz2 [[email protected] ~]# bzip2 longzls 壓縮longzls檔案,不保留原始檔 [[email protected] ~]# bzip2 -k longzls 壓縮longzls檔案,保留原始檔 [[email protected] ~]# bzip2 -d longzls.bz2 解壓縮longzls檔案,不保留原始檔(-k保留原始檔) [[email protected] ~]# bunzip2 longzls.bz2 解壓縮longzls檔案(-k保留原始檔) 5.4 .tar.gz .tar.bz2 [[email protected] ~]# tar -cvf jp.tar jp 把目錄打包 [[email protected] ~]# gzip jp.tar 壓縮目錄為jp.tar.gz [[email protected] ~]# bzip2 jp.tar 壓縮目錄為jp.tar.bz2 [[email protected] ~]# tar -xvf jp.tar 把目錄解打包 [[email protected] ~]# tar -zcvf jp.tar.gz 壓縮目錄為jp.tar.gz [[email protected] ~]# tar -xcvf jp.tar.gz 解壓縮目錄為jp.tar.gz [[email protected] ~]# tar -jcvf jp.tar.bz2 jp 壓縮目錄為jp.tar.bz2 [[email protected] ~]# tar -jxvf jp.tar.bz2 -C /tmp/ 解壓縮jp.tar.bz2目錄為tmp [[email protected] ~]# tar -zcvf /tmp/test.tar.ga jp anaconda.cfg 壓縮jp目錄和 anaconda.cfg檔案到tmp目錄下 [[email protected] ~]# tar -ztvf test.tar.ga 檢視壓縮目錄,不解壓 6.壓縮命令 [[email protected] ~]# date 檢視時間 [[email protected] ~]# shutdown -r 05:30 5:30時候關機(Ctrl+C終止退出) [[email protected] ~]# shutdown -r 05:30 & 把這條命令在計算機後臺執行(按兩下回車就回到虛擬機器) [[email protected] ~]# shutdown -c 取消前一個關機命令 [[email protected] ~]# shutdown init5 啟動圖形介面(init 呼叫系統級別) [[email protected] ~]# runlevel 檢視系統執行級別(前面的數代表之前級別,後面的數代表當前正在執行的級別) [[email protected] ~]# cat /etc/inittab 修改系統預設級別 [[email protected] ~]# logout 退出登入命令 7.其他命令 7.1掛載 [[email protected] ~]# mount 查詢系統中已掛載的裝置 (/dev儲存所有特殊裝置 ,硬體裝置的目錄; /sd表示伺服器介面,串列埠硬碟;a代表第1塊硬碟,b代表第2塊硬碟; 5 代表第5個邏輯分割槽;/ 根分割槽; ext4 代表檔案系統; rw讀寫許可權) [[email protected] ~]# vi /etc/fstab 檢視/etc/fstab的內容,自動掛載 [[email protected] ~]# mount -a 依據配置檔案/etc/fstab的內容,自動掛載 [[email protected] ~]# vi hello.sh [[email protected] ~]# chmod 755 hello.sh [[email protected] ~]# ll hello.sh [[email protected] ~]# mount -o remount,noexec /home/ [[email protected] ~]# ./hello.sh執行結果:沒有許可權 [[email protected] ~]# mkdir /mnt/cdrom 建立掛載點 [[email protected] ~]# mount -t iso9660 /dev/sr0 /mnt/cdrom 掛載光碟 [[email protected] ~]# cd /mnt/cdrom/ [[email protected] ~]# ls 檢視掛載光碟內容 [[email protected] ~]# umount /mnt/cdrom/ 解除安裝掛載光碟 [[email protected] ~]# fdisk -l 檢視系統中已經識別的硬碟 7.2使用者登入檢視 [[email protected] ~]# w 檢視登入使用者資訊 [[email protected] ~]# who 檢視登入使用者資訊 [[email protected] ~]# last 檢視當前登入和過去登入的使用者資訊 [[email protected] ~]# lastlog 檢視所有使用者的最後一次登入時間 8.指令碼執行方式 [[email protected] ~]# echo “hello world” 輸出命令 [[email protected] ~]# echo -e“hello\b world” 刪除左側字元 [[email protected] ~]# echo -e“\x68\t\x65\t\x6c\n\x6c\t\x6f” 輸出hello 9.別名 [[email protected] ~]# alias 檢視別名 [[email protected] ~]# alias ls=’ls –color=never’ 設定別名 [[email protected] ~]# vi /root/.bashrc 讓別名永久生效 [[email protected] ~]# vi source .bashrc 不用退出登入,讓別名生效 [[email protected] ~]# unalias vi 刪除vi的別名 10.快捷鍵 按兩下Tab鍵,列出所有的目錄或命令,可進行程式碼補全
11.歷史命令 [[email protected] ~]# history 檢視歷史命令 [[email protected] ~]# history -w 把歷史命令強制寫入/.bash_history檔案中 [[email protected] ~]# history -c 清空歷史命令 [[email protected] ~]# vi /etc/profile 歷史命令預設儲存1000條,進入/etc/profile目錄中,找到HISTSIZE,可以改儲存命令的條數 [[email protected] ~]# !n 重複執行第n條命令 [[email protected] ~]# !! 重複執行上一條命令 [[email protected] ~]# !ls 重複執行後一個ls開頭的命令 12.輸出重定向 [[email protected] ~]# ifconfig > test.log 把ifconfig的結果儲存到test.log中(會覆蓋) [[email protected] ~]# ifconfig >> test.log 把ifconfig的結果儲存到test.log中(會追加) [[email protected] ~]# datecang 2>> test.log 把datacang的報錯資訊儲存到test.log中(注意沒有空格) [[email protected] ~]# ifconfig >> test2.log 2>&1 把正確輸出和錯誤輸出儲存在同一個檔案中 [[email protected] ~]# ls &>> test3.log 把正確輸出和錯誤輸出儲存在同一個檔案中 [[email protected] ~]# ls &>/dev/null 把命令扔到垃圾站中 [[email protected] ~]# cat xdy >> access.log 2>>error.log 把正確輸出儲存到access.log,把錯誤輸出儲存到error.log 12.輸入重定向 [[email protected] ~]# wc 寫東西,Ctrl+d 統計行數,單詞數,位元組數 [[email protected] ~]# wc < access.log 統計檔案內容 [[email protected] ~]# wc << access(標記) 統計標記之間內容 13.管道符 [[email protected] ~]# date ; ls ; cd /etc ; ls ; pwd 多個命令順序執行 [[email protected] ~]# date ; tar -zcvf etc.tar.gz /etc ; date 執行tar -zcvf etc.tar.gz /etc需要多長時間 [[email protected] ~]# ls && echo yes 第一條命令若報錯,則不會執行第二條命令 [[email protected] ~]# ls || echo yes 第一條命令若報錯,還會執行第二條命令 [[email protected] ~]# ls && echo yes || echo no 判斷命令是否正確執行 ,正確列印 yes ,錯誤列印 no [[email protected] ~]# ls -l /etc | more 用檔案分屏檢視ls裡的檔案(命令1正確執行之後會把結果傳給命令2) [[email protected] ~]# netstat -an 檢視系統當中所有的網路連線 [[email protected] ~]# netstat -an | grep ESTABLISHED 檢視伺服器上連線的個客戶端 [[email protected] ~]# netstat -an | grep ESTABLISHED | wc -1 統計有多少個客戶端 [[email protected] ~]# mkdir cinema [[email protected] ~]# cd cinema/ [[email protected] cinema]# pwd /root/cinema [[email protected] cinema]# touch cin1 [[email protected] cinema]# touch cin2 [[email protected] cinema]# touch cin36 [[email protected] cinema]# touch cinema4 [[email protected] cinema]# ls cin1 cin2 cin36 cinema4 [[email protected] cinema]# ls cin* 匹配0個或多個字元(輸出:cin1 cin2 cin36 cinema4)
[[email protected] cinema]# ls cin? 匹配1個任意字元 (cin1 cin2) [[email protected] cinema]# ls cin[0-9][0-9] 匹配中括號中任意一個字元 (cin36 ) [[email protected] cinema]# aa=123