alias 指令
起別名
為什么 ls -l 指令等價于 ll 指令呢?
指令就是可執行程序,和我們自己寫的代碼編譯好的程序,沒有本質區別!
指令在系統的某一個位置存在!
執行指令前,現在系統中查找對應的指令
指令在根目錄下 /usr/bin/
ll 指令沒有在 /usr/bin/ 路徑下
which 指令:查看對應指令的路徑
ls? -l 指令等價于 ll 指令,是因為 ll 指令是 ls? -l 指令的別名
不想要了
如果關掉 Xshell
重命名目前是臨時的
ll 這個重命名是寫在配置文件里的,所以每次登錄時都能用。(自己少重命名)
cat 指令
cat -n 文件名:對輸出結果編號(空行也帶編號)
cat -n 文件名:對輸出結果編號(不給空行編號)
cat -s 文件名:如果連續多行空行,只顯示1行空行
Linux 下一切皆文件
指令的本質就是可執行文件,直接安裝到了系統的某種路徑下
鍵盤、顯示器等都是文件
顯示器(向顯示器打印:向顯示器寫入文件):提供寫(fwirte())的方法,讀(fread(){})的方法是空的
鍵盤(從鍵盤讀取數據):提供讀(fread())的方法,寫(fwirte(){})的方法是空的
普通文件:有正常的讀寫方法
以前:echo指令把"Hello Linux"字符串打印到顯示器上
現在:echo指令默認把"Hello Linux"字符串寫到顯示器文件中
現在:把本應寫到顯示器文件的內容,因為 > 符號的作用,寫到了普通的磁盤文件中。這種行為叫重定向
cat? 文件名:打印文件內容(把文件的內容數據寫到顯示器文件里)
ll? 文件名:打印文件屬性(把文件的屬性數據寫到顯示器文件里)
echo 后面跟字符串,不是文件;或者 echo 認為自己后面跟的是字符串
輸出重定向 > 有一個特點:
????????向目標文件寫入的時候,覆蓋寫入:1. 清空文件 ???????? 2. 寫入新內容
想清空一個文件的簡化寫法:> 文件名
輸出、追加重定向:如果寫的目標文件不存在,默認會給你創建
所以想創建新文件,除了 touch 指令;也可以直接 > 新文件名
不想清空:追加重定向 >>???????? append
cat 文件名:打印文件內容
cat 后面什么都沒跟,我輸什么就給我打印什么
cat 默認從輸入設備讀數據
本來應該從鍵盤文件讀取數據,現在從指定的文件讀取輸入重定向 <
cat < out.txt 是另外一種打印文件內容的寫法,與 cat out.txt 有區別,后面講
more 指令
cat 只適合看小文本;more 只能向下翻,用的不多
cnt=1; while [ $cnt -le 10000 ]; do echo "hello Linux $cnt"; let cnt++; done > test.txt
test.txt 中現在有 10000 行數據
more? test.txt 只打印一屏,按 Enter 向下翻;q 退出
more? -n? test.txt 打印到第 n 行停下
/XXX:在more的場景下搜索
less 指令
less? test.txt 打印一屏,按 下/Enter 下翻;上 上翻;q退出
/XXX:文本查找
head 指令
提取一段文本的前 n 行,默認提取前10行
head test.txt
head -n test.txt
tail 指令
提取一段文本的后 n 行,默認提取后10行
tail test.txt
tail -n test.txt
有 head、tail、重定向,可以把文件任意片段截取出來
想看 1000-1020 行,并把文本截取出來
缺點:要創建臨時文件,臨時文件真真切切的在磁盤中
優化:管道
一種符號,后面會被“系統”解釋為管道文件,這個管道文件不會在磁盤里存在,是內存級的文件
作用:把左側程序的輸出交給管道文件、讓右側的程序再從管道文件中把數據讀到自己程序中
時間相關指令
date 指令查看 Linux 相關時間
1. 顯示:date +標記
%F 相當于 %Y-%m-%d???????????????? %X 相當于 %H:%M:%S
2. 設定
3. 時間戳:從1970.1.1 00:00 起經過的秒數
時間 -> 時間戳:date? +%s
時間戳 -> 時間:date? -d? @時間戳
這里顯示8時是考慮時差
cal 指令:查看日歷
find 指令
任意文件、任意路徑的查找,選項很多,功能強大
這里只看 -name 選項
find? 路徑名? -name? 文件名
普通用戶只有在自己家目錄下 find? /home/qtw/? -name? XXX 進行操作時,才能正常查。因為從這個目錄往下,整個一顆多叉樹都是自己的
如果前綴不是,會受權限約束,有時候不讓查。
補充:
which:在系統指令路徑下,搜索指令文件
whereis:在系統特定路徑下查找 可執行程序、手冊、安裝包、壓縮包……
grep 指令
行文本過濾工具,在文件中搜索字符串,將找到的行打印出來
grep? 選項? 要搜索的字符串? 文件(可以跟多個)
選項:
-v:反向選擇(reverse) ????????-n:輸出行號 ????????-i:忽略大小寫的不同(ignore)
指令可以通過攜帶文件的方式,對內容進行查找;也可以合并到管道中
查 main 函數位置
遞歸的,在指定目錄下過濾:grep? -Rn? 'int main()'? /home/qtw/
zip / unzip 指令
打包、壓縮文件
原因:
1. 能被打包,定是多個文件合并成一個文件 ==> 不易造成文件缺失
2. 壓縮后體積小,下載時間短
于是有了打包壓縮的工具
壓縮目錄要帶 -r 選項
打包壓縮目錄:
打包壓縮目錄+文件、并解壓到指定目錄:
tar 指令
czf:creat創建 執行打包壓縮的動作、zip的方式壓縮、指明新形成的文檔名稱
.tgz 是 .tar.gz 的縮寫 ????????????????.tar:打包后綴 ????????????????.gz:壓縮后綴
tzf:文件不解包不解壓,只看里面有什么(預覽)
xzf:解包解壓
tar xzf code.tgz:直接解包解壓到當前路徑
解包解壓到指定路徑:-C 選項
純 Linux 下流轉用 tar .tgz
想讓 Windows 下解包解壓軟件也能識別,用 zip
遇見沒見過的后綴,在網上搜對應指令
bc 指令
Linux 下計算器。quit 退出
bc 指令很方便浮點數計算
uname 指令
uname? 選項
-a 選項:詳細輸出所有信息,依次為內核名稱,主機名,內核版本號,內核版本,硬件名,處理器類 型,硬件平臺類型,操作系統名稱
Linux VM-16-14-centos 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
x86_64==x64 ????????x86==32
查體系結構:-r 選項
3.10.0-1160.119.1.el7.x86_64
內核版本?? CentOS的簡寫
Linux 下查內存:free? 或??free? 選項
-k 選項:以 kb 的方式
-m 選項:
-g 選項
lsmem 也可以查內存
查磁盤:df? -h
查 CPU:lscpu
熱鍵
Tab:命令補齊
Ctrl C:
Ctrl R:歷史命令搜索 ==> Linux 系統一定記錄了歷史命令!!
Ctrl D:退出終端登錄、退出用戶
確認歷史命令:history
二. 指令的運行原理(簡單理解)
[qtw@VM-16-14-centos ~]$
用戶名? ? ? 主機名? ? ? ?當前目錄? ? ? ?命令行提示符
統稱為 bash命令行
指令輸入的過程,本質是輸入字符串。
指令的本質:編譯好的程序和腳本。一定會在系統的特定路徑下存放
所有的指令,最終都要在OS內部運行,但是OS使用難度大,用戶不能直接和OS打交道
Windows下有圖形化界面;Linux下有命令行解釋器:命令行、bash、sh、shell
命令行解釋器的工作:將用戶的命令翻譯給內核處理,將內核的處理結果翻譯給使用者
命令行解釋器存在的意義:1. 進行命令解釋 ????????2. 保護OS,對于用戶的非法請求,直接攔截
本篇的分享就到這里了,感謝觀看,如果對你有幫助,別忘了點贊+收藏+關注。
小編會以自己學習過程中遇到的問題為素材,持續為您推送文章