1. 程式人生 > >學習Linux命令筆記

學習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]

~]# ls -i 顯示inode 2.檔案處理命令 2.1目錄處理命令 [[email protected] ~]# mkdir bols 直接建立目錄 [[email protected] ~]# touch bols /hr 在bols目錄下建立hr檔案 [[email protected] ~]# mkdir -p japan/cangls 可以遞迴建立目錄 [[email protected] ~]# cd /japan 進入japan目錄 [[email protected] ~]# cd ~ 進入當前使用者的家目錄 [
[email protected]
~]# cd - 進入上次目錄 [[email protected] ~]# cd .. 進入上一級目錄 [[email protected] ~]# cd . 進入當前目錄 [[email protected] ~]# pwd 查詢當前所在位置 [[email protected] ~]# rmdir bols/ 刪除空白目錄 [[email protected] ~]# rm -rf abc/ 刪除所有目錄 [[email protected] ~]# cp anaconda-ks.cfg /tmp/ana 複製檔案(加/ana表示把anaconda-ks.cfg檔名改為ana複製) [
[email protected]
~]# cp -r japan/ /tmp/ 複製目錄(把japan目錄複製到tmp目錄下) [[email protected] ~]# date 顯示當前系統時間 [[email protected] ~]# cp -a anaconda-ks.cfg /tmp/ 全部複製,包括檔案的屬性,時間等隱藏資訊 [[email protected] ~]# mv japan/ /tmp/japan1 剪下命令(原始檔和目標檔案不在同一目錄下) [[email protected] ~]# mv anaconda-ks.cfg longls 改名命令(原始檔和目標檔案在同一目錄下,把 anaconda-ks.cfg 改為 longls) [[email protected] ~]# ls bin、sbin儲存的系統命令,sbin超級使用者才可以執行 [[email protected] ~]# ls usr/ bin、sbin儲存的系統命令,sbin超級使用者可以執行 [[email protected] ~]# ls boot/ 啟動目錄,儲存使用者的啟動資料,不能隨便寫入資料,寫滿系統便不能啟動 [[email protected] ~]#ls dev/ 特殊檔案儲存目錄,硬體檔案 [[email protected] ~]#ls lib/ 函式庫的儲存位置 [[email protected] ~]#ls etc/ 系統預設配置檔案 [[email protected] ~]#ls home/ 普通使用者的家目錄 [[email protected] ~]#ls root/ 超級使用者家目錄 [[email protected] ~]#ls media/,mnt/,misc/ 空目錄,來作為外界的儲存碟符( media來外掛光碟,mnt來外掛U盤或行動硬碟) [[email protected] ~]#ls proc/,sys/ 不能直接操作,這兩個目錄儲存的是記憶體的過載點 [[email protected] ~]#ls tmp/ 臨時目錄,存放臨時資料 [[email protected] ~]#ls var/ 儲存系統的可變文件目錄 2.2檔案處理命令 2.3連結命令 [[email protected] ~]# ln /root/anaconda-ks.cfg /tmp/ana.hard /tmp/ana.hard是 /root/anaconda-ks.cfg檔案的硬連結,引用計數加1 [[email protected] ~]# vi /root/anaconda-ks.cfg 開啟root目錄下的anaconda-ks.cfg檔案 [[email protected] ~]# ln -s /root/cangls /tmp/cangls.soft /tmp/cangls.soft是 /root/cangls檔案的軟連結 [[email protected] ~]# echo 1111 >> /root/cangls 給檔案裡寫內容 [[email protected] ~]# cat /root/cangls 讀取檔案裡的內容 3.檔案搜尋命令 [[email protected] ~]# locate install.log 在後臺數據庫(/var/lib/mlocate)中按檔名搜尋檔案 [[email protected] ~]# updatedb 強制更新資料庫 [[email protected] ~]# whereis ls ls命令的所在位置和幫助文件 [[email protected] ~]# which ls ls命令的所在位置和對應的別名(如果有別名的話) [[email protected] ~]# echo $PATH 檢視系統搜尋命令的路徑 [[email protected] ~]# find / -name install.log 搜尋檔名為install.log的檔案 [[email protected] ~]# find /root -name “install.log*”模糊匹配搜尋檔名為install.log的檔案 [[email protected] ~]# find /root -name “ab[cd]” 搜尋以ab開頭,c或d結尾的檔案 * 匹配任意內容 ? 匹配任意一個字元 [ ] 匹配任意一箇中括號內的字元 [[email protected] ~]# find /root -user root 按照所有者為root在root目錄下搜尋檔案 [[email protected] ~]# find /root -nouser 搜尋沒有所有者的檔案(①sys和proc目錄產生的沒有所有者的檔案,是核心產生的檔案;②外來檔案產生的沒有所有者的檔案;③除上述兩者情況,Linux其他檔案都有所有者,如果沒有所有者,則是垃圾檔案,手工清除) [[email protected] ~]# find /var/log/ -mtime +10 查詢10天前修改的檔案 [[email protected] ~]# find . -size +25k 在當前目錄下查詢大於25k的檔案 [[email protected] ~]# find /etc -size +25M 在etc下查詢大於25M的檔案 [[email protected] ~]# find /root -inum 262422 知道i結點查詢檔名 [[email protected] ~]# find /etc -size +20k -a -size -50k 在etc下查詢大於20k小於50k的檔案

[[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