(1)ls指令
ls -l可以縮寫成 ll? 同時一個ls可以加多個后綴 比如? ll -at?
?(2)pwd指令
(3)cd指令?
cd .是當前目錄?
(4)touch指令
(5)mkdir指令
(6)rmdir和rm指令
(7)tree?指令
主要作用是以樹狀結構展示目錄及其子目錄下的文件和文件夾層次結構。
它能讓用戶更直觀地查看目錄結構,尤其適合需要快速了解某個目錄內容組織方式的場景。
tree有可能需要下載? 下載指令為?
Linux中分隔符是/
Windos中分隔符是\
‘/’ 和‘\’同時也分別表示 Windows和Linux的根目錄?
linux中目錄的是以d開頭的(比如下圖的sss)
文件是以-開頭的 (比如下圖的STL源碼刨析.txt)
(8)*? 通配符
*可以匹配任意名稱 任意類型的文件
比如像我們這個地方創建了 123.c? 123.txt? 234txt? ?234.c 四個文件??
ls? *.c? 就是把匹配.c的文件列出來? ?
ls? 123.*
就是匹配123.開頭的文件 列出來
(9)man指令
我們平時很多指令容易忘? 可以直接man查看指令的用法? ?當我們要看man指令的用法怎么辦?
直接man man?
(11)printf指令??
?printf的指令和C語言里面的printf不是同一個東西? 作用是差不多的? 都是打印
比如像這個地方我直接用printf打印了helloworld?
其他很多具體作用我們可以直接man了
(12)cp指令
cp file1.txt file2.txt? ?
比如就像這個指令? 就是把file 1.txt這個文件復制到file2這個文件? 復制到file2這個文件? ?
這個地方cp file1.txt file2.txt? ? ?和? ?cp file1.txt? ./file2.txt
本質上是一樣? 沒有標明路徑就是默認當前路徑下的!? ?
像這種標明路徑的
cp file1.txt /home/user/documents
就是把?file1.txt
?復制到?/home/user/documents
?目錄下
那么cp -if的結果是什么? i代表要詢問? ? f代表不需要詢問? 那么到底需不需要詢問呢?
答案是要詢問? ?i的優先級比f更高? 因為這樣的話? 安全性會更好
(13)mv指令
簡要 概述一下? ?mv的功能是 文件重命名+剪切
mv oldname.txt newname.txt
將?oldname.txt
?重命名為?newname.txt
等同于
mv oldname.txt? ./newname.txt
把?file.txt
?移動到?/home/user/documents
?目錄下
mv file.txt /home/user/documents
將?source_dir
?目錄移動到?destination_dir
?目錄下
mv source_dir destination_dir
如果? mv? 文件? ?路徑? ? ? ?沒有給明確的重命名是什么? 就是默認名字不變 只執行剪切
? ? ? ? mv? ? 文件? ?路徑? 重命名? ?這個地方就是剪切+重命名??
但是這個地方要注意? 這個重命名的文件名? 不能是路徑上存在的
不然? 路徑+重命名的這個整體會被看成路徑? ?從而只執行剪切的? 不執行重命名!!!
(14)echo
主要用于在終端輸出文本字符串,也能將輸出內容重定向到文件。以下為你詳細介紹其用法:?
在終端輸出 "Hello, World!"
echo "Hello, World!"
不換行輸出
通常?echo
?輸出后會換行,若要避免換行,可使用?-n
?選項,示例如下:
echo -n "This will not add a newline."
解釋轉義字符
使用?-e
?選項可解釋反斜杠轉義字符,例如輸出包含換行和制表符的文本:
echo -e "First line\n\tSecond line"
將輸出重定向到文件
可以把?echo
?的輸出保存到文件中,使用?>
?進行重定向(會覆蓋原文件內容),示例如下
echo "This is a test." > test.txt
若要將內容追加到文件末尾,可使用?>>
,示例如下:
echo "Appending more text." >> test.txt
(15)which
指令本質上是可執行程序
可以查看指令所儲存的路徑
(16)alise
指令本質上是可執行程序
我們通過指令which? 可以知道指令所存儲的位置
我們發現我們的指令基本存在/user/bin/這個路徑中
我們可以把我們自己的可執行文件放到這個路徑中
然后我們發現我可以把我自己的可執行文件當作指令用?
我們根據 whic指令可以知道? ll指令上本質上ls -l
而這個過程被稱為取別名!!!? 取別名通過alise實現
(17)重定向操作符
linux里? 一切皆文件
輸出重定向
<是輸出重定向操作符??
>
:覆蓋輸出- 作用:把命令的標準輸出重定向到指定文件,若文件存在,內容會被覆蓋;若文件不存在,則會創建該文件。
- 示例:將
ls
命令的輸出保存到file_list.txt
文件中。
- 示例:將
? ls > file_list.txt
<操作符 本質上就是兩部操作?
1.清空文件
2.寫入新內容
因此? 我們可以根據? <創建沒有的文件
比如 <123.txt? 創建一個123.txt的文件
<<輸出追加重定向操作符
>>
:追加輸出- 作用:把命令的標準輸出追加到指定文件末尾,若文件不存在,則會創建該文件。
- 示例:將當前日期追加到
date_log.txt
文件中。
date >> date_log.txt?
輸入重定向
<
:從文件讀取輸入- 作用:把文件內容作為命令的輸入。
(18) cat
cat
?命令最基本的用途是顯示文件的內容。你只需在命令行中輸入?cat
?,后面跟上文件名,就可以在終端中查看文件的完整內容。
cat filename.txt
但是cat有一個缺點? 就是cat只能顯示較短的文件? 如果較大的文件? 比如有100w行的時候
cat就不那么適用了!? 這個時候就要用到下面2個指令了
(19)more指令
作用
more
?是一個基本的分頁查看工具,它允許你按頁查看文件內容或者命令輸出,當文件內容較多無法在一個屏幕內顯示完時,more
?可以將內容分成若干頁,每次顯示一頁。
more large_file.txt
執行上述命令后,more
?會顯示文件的第一頁內容,在屏幕底部會顯示?--More--
?提示信息以及當前顯示內容在文件中的百分比。
常用操作
- 按?
Space
?鍵:顯示下一頁內容。 - 按?
Enter
?鍵:向下滾動一行。 - 按?
q
?鍵:退出?more
?查看。
(20)less指令?
作用
less
?是?more
?的增強版,它具備?more
?的基本功能,同時還提供了更多的高級特性,例如可以向前和向后翻頁、搜索文本、跳轉至指定行等。
使用示例
less large_file.txt
常用操作
- 按?
Space
?鍵:顯示下一頁內容。 - 按?
b
?鍵:顯示上一頁內容。 - 按?
Enter
?鍵:向下滾動一行。 - 按?
y
?鍵:向上滾動一行。 - 按?
/
?鍵:進入搜索模式,輸入要搜索的文本,按?Enter
?鍵開始搜索,按?n
?鍵查找下一個匹配項,按?N
?鍵查找上一個匹配項。 - 按?
g
?鍵:跳轉到文件開頭。 - 按?
G
?鍵:跳轉到文件末尾。 - 按?
q
?鍵:退出?less
?查看。
less和more的區別
- 功能豐富度:
less
?的功能比?more
?更為豐富,less
?支持向前和向后翻頁、搜索文本、跳轉至指定行等操作,而?more
?主要只能向后翻頁。 - 內存使用:
less
?不需要將整個文件加載到內存中,它可以逐頁讀取文件內容,所以在處理大文件時,less
?的內存使用效率更高。而?more
?在某些情況下可能需要將部分內容加載到內存中。 - 交互性:
less
?的交互性更強,用戶可以更方便地進行各種操作,如搜索、跳轉等。而?more
?的操作相對較少。 - 命令歷史:
less
?可以記住用戶的操作歷史,例如搜索命令等,方便用戶重復使用。而?more
?沒有這個功能。
總體而言,若你只需要簡單地按頁查看文件內容,more
?就足夠了;若你需要更多的功能和更好的交互性,建議使用?less
。
?(21)head指令
(22)tail指令
?
(23)管道文件?
?那么思考一個問題: 我們如果要在一個100w行的文件中讀到一個文件的1000行到1020行
怎么辦:
方案1:我直接less搜索定位到1000行
方案2:直接head輸出前1020行 到一個中間文件tmp? 再對tmp? tail輸出最后20行? 這20行 就是原先文件的? 1000 到1020行? ?linux系統中對于這個中間的tmp文件? 有一個更好的選擇
就是管道文件? 符號是? |
比如? head -1020? ?123.txt |? tail -21
我們先把123.txt的文件的前1020行輸出到管道文件? 管道文件再將其末尾的20行打印出來
這樣就實現了打印原文件的1000 到1020行了
此外? |還可與連著用?
比如 head -1020? ?123.txt |? tail -21| head5