Linux(基础命令和三剑客)
文章目錄
- 一、基礎正則表達式:元字符總結
- 二、grep用法
- 三、sed命令常見用法
- 1、輸出符合條件的文本
- 2、刪除符合條件的文本
- 3、替換符合條件的文本
- 4、遷移符合條件的文本
- 四、awk工具
- 1、按行輸出文本
- 2、按字段輸出文本
- 3、通過管道、雙引號調用Shell命令
- 五、sort工具
- 六、uniq工具
- 七、tr工具
- 八、Linux命令
- 鎖定賬戶
- find:
- 如何讓命令在后臺執行?
- 如何檢查linux上開放的端口
- 常用的linux命令有哪些
- 查看硬盤使用情況的命令
- 查看cpu的命令
- 查看內存的命令
- 如何查看當前Linux系統的狀態,如CPU使用、內存使用、負載情況等?
- 查看cpu
- 查看內核版本
- 查看內存信息
- 查看核心防護狀態
- 說明硬鏈接與軟鏈接的差別,分別有什么好處?
- Linux現連接一個新的存儲(如/dev/sdf,容量2T)一個應用程序需要在/data目錄使用此存儲的500G的存儲空間(做成LVM),需要哪些步驟,請描述。
一、基礎正則表達式:元字符總結
^ : 匹配輸入字符串的開始位置,除非再方括號表達式中使用,表示不包含該字符集合
. : 匹配除“\r\n”之處的任何單個字符
\ : 反斜杠,又叫轉義字符,去除其后緊跟的元字符或通配符的特殊意義
*: 匹配前面的子表達式零次或多次
[ ] : 字符集合,匹配所包含的任意一個字符
[^] : 賦值字符集合,匹配未包含的一個任意字符
[n1-n2] : 字符范圍,匹配指定范圍內的任意一個字符
{n} : n是一個非負整數,匹配確定的n次
{n,} : n是一個非負整數,至少匹配n次
{n,m} : m和n均為非負整數,其中n<=m,最少匹配n次最多匹配m次
二、grep用法
grep的使用規則:
-n 表示顯示行號-I 表示不區分大小寫-v 表示過濾[ ] 查找集合字符查找包含the的字符(準備一個查找文件)
grep -n ‘the’ test.txt不區分大小寫查找包含the的字符
grep -in ‘the’ test.txt不查找包含the的字符
grep -vn ‘the’ test.txt利用中括號[ ]來查找集合字符
grep -n ‘sh[io]t’ test.txt查找包含重復單個字符oo時
grep -n ‘oo’ test.txt若查找oo前面不是w的字符串
grep -n ‘[^w]oo’ test.txt若不希望oo前面存在小寫字母
grep -n ‘[^a-z]oo’ test.txt查詢以小寫字母開頭的行
grep -n ‘^[a-z]’ test.txt查詢不以字母開頭的行
grep -n ‘[^a-zA-Z]’ text.txt查詢以.結尾的行
grep -n ‘\.$’ test.txt若想要查詢oo、ooo、oooo等字符串,則需要使用星號(*)元字符等,o*表示擁有零個或任意多個o字符,如果時“oo*”,則第一個o必須存在,后面的o*表示零個或任意多個o字符
grep -n ‘ooo*’ test.txt查詢以w開頭d結尾,中間至少一個
grep -n ‘woo*d’ test.tx查詢以w開頭d結尾,中間字符可有可無
grep -n ‘w.*d’ test.txt查詢兩個o的字符
grep -n ‘o\{2\}’ test.txt查詢以w開頭d結尾,中間包含兩個及兩個以上o
grep -n ‘wo\{2,\}d’ test.txt三、sed命令常見用法
sed [選項] ‘操作’ 參數
sed [選項] -f scripfile 參數
選項的基本命令如下:
-e script :指定sed編輯命令-f scriptfile :指定的文件中是sed編輯命令-h :顯示幫助-n :表示僅顯示處理后的結果-i :直接編輯文本文件操作的基本命令如下:
a :增加,在當前行下面增加一行指定內容c :替換,將選定行替換為指定內容d :刪除,刪除選定的行i :插入,在選定行上面插入一行指定內容p :打印s :替換,替換指定字符y :字符轉換1、輸出符合條件的文本
輸出第三行
sed -n ‘3p’ test.txt輸出第3-5行
sed -n ‘3,5p’ test.txt輸出所有奇數行
sed -n ‘p:n’ test.txt輸出所有偶數行
sed -n ‘n:p’ test.txt輸出第1-5行之間的奇數行
sed -n ‘1,5{p:n}’ test.txt輸出第10行之后的偶數行
sed -n ’10,${n:p}’ test.txt輸出包含the的行
sed -n ‘/the/p’ test.txt輸出從第4行的第一個包含the的行
sed -n ‘4,/the/p’ test.txt輸出以PI開頭的行
sed -n ‘/^PI/p’ test.txt輸出以數字結尾的行
sed -n ‘/[0-9]$/p’ test.txt輸出包含wood的行
sed -n ‘/\<wood>/p’ test.txt2、刪除符合條件的文本
刪除第3行
sed ‘3d’ test.txt刪除第3-5行
sed ‘3,5d’ test.txt刪除以小寫字母開頭的行
sed ‘/^[a-z]/d’ test.txt3、替換符合條件的文本
將每行中的第一個the替換為THE
sed ‘s/the/THE/’ test.txt將每行中的第2個l替換為L
sed ‘s/l/L/2’ test.txt在包含the的每行行首插入#號
sed ‘/the/s//#/’ test.txt在每行行尾插入字符串EOF
sed ‘s/$/EOF/’ test.txt將第3-5行中的所有the替換為THE
sed ‘3,5s/the/THE/g’ test.txt將包含the的所有行中的o替換為O
sed ‘/the/s/o/O/g’ test.txt將文件中所有的o刪除
sed ‘s/o//g’ test.txt4、遷移符合條件的文本
H :復制到剪切板g、G :將剪貼板中的數據覆蓋/追加到指定行w :保存為文件r :讀取指定文件a :追加指定內容將包含the的行遷移至文件末尾
sed ‘/the/{H;d};$G’ test.txt將第1-5行內容轉移至第17行后
sed ‘1,5{H’d};17G’ test.txt將包含the的行號另存為文件out.file
sed ‘/the/w out.file’ test.txt將文件/etc/hostname的內容添加到包含the的每行以后
sed ‘/the/r /etc/hostname’ test.txt在第3行后插入一個新行,內容為NEW
sed ‘/the/3aNEW’ test.txt在包含the的每行后插入一個新行,內容為NEW
sed ‘/the/aNEW’ test.txt在第3行后插入多行內容,中間的\n表示換行
sed ‘3aNEW1\nNEW3’ test.txt四、awk工具
awk 選項 ‘模式或條件{編輯命令}’ 文件1 文件2…. //過濾并輸出文件中符合條件的內容
awk -f 腳本文件 文件1 文件2… //從腳本中調用的編輯指令,過濾并輸出內容
awk包含幾個特殊的內建變量(可直接用)如下所示:
FS:指定每行文本的字段分隔符,默認為空格或制表位;NF:當前處理的行的字段個數;NR:當前處理的行的行號(序數);$0:當前處理的行的整行內容;$n:當前處理的行的第n個字段(第n列);FILENAME:被處理的文件名;RS:數據記錄分隔,默認為\n,即每行為一條記錄。1、按行輸出文本
輸出所有內容,等同于cat test.txt
awk ‘{print}’ test.txtawk ‘{print $0}’ test.txt輸出第1~3行內容
awk ‘NR==1,NR==3{print}’ test.txt輸出第1~3行內容
awk ‘(NR>=1)&&(NR<=3){print}’ test.txt輸出第1行,第3行的內容
awk ‘NR==1||NR==3{print}’ test.txt輸出所有奇數行的內容
awk ‘(NR%2)==1{print}’ test.txt輸出所有偶數行的內容
awk ‘(NR%2)==0{print}’ test.txt輸出以root開頭的行
awk ‘/^root/{print}’ /etc/passwd輸出以nologin結尾的行
awk ‘/nologin$/{print}’ /etc/passwd統計以/bin/bash結尾的行數,等同于grep –c “/bin/bash$” /etc/passwd
awk ‘BEGIN {x=0};/\/bin\/bash$/{x++};END {print x}’ /etc/passwd統計以空行分隔的文本段落數
awk ‘BEGIN {RS=””} ;END{print NR}’ test.txt2、按字段輸出文本
輸出每行中(以空格或制表符分隔)的第三個字段
awk ‘{print $3}’ test.txt輸出每行中第1,3個字段
awk ‘{print $1,$3}’ test.txt輸出密碼為空的用戶的shadow記錄
awk -F ”:” ‘$2==””{print}’ /etc/shadow輸出密碼為空的用戶的shadow記錄
awk ‘BEGIN {FS=”:”} ; $2==””{print}’ /etc/shadow輸出以冒號分隔且第7個字段中包含/bash的行的第一個字段
awk -F ”:” ‘$7~”/bash”{print $1}’ /etc/shadow輸出包含8個字段且第一個字段中包含nfs的行的第1,2個字段
awk ‘($1~”nfs”)&&(NF==8){print $1,$2}’ /etc/services輸出第七個字段既不為/bin/bash也不為/sbin/nologin的所有行
awk -F “:” ‘($7 != “/bin/bash”)&&($7 != “/sbin/nologin”){print}’ /etc/passwd打印文本文件的總行數
awk 'END{print NR}' filename打印文本第二行第一列
sed -n "2, 1p" filename | awk 'print $1'輸出文件的倒數第二列以","隔開
awk -F ',' 'END {print $2}' BIRoomTime20160229.txtshell里面的賦值方法有兩種,格式為
因此,如果想要把某一文件的總行數賦值給變量nlines,可以表達為:
或者
3、通過管道、雙引號調用Shell命令
調用wc –l命令統計使用bash的用戶的個數,等同于grep –c “bash$” /etc/passwd
awk -F: ‘/bash$/{print | “wc -l”}’ /etc/passwd調用w命令,并用來統計在線用戶數
awk ‘BEGIN {while (“w” | getline) n++ ; {print n-2}}’調用hostname,并輸出當前主機名
awk ‘BEGIN {“hostname” | getline ; print $0}’五、sort工具
sort是一種以行為單位對文件內容進行排序的工具,也可以根據不同的數據類型來排序
用法:sort命令的語法為“sort [選項] 參數”,其中常用的選項包括一下幾種
-f:忽略大小寫;-b:忽略每行前面的空格;-M:按照月份進行排序;-n:按照數字進行排序;-r:反向排序;-u:等同于uniq,表示相同的數據僅顯示一份;-t:指定分隔符,默認使用[TAB]鍵分隔;-o<輸出文件>:將排序后的結果轉存至指定文件;-k:指定排序區域六、uniq工具
uniq工具在Linux系統中通常與sort命令結合使用,用于報告或者忽略文件中的重復行
-c:進行計數;-d:僅顯示重復行;-u:僅顯示出現一次的行七、tr工具
tr命令常用來對來自標準輸入的字符進行替換、壓縮和刪除
tr具體的命令語法格式為:tr [選項] [參數]
-c:取代所有不屬于第一字符集的字符;-d:刪除所有屬于第一字符集的字符;-s:把連續重復的字符以單獨一個字符表示;-t:先刪除第一字符集較第二字符集多出的字符,做替換八、Linux命令
鎖定賬戶
第一種:
1、passwd -l tang 鎖定tang用戶
2、passwd -u tang 解鎖tang用戶
第二種:(權限優于第一種)
1、usermod -L tang 鎖定tang用戶
2、usermod -U tang 解鎖tang用戶
usermod命令鎖定和解鎖用戶的的時候沒有交互信息(就是不會有提示)
第三種:(鎖定文件)
1、用chattr +i 命令鎖定/etc/passwd 和 /etc/shadow文件
2、用chattr -i 命令解鎖/etc/passwd 和 /etc/shadow文件
第四種:修改shell環境讓賬戶無法登陸
1、vi /etc/passwd進入編譯
2、把想鎖定的賬戶后面改成/sbin/nologin
find:
1、用 find 查找三天之前以log結尾的文件并刪除?
find /log -mtime +3 -type f -name “*.log”
添加用戶是哪個命令?
useradd
改一個文件的屬組和屬主?
chown
如何讓命令在后臺執行?
命令& 這種會綁定終端,終端關閉進程就結束。
nohub 命令 & 這種關了終端可以運行
怎么判斷某個變量是否為空?
? ! $A
你們系統用的哪個發行版?
centos ,ubuntu
如何檢查linux上開放的端口
netstat -anptu //后面的t是tcp、u是udp
netstat -an //查看服務器開啟哪些端口?
常用的linux命令有哪些
ls netstart cd chown chmod grep uptime ifconfig route…
查看硬盤使用情況的命令
fdsik -l #查看分區情況
df -h #查看掛載和使用情況
查看cpu的命令
cat /proc/cpuinfo | grep ‘model name’ 或者lscpu
查看內存的命令
free -m
如何查看當前Linux系統的狀態,如CPU使用、內存使用、負載情況等?
top
查看cpu
cat /proc/cpuinfo
查看內核版本
uname -r
查看內存信息
cat /proc/meminfo
查看核心防護狀態
getenforce
說明硬鏈接與軟鏈接的差別,分別有什么好處?
ln,創建軟連接
–軟連接–> 原始文檔–> i節點–> 文檔數據
–ln-s 原始文件或目錄軟連接文件
若原始文件或目錄被刪除,連接文件將失效
軟連接可存放在不同分區/文件系統
?ln,創建硬連接
–硬連接–> i節點–> 文檔數據
–ln原始文件硬連接文件
若原始文件被刪除,連接文件仍可用
硬連接與原始文件必須在同一分區/文件系統
Linux現連接一個新的存儲(如/dev/sdf,容量2T)一個應用程序需要在/data目錄使用此存儲的500G的存儲空間(做成LVM),需要哪些步驟,請描述。
fdisk /dev/sdf 分區n,p,1,1 +500G w 分區步驟pvcreate /dev/sdf1 創建物理卷vgcreate vg01 /dev/sdf1 創建卷組lvcreate -n lv01 -l 100%free vg01 #使用所有空間創建邏輯卷mkfs.ext4 /dev/vg01/lv01 格式化這個卷mount /dev/vg01/lv01 /data 掛載這個卷總結
以上是生活随笔為你收集整理的Linux(基础命令和三剑客)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx(全)
- 下一篇: linux 其他常用命令