Linux 基礎命令(收藏大全)
linux系統檔案結構
/ 根目錄
/bin 存放必要的命令
/boot 存放核心以及啟動所需的檔案
/dev 存放裝置檔案
/etc 存放系統配置檔案
/home 普通使用者的宿主目錄,使用者資料存放在其主目錄中lib 存放必要 的執行庫
/mnt 存放臨時的對映檔案系統,通常用來掛載使用
/proc 存放儲存程序和系統資訊
/root 超級使用者的主目錄
/sbin 存放系統管理程式
/tmp 存放臨時檔案
/usr 存放應用程式,命令程式檔案、程式庫、手冊和其它文件。
/var 系統預設日誌存放目錄錄
關閉防火牆
systemctl stop firewalld.service
禁止防火牆開機啟動
systemctl disable firewalld.service
關閉SELinux
nano -w /etc/selinux/config
將SELINUX=enforcing改為SELINUX=disabled儲存並退出:^x->y->回車
--------------
命令:ls
-a 這個選項能顯示.開頭的隱藏檔案
-i 顯示每個檔案的inode號
-m 所有專案以逗號分隔,並填滿整行行寬
-R 同時列出所有子目錄層
-h 將列出檔案的大小以人性化格式輸出
--color=tty(2個-號)顯示檔案的時候以色彩提示
目錄 可執行檔案 連線檔案 一般檔案
藍色 綠色 淡藍色 白色
檢視檔案狀態修改時間
ls -lc [檔名]
檢視檔案的訪問時間
ls -lu [檔名]
檢視檔案的最後修改時間
ls -l
顯示檔案的詳細訪問時間
ls –full-time
顯示本地目錄下以” .”開頭的檔案
ls -d .*
------------
命令: date 顯示系統當前時間
命令格式: date [選項]
-R 按照RFC822文件中的時間格式來實現時間
-r 檔名 顯示檔案的最後修改日期
-u 顯示utc時間(通用時間)
使用date檢視過去/將來的時間
1. 檢視2045年8月15日是星期幾(當前時間為2014-9-27)
date -d "+31year -1 month -12 day"
2. 顯示2014年1月1日星期幾
date -d “+3month +5day”或#date -d “+4month -26day”
--------------
命令: hwclock 顯示硬體時鐘
將系統時鐘同步至硬體時鐘
hwclock --systohc
將硬體時鐘同步至系統時鐘
hwclock --hctosys
---------------
命令: tzselect 功能:設定系統時區
1. 設定當前系統的時區
tzselect
命令: timedatectl 功能:設定系統時間及日期
語法格式:timedatectl [選項] [日期]
示例:
1. 顯示各項當前時間
timedatectl
2. 顯示系統所支援的時間區域
timedatectl list-timezones
3.設定當前系統的時間區域
timedatectl set-timezone Asia/Shanghai
4. 設定當前系統時間
timedatectl set-time “2014-09-0912:29:30”
5.設定NTP支援
timedatectl set-ntp true
-------------
命令: mkdir 建立目錄
-p 建立多級目錄
-m 在建立目錄的時候給目錄賦於許可權值
示例: mkdir -p /name/a/b/c
--------
命令: rmdir 刪除空目錄
-p 刪除多級空目錄
示例: mkdir -p /name/a/b/c
注意:目錄本身一定要是空的
------------
命令: rm 刪除檔案/目錄
-i 在刪除檔案之前需要手工確認
-v 在刪除檔案的時候顯示資訊
-r 刪除目錄 -f 忽略提示
示例: rm -v filename
常用選項: rm -rf 目錄名
-----------
命令:cp 複製命令
cp [選項] 檔名(原件) 目的檔名(影印件)
-R 複製整個目錄裡的內容
-p 複製完後保持目錄的許可權值
-v 在複製檔案的時候顯示進度
-f 在複製的時候如果碰到目的檔名有重複就將原先的刪除
------------
命令: mv 移動檔案或目錄/修改檔案或目錄名
命令格式: mv [選項] 原始檔 目的路徑
-i 如果目的地有相同檔名時會出現提示
-v 在搬移檔案時顯示進度,在移動多檔案時非常有用
-u 當移動時只有原始檔比目的檔案新的時候才會移動
-f 強制覆蓋已有的檔案
示例: mv -i 1.jpg /home/2.jpg
-------------
命令: pwd 顯示當前工作路徑
-----------
命令:cat 檢視文字檔案
命令格式: cat [選項] 檔名
-b 顯示檔案內容的時候顯示行數
-n 顯示檔案內容包括空行
-s 將多個空行合併成一個空行輸出
-------------
命令: more 檢視文字檔案命令
命令格式: more [選項] 檔名
+行數直接從給定的行數開始顯示
-s 將多個空行壓縮成一個空行
-p 清除屏幕後再顯示
提示: 用more開啟一個檔案後用空格向下翻頁,用b向上翻頁
------------
命令: nano 功能:文字編輯器
命令格式:nano [選項] [行號] 檔名
--------------
命令: head 檢視檔案頭部
命令格式:head [選項] 檔案
-n <行數> 顯示檔案的最前指定的行
-c <位元組數> 顯示檔案前N個位元組數裡的內容
-q 不輸出檔案頭的內容
-v 輸出檔案頭的內容
示例: head -n 15 test.file
-------------
命令: tail 檢視檔案尾部
命令格式:tail [選項] 檔案
-f 迴圈讀取
-c <位元組數> 顯示檔案前N個位元組數裡的內容
-q 不輸出檔案頭的內容
-n <行數> 指定所顯示的行數
-v 輸出檔案頭的內容
示例: tail -n 15 test.file
-------------
命令:ln 生成連結檔案
命令格式:ln [選項] 原始檔 連結檔案
-f 刪除已存在的目的檔案
-i 如果碰到有重複名字的提示如何操作
-v 顯示操作資訊
-s 軟連結選項
-------------
命令: file 功能:檢視檔案的型別
-------------
命令: stat 功能:顯示檔案或檔案系統狀態
命令格式:stat [選項] <檔案/目錄>
-f:檢視指定的檔案系統
stat可檢視:
-
檔名 2. 檔案尺寸 3. I節點號 4. 建立時間/訪問時間/狀態(屬 主、組、許可權)修改時間 5.許可權 6.連結檔案個數 7. 屬主及屬組等
---------------
多命令配合或結果匯入、匯出符號
“ |” 管道符號
“ >” 輸出重定向
“ >>” 輸出重定向
“ <” 輸入重定向
多命令配合或結果的引用符號
“ ” 雙引號
' ' 單引號
反引號
--------------
命令: whereis
特點: 是查詢工具中速度最快的一個,但是whereis查詢的範圍有限, whereis 只能查詢2進製程序,文件和原始碼。
命令: which
which命令是查詢工具中速度最快命令之一,但是which查詢的範圍有限,但是 它可以給使用者顯示出命令所在的路徑
命令格式:which 檔名
-----------
find -size n [c]
查詢n值大小的檔案,預設單位是塊(1塊=512位元組)
1. 查詢大於1500位元組的檔案
find ~ -size +1500c
2. 查詢等於1500位元組的檔案
find ~ -size 1500c
3. 查詢小於1500位元組的檔案
find ~ -size -1500c
4. 查詢大於512k位元組的檔案
find ~ -size +512k
5. 查詢等於1M位元組的檔案
find ~ -size 1M
6. 查詢小於1G位元組的檔案
find ~ -size -1G
7. 查詢大於10塊的檔案
find ~ -size +10
8. 查詢等於10塊的檔案
find ~ -size -10
9. 查詢大於10M小於20M的檔案
find ./ -size +10M -size -20M
10. 查詢小於10塊的檔案
find ~ -size -10
11. 查詢檔案/目錄位元組為0的檔案(即空檔案)
find / -empty
-----------
命令: grep
功能: 通過正則表示式查詢檔案中的關鍵字
引數:
-i:忽略大小寫
-c:列印匹配的行數
-C:打印出匹配的上下文(上N行,下N行)的多少行
-l:列出匹配的檔名
-L:列出不匹配的檔名
-n:列印包含匹配項的行和行標
-w:僅匹配指定的單詞而非關鍵字
-e:索引匹配字串
-r:遞迴查詢
-v:不輸出匹配的行
-A <行號>:顯示所找的匹配欄位,並顯示下面指定的行數的資訊
-B <行號>:顯示所找的匹配欄位,並顯示上面指定的行數的資訊
正則表示式表示方法:
忽略正則表示式中特殊字元的原有含義
^ 匹配正則表示式的開始行
$ 匹配正則表示式的結束行
< 從匹配正則表示式的行開始
> 到匹配正則表示式的行結束
[ ] 單個字元;如[A] 即A符合要求
[ n - m ] 範圍 ;如[A-H]即包含A至H都符合要求
. 所有的單個字元
* 所有字元,長度可以為0
---------
命令: egrep
資訊: grep的增強版/擴充版(即grep -E)
特點:
1.支援?匹配,即匹配0到1個正則表示式
2.支援+匹配,即匹配1到N個正則表示式
3.支援”或關係”的匹配
4.在查詢範圍時,可直接用{a,z},而不需要””符號
5.可以被()來包含正則表示式進行分組
6.引數與grep基本通用
示例:
1. 遞迴且不區分大小寫對test欄位查詢
grep -ri “test” ./
2. 列印匹配”test”關鍵字有多少行
grep -c “test” grepcmd.txt
3. 列印匹配”test”關鍵字的上下文各1行
grep -C 1“test” grepcmd.txt
4. 列印匹配test關鍵的行並顯示行號
grep -n “test” grepcmd.txt
5. 查詢開頭為”#”的行,並顯示行號
grep -n ^# grepcmd.txt
6. 查詢在本地目錄下(含子目錄)結尾為”c”的檔案
grep -r c$ ./
7. 查詢以”man”開頭的單詞
grep '<man'* grepcmd.txt
8. 查詢”man”僅匹配此三個字元
grep '<man>' grepcmd.txt
9. 查詢含有以”D”字元開頭的行
grep -n ^[D] grepcmd.txt
10. 查詢含有以”A-F”字元開頭的行
grep -r “^[A-F]” ./
11. 查詢含有以”A-F”字元開頭,第2個字元為i的行
grep “^[A-F]i” grepcmd.txt
12. 查詢含有以'nobody'字元的行及下面3行資訊
grep -A 3 'nobody' /etc/passwd
13. 查詢含有以'nobody'字元的行及上面3行資訊
grep -B 3 'nobody' /etc/passwd
14. 查詢以D或d字元為開頭的行
egrep '(^D|^d)' egrepcmd.txt
15.匹配以D開頭的0個或1個字元
egrep ^D? egrepcmd.txt
16.查詢不包含”chuai”及”lisa”的欄位
egrep -v '^(chuai|lisa)' egrepcmd.txt
----------
命令: cut
功能: 對所需字元進行擷取
-d “n”:定義分界符,即點位
-f n:取第幾位的字元
示例:
1. 以空格符為分界符,進行第2位擷取.
cut -d “ “ -f 2 ./cutcmd.txt
2. 以空格符為分界符,進行第1,3位擷取.
cut -d “ “ -f 1,3 ./cutcmd.txt
---------
命令:sed
功能:通過指定的正則表示式完成指定關鍵字的過濾、擷取、修改等操作
特點:
1.sed屬於一個流線式的非互動式的編輯器
2. sed在輸入命令和檔名後,將在螢幕上輸出
3.在不用重定向至檔案之前,是不會改變檔案現有內容以避免修改檔案時出現問題
示例:
1.將install.log的第1-3行刪除 $sed ‘1,3d’ install.log
2.對install.log查詢以A或a開頭且後面字元為pache的字串 $sed -n ‘/^[Aa]pache/p’ install.log
3.列印匹配欄位的行及所有行 $sed ‘/ftp/p’ install.log
4.列印匹配欄位的行 $sed -n ‘/ftp/p’ install.log
5.預設刪除第3行 $sed ‘3d’ install.log
6.預設刪除第3行至末尾行 $sed ‘3,$d’ install.log
7.刪除含有指定欄位的行 $sed ‘/data/d’ install.log 8.將data替換為date $sed –n ‘s/data/date/p’ install.log 9.將行尾noarch為結尾後面增加.chuai字元 $sed ‘s/noarch$/&.chuai/’ install.log
8.將所有行尾noarch的單詞替換為chuai單詞 $sed -n ‘s/noarch$/chuai/gp’ install.log
9.顯示包含ra及data欄位的行 $sed –n ‘/ra/,/data/p’ install.og
10.從第5行開始顯示直至包含有data的行 $sed -n ‘5,/data/p’ install.log
-----------
命令:awk
功能:通過正則表示式,得到需要的行,列資訊
示例:
1. 用awk 列印所有包含有data欄位的行
$awk ‘/data/’ install.log
2. 檢視df -h命令的第2列
$df -h | awk '{print $2}'
3. 檢視df -h名ing的第2,5列
$df -h | awk '{print $2,$5}'
4. 顯示install.log的第四行
$awk 'NR==4' install.log
5.列印install.log檔案中包含data欄位行的第二區域
$awk ‘/data/ {print $2}’ install.log
6. 列示月份及年份(為換行符)
$date | awk ‘{print “Year:” $6 “Month:” $2 }’
7. 在有/data關鍵字的行的第1列後面增加1個製表符,並增加RedHat,第2列後面!字元
$awk ‘/data/{print $1 “RedHat Linux”$2 “!” }’ install.log
8. 在有data關鍵字的行第1列前面增加1個製表符,並增加RedHat,第2列後面!字元)
$awk ‘/data/{print “RedHat Linux, “$1,$2 “!” }’ install.log
9. 在有noarch欄位的行前增加記錄號($0為行頭前)
$awk ‘/noarch/{print NR, $0}’ install.log
10. 在有sda2欄位的行前增加行的序號及顯示第2列內容
$df -h | awk '/sda2/{print NR,$2}'
11. 匹配noarch欄位,如果有,則顯示整行
$awk ‘$2 ~ /noarch/’ install.log
12. 匹配不存在noarch欄位的行,如果有,則顯示整行
$awk ‘$2 !~ /noarch/’ install.log
---------------
命令:sort
功能:預設以排序ASCII方式進行排序[a-z]
引數:
-u 去除重複的行
-r 降序排序[z-a]
-n 數值排序,預設情況10比2小,主要因為sort判斷第一字元的值
-k 以文字的列進行判斷
-t 設定分界符
示例:
1. 對/etc/passwd檔案進行升序排序
sort /etc/passwd
2. 對/etc/passwd檔案進行降序排序
sort -r /etc/passwd
3. 對/etc/passwd第3列進行數值排序,分界符為:
sort -n -k 3 -t : /etc/passwd
4. 對test.txt檔案中重複的行刪除並升序排序
sort -u test.txt
5. 對/etc/shadow檔案進行降序排序
sort -r /etc/shadow
6. 對/etc/passwd第3列進行數值排序,分界符為:
sort -n -k 3 -t : /etc/passwd
7. 對/etc/passwd的第2列進行逆序排序,並對第3列進行數值排序,優先順序為第2列
sort -k 2r -k 3n -t : /etc/passwd
8. 對/etc/passwd的第3列進行數值排序,第2列進行逆序排序,優先順序為第3列
sort -k 3n -k 2r -t : /etc/passwd
-----------
命令:wc
功能:統計行數、字數、字元數、檔案總統計數
引數:
-l 統計行數
-c 統計位元組數
-w 統計字數(單詞數)
示例:
1. 統計/etc/passwd檔案行數
wc -l /etc/passwd
2. 統計/etc/passwd檔案的字數
wc -w /etc/passwd
3. 統計/etc/passwd檔案的位元組數
wc -c /etc/passwd
4. 統計/etc/passwd檔案行數和位元組數
wc -lc /etc/passwd
5. 統計/etc/passwd與/etc/fstab各檔案的行、字、位元組數
wc -lwc /etc/passwd /etc/fstab
--------------
命令:uniq
功能:檢查文字中重複出現的行
-c 顯示輸出,並在文字行前加出現的次數,但如果重複行不連續,則不認為是重 復的行
-d 只顯示重複的行
-u 只顯示不重複的行
1. 對test.txt內容進行檢查並顯示次數
uniq -c test.txt
2. 對test.txt的重複行不顯示
uniq -u test.txt
3. 忽略test.txt的第1列,對第2列進行檢查
uniq +1
4. 對test.txt的顯示重複行
uniq -d test.txt
5. 忽略test.txt的第1個字元, 從第2個字元開始進行檢查
uniq -s 1 test.txt
6. 對每行的第2個字元以後不在做檢查
uniq -w 2 -c test.txt
------------
命令:tac
功能:將行顛倒
說明:將最頭行放置最底行,文字中所有的行均顛倒輸出
-----------
命令:tr
功能:大小寫轉換
語法格式:tr 現有小寫範圍 轉換大寫範圍
tr 現有大寫範圍 轉換小寫範圍