Linux基礎學習3 [TOC] cat 顯示文本 less 分屏顯示文本 more 分頁顯示文件 head 顯示文件的前面的內容 tail 顯示文件的後面的內容 cut 切割 paste 合併 wc 用來對文本進行統計 sort 排序 uniq合併相同的行 相鄰 完全一樣 diff 對比文件 ch ...
目錄
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 三