Linux基礎學習3
- 2019 年 10 月 8 日
- 筆記
目錄
Linux基礎學習3
cat 顯示文本
-E 顯示結尾的$符 -n 對顯示的每一行進行編號 -b 對非空行進行編號 -s 對連續的空行進行壓縮 ###cat (默認)正序顯示 ### tac 倒序顯示
less 分屏顯示文本
向下翻一屏 空格 向下翻一行 回車 q 退出 / 文本 搜索文本 n 向下查找 N向上查找 less 是man命令的默認分頁器
more 分頁顯示文件
默認情況下顯示讀取的百分比 讀取完成自動退出 q 退出 -d 顯示翻屏和退出的提示
head 顯示文件的前面的內容
默認顯示前10行 -# 顯示前#行 -n # 顯示前#行 -c # 顯示前#個字元
tail 顯示文件的後面的內容
默認顯示後10行 -# 顯示後#行 -n # 顯示後#行 -c # 顯示後#個字元,換行符也是一個字元
cut 切割
cut OPTION... [FILE]... -c 按照字元切割 tail passwd |cut -c2-5 -d 指定切割符,默認是tab -f # 顯示第#個欄位 #,#,# 顯示離散的多個 #-# 表示連續的 1-5,7 可以結合使用 tail passwd |cut -d: -f1-5,7 tail passwd |cut -d: -f1-5 tail passwd |cut -d: -f1,3,5
paste 合併
默認是相同行合併到一起,默認是tab鍵 -d 執行間隔符 -s 將所有的行按照列來顯示 paste a.txt b.txt paste -d: a.txt b.txt paste -s a.txt b.txt
wc 用來對文本進行統計
[root@localhost test]#wc b.txt 4 5 20 b.txt 行數 單詞數 位元組數 文件名 -l 只顯示行數 -w 只顯示單詞數 -c 只顯示位元組數 -m 只顯示字元數 -L 顯示文件中最長行的長度
sort 排序
Usage: sort [OPTION]... [FILE]... or: sort [OPTION]... --files0-from=F 默認是按照字母排序 -r 倒序 -R 隨機排序 -n 按照數字排序 -f 忽略大小寫 -t 指定分隔符 -k # 指定按照第#個欄位進行排序 sort -t: -k3 passwd sort -nt: -k3 passwd
uniq合併相同的行
- 相鄰
- 完全一樣
-c 顯示相同的行出現的次數 -d 只顯示重複的行 -u 顯示從沒有重複過的行 cut -d" " -f4 d|sort |uniq -c pv page uv user
diff 對比文件
[root@localhost test]#echo "123" >> f [root@localhost test]#diff d f 11a12 > 123 [root@localhost test]#echo "1234" >> d [root@localhost test]#diff d f 12c12 < 1234 --- > 123
chown 用來修改所有者和組
Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE... or: chown [OPTION]... --reference=RFILE FILE... chown wu c 修改屬主 chown wu:wu c 修改屬主和屬組 chown root.root c chown :wu c 直接屬組 chown -R wu test 遞歸修改 chown --reference=c d
chgrp 修改文件的屬組
Usage: chgrp [OPTION]... GROUP FILE... or: chgrp [OPTION]... --reference=RFILE FILE...
許可權
9位表示許可權 3組 3位表示一組 --- --- --- - 文件許可權可以讀以下定義 - 屬主 u - 屬組 g - 其他 o - 全部 a - 每個文件的許可權 - r 讀 - w 寫 - x 執行 - 對於文件來說 - r 可以使用文本查看工具來查看裡面的內容 - w 可以修改文本的內容 - x 執行可以直接./file - 對於目錄來說 - r 可以使用ls等文件查看的命令查看 - w 可以創建文件,也可以刪除 - x 可以cd進入 - 數字表示 --x 001 1 -w- 010 2 r-- 100 4 rw- 110 6 rwx 111 7 r-x 101 5 -wx 011 3
修改許可權
- 可以直接修改某一類用戶的許可權
chmod u+x c 增加 chmod u-x c 刪除 chmod u=r c 直接賦值
shabang —》 解釋器
- 可以直接使用數字表示
- 可以基於某個文件來修改
設定特殊許可權
chattr +i 不能刪除、不能修改、不能變更 lsattr 查看屬性 chattr +a 只能追加數據
vi/vim
打開文件
vim [option] …. file….
+# 直接定位到第#行 +/pattern 打開文件後,直接定位到第一個匹配到patter的地方 -b 以二進位方式打開文件 -d file1 file2 對比打開多個文件 -m file 只讀方式打開文件 -e 直接以末行模式打開
模式
- 命令模式:可以游標,可以粘貼、複製文本,默認 - 插入模式或者編輯模式:可以修改文本 - 末行模式(擴展命令模式):保存、退出等等 - esc 退出當前的模式
模式之間切換
- 命令模式- 插入模式 - i 游標所在處插入 - I 在當前游標所在的行的行首插入 - a 游標所在位置的後面插入 - A 在當前游標所在的行尾插入 - o 在當前游標所在的行的下一行(新開)插入 - O 在當前游標所在的行的上一行(新開一行)插入 - 插入模式- 命令模式 - esc - 命令模式 -- 末行模式 - : - 末行模式 -- 命令模式 - esc esc - esc enter
關閉文件
- 末行模式 - :w 保存 - :q 退出 - :wq 保存並退出 - :q! 強制退出 - :wq!強制保存退出 - :x 保存並退出 - 命令模式 - ZZ 保存退出 - ZQ 不保存退出
擴展命令行模式
- 按":" 來進入 - w 寫入 - q 退出 - wq 保存並退出 - q! 強制退出 - x 保存並退出 - r file 讀入文件 - w file 另存為 - !command 直接執行命令 - r!command 直接把命令的結果寫到文件中
命令模式跳轉
- 字元之間跳轉 - l 向右 - h 向左 - j 向下 - k 向上 - 單詞間跳轉 - w 下一次的單詞的詞首 - e 當前詞的詞尾或者下一個單詞的詞尾 - b 當前詞的詞首或者上一詞的詞首 - # command 直接跳轉#個單詞 - 頁面間跳轉 - H 頁首 - L 頁尾 - M 頁中 - zt 將游標所在行移動到螢幕的頂端 - zb 將游標所在行移動到螢幕的底部 - zz 將游標所在行移動到螢幕的中間 - 行首行尾之間跳轉 - ^ 跳轉到當前游標所在行的第一個非空字元 - 0(數字) 跳轉到行首 - $ 跳轉到行尾 - 行間移動 - #G 跳轉到第#行 - 在命令擴展模式下,直接:# 跳轉到對應的行 - G 直接到最後一行 - gg 跳轉到第一行 - 1G 跳轉到第一行 - 段落之間跳轉(空行) - { 上一段 - } 下一段 - 翻屏 - ctrl+f 向文件尾部翻一屏 - ctrl+b 向文件首部翻一屏 - ctrl+d 向文件尾部翻半屏 - ctrl+u 向文件首部翻半屏
命令模式編輯
- 字元編輯 - x 刪除游標所在處的字元 - #x 刪除#個字元 - xp 將游標所在處的字元和後面的字元互換位置 - ~ 將游標所在的位置大小寫互換 - J 刪除當前行的換行符 - 替換 - r 替換當前游標所在處的字元 - R 進入替換模式 - 刪除 - d 刪除,需要跟字元跳轉結合 - d$ 刪除到行尾,刪除當前位置 - d0 刪除到行首,當前位置不刪除 - d^ 刪除到非空字元 - dw 刪除一個單詞 - de 向後刪除一個單詞 - db 向前刪除一個單詞 - dd 刪除正行 - # dd 刪除#行 - dG 刪除到結尾 - dgg 刪除到開頭 - D 相當於d$ - 複製 - y,也可以跟字元跳轉結合 - y$ - y0 - y^ - yw - ye - yb - yy 一正行 - #yy 複製#行 - yG 複製到結尾 - ygg 複製到開頭 - Y 複製整行 - 粘貼 - p 如果是整行的話,則粘貼到當前游標所在行的下一行,否則粘貼到游標的後面 - P 如果是整行的話,則粘貼到當前游標所在行的上一行,否則粘貼到游標的前面 - 改變,刪除以後並將模式切換成插入模式 - c 可以跟游標的跳轉做結合 - c$ - c0 - c^ - cw - ce - cb - #command - cc 刪除正行並插入 - C 相當於c$ - #[i|I|a|A|o|O]string esc 將string粘貼#次 - 搜索 - /pattern 從當前游標往下搜索 - ?pattern 從當前游標往上搜索 - n 同命令相同的方向 - N 同命令相反的方向 - 撤銷 - u 撤銷最近的修改 - # u 撤銷最近的#次修改 - ctrl +r 撤銷之前的撤銷動作 - . 重複最後一次操作 - #. 最後一次操作重複執行#次
命令擴展模式
地址定界 :start,end # 具體到第#行 #,# 第#行到第#行 #,+n 從第#開始,到第#+n行結束 1,+2 ==>1,3 . 表示當前游標所在的行 $ 表示最後一行 $-1 表示倒數第二行 % 表示全文 /pat1/,/pat2/ 從第一個pat1匹配到的地方,到pat2第一次匹配到的地方 #,/pat/ 從第#行開始,到第一次被pat匹配到的地方 /pat/,$ 從第一次被pat匹配到的到結尾 可以使用的命令 - d - y - w file 重新另存為文件 - r file 將文件的內容寫到匹配到的下一行
查找並替換
- 要使用地址定界來進行查找 - s 在擴展命令模式下使用為替換 - 格式: s/要查找的內容/要替換的內容/裝飾器 - 要查找的內容可以使用正則 - 替換的內容不能為正則 - 可以為分組:%s/(nfs.*)/#1/ - 1表示第一個分組內的內容 - 2 - 3 - & 可以代表前面匹配到的內容 - 裝飾器 - i 忽略大小寫 - g 表示全部替換 - gc 每一次替換之前都要詢問是否替換 - 分隔符還可以使用 - @ - #
可視化
- v 面向字元 - V 面向行的 - ctrl +v 面向塊 - 可以結合所有的跳轉鍵進行結合 - 對突出顯示部分可以使用刪除、複製、變更、過濾、替換、另存為等等
打開多個文件
vim file1 file2 file3 :next 下一個 :prev 上一個 :first 第一個 :last 最後一個 :qall 退出全部 :wall 保存全部 :wqall 保存並退出全部 :xall 保存並退出全部
使用多個窗口
vim -o 水平分隔 vim -O 垂直分隔 切換ctrl+w 加上上下左右箭頭
單文件切割
ctrl+w,s 水平切割 ctrl+w,v 垂直切割 ctrl+w,q 取消相鄰的窗口 ctrl+w,o 取消全部窗口
vim工作特性
配置文件 - 全局有效:/etc/vimrc - 對當前用戶有效: ~/.vimrc - 行號:set nu 取消 set nonu - 忽略大小寫(搜索) set ic 取消set noic - 自動縮進(同上一行) set ai 取消set noai - 設置高亮顯示(搜索到的內容) set hls 取消set nohls - 語法高亮 syntax on 取消 syntax off - 文件格式 - windows格式 set fileformat=dos - unix set fileformat=unix - 添加標識線: set cul 取消標識線 set nocul - 獲取幫助: set all - 獲取幫助資訊: - :help - :help topic - vimtutor
find
是linux裡面的一個實時查找工具,通過制定路徑完成文件查找 find [options] ..... [查找路徑] [查找條件] [處理動作] 查找路徑:查找的位置,默認是當前文件夾 查找條件:制定查找的標準,文件名、大小、類型、日期等等 處理動作:對符合條件的文件做什麼操作,默認是輸出到螢幕上
查找條件
- 根據文件名查找 - -name 指定名稱,可以使用正則 - -iname 忽略大小寫 - -links n 引用次數為n的文件 - -regex 後面跟完整路徑,而不是文件名, 必須整個路徑完全匹配 - 制定搜索的層級 - -maxdepth level 最大的搜索深度,指定的目錄為第1層 - -mindepth level 最小的搜索深度,包括level層 - 根據屬主、屬組來查找 - -user username 查找屬主為username的文件 - -group groupname 查找屬組為groupname的文件 - -uid id 查找屬主為id的文件 - -gid id 查找屬組為id的文件 - -nouser 查找沒有屬主的文件 - -nogroup 查找沒有屬組的文件 - 根據文件類型 -type - d 目錄 - f 文件 - l 符號鏈接 - s 套接字 - b 塊設備 - c 字元設備 - p 管道文件 - 空文件或者空目錄 - -empty - 條件 - 與 -a - 或 -o - 非 -not - 摩根定律 - 非(A或者B) 非A 且非B - 非(A且B)非A或非B - 排除目錄 - -path [root@localhost test]#find /etc -name *_config /etc/ssh/ssh_config /etc/ssh/sshd_config [root@localhost test]#find /etc -path /etc/ssh -name *_config - 按照大小來查找 - -size # (#-1,#] 不包括#-1,包括# - -size -# [0,#-1] 包括#-1 - -size +# (#,......) - 按照時間來查找 - -atime # [#,#+1) - -atime -# (0,#) - -atime +# [#+1,....] - 查找7天以後的文件 find -atime +7 - -mtime - -ctime - 以分鐘為單位 - -amin - -mmin - -cmin
處理動作
- -print 默認的處理動作,顯示在螢幕上 - -ls 類似於ls -l 顯示長格式 - -delete 刪除查找到的文件 - -fls file 將查找的結果以長格式保存到文件中 - -ok command {} ; 對每一個查找到的文件執行command命令,在執行命令之前要先提示用戶是否要執行 - -exec command {} ; 對查到的每一個文件執行command命令,不需要確認,一次性交給後面命令處理
xargs
- 有的命令不支援管道 - 命令參數過長 - xargs 將管道前面的內容一條一條的交給後面命令處理 - 一般會跟find使用
grep
- Linux 三?客 grep awk sed
- grep [option] "模式" file
- option
--color=auto 對匹配到的行添加顏色 -v 取反 -i 不區分大小寫 -n 查找的內容增加行號 -c 列印匹配到的行數 -o 只顯示匹配到的文字 -q 靜默模式 -A # after 向下顯示#行 -B # before 向上顯示#行 —C # context 上下分別顯示#行 -e 或者 grep -e 'user' -e 'root' passwd -E 擴展正則表達式 -F 不使用正則表達式 -r 遞歸 -w 匹配整個單詞
正則表達式元字元
- 字元匹配
- . 任意單個字元
- [] 匹配指定範圍內的任意單個字元 [0-9] [a-z] [A-Z]
- [^] 取反
- [:upper:] 大寫字母
- [:lower:] 小寫字母
- [:alnum:] 字母和數字
- [:alpha:] 大小寫字母
- [:digit:] 數字
- [:black:] 空白
- [:punct:] 標點符號
- 匹配次數
- * 表示任意次數
- .* 任意字元任意次數
- ? 表示0或者1次
- + 至少一次
- {n} 表示n次
- {m,n} 最少m次,最多n次
- {n,} 至少n次
- {,n} 至多n次
- 位置錨定
- ^ 開頭
- $結尾
- ^$ 空行
grep -v "^#" /etc/ssh/sshd_config |grep -v "^$" 顯示不以#開頭並且不是空行
- 分組 grep "(c|C)at" a
- 向後引用
- 1 前面第一個括弧出現的內容匹配完成之後再後面在出現一次
- 2
- 擴展正則表達式
- 與正則表達式的區別是不需要轉義
壓縮
gzip
- 壓縮文件
gzip [option]... file -c 將壓縮結果輸出到螢幕,保留原來的文件 gzip -c passwd > passwd.gz -1-9 指定壓縮比,默認9 -d 解壓 zcat 不解壓的情況下查看壓縮比內的內容 gunzip 解壓
bzip2
- bzip [option] file
直接壓縮 bunzip2 解壓 -k 保留原來的文件 -d 解壓 -1-9 指定壓縮比 bzcat 不解壓的情況下查看壓縮包的內容
xz
- xz [option] file
unxz 解壓 -k 保留原來的文件 -d 解壓 -1-9 指定壓縮比 xzcat 不解壓直接查看
zip
zip [option] zipfile 要壓縮的文件 zip -r network.zip /etc/sysconfig/network-scripts unzip network.zip
tar
歸檔工具
歸檔 tar cpvf etc.tar /etc c 創建 v 顯示過程 f 指定歸檔文件 p 把原來的屬性也帶過來 tar -r -f etc.tar /etc 追加 tar -t -f etc.tar 查看歸檔文件內的內容 tar xf etc.tar 解壓文件 tar xf etc.tar -C -z 使用gzip壓縮 -j 使用bzip2壓縮 -J 使用xz壓縮 --exclude 排除文件
split
split -b 指定大小 文件(只能為文件) 切割以後的名字 -d 指定後綴為數字 -a 指定後綴幾位 cat 切割後的文件 > 新文件
作 者:郭楷豐
出 處:https://www.cnblogs.com/guokaifeng/