Chanler

Chanler

Linux 入門命令

shell 用於接受用戶命令傳遞給 os 執行
image.png|500


基本導航與查看#


pwd#

pwd,展示當前目錄絕對路徑


ls#

list,列出當前目錄下的文件

參數:
-l 列出每個文件的屬性,一般都會有 ll 的縮寫

drwxr-xr-x@ 2 fling staff  64  5 24 15:42 test
^ ^  ^  ^ ^ ^   ^     ^     ^   ^ ^  ^     ^
| |  |  | | |   |     |     |   | |  |     |
| |  |  | | |   |     |     |   | |  |     └─ 文件名/目錄名 (Name)
| |  |  | | |   |     |     |   | |  └─────── 最後修改時間 (Modification Time)
| |  |  | | |   |     |     |   | └────────── 最後修改日期 (月份中的某一天) (Day of Month)
| |  |  | | |   |     |     |   └──────────── 最後修改月份 (Month)
| |  |  | | |   |     |     └──────────────── 文件大小 (字節) (Size)
| |  |  | | |   |     └─────────────────────── 所屬組 (Group)
| |  |  | | |   └───────────────────────────── 文件所有者 (Owner)
| |  |  | | └───────────────────────────────── 硬連接數量 (Number of Hard Links)
| |  |  | └─────────────────────────────────── 擴展屬性標誌 (Extended Attributes Flag - @) (macOS specific)
| |  |  └───────────────────────────────────── 其他用戶權限 (Others' Permissions)
| |  └───────────────────────────────────────── 組用戶權限 (Group's Permissions)
| └──────────────────────────────────────────── 文件所有者權限 (Owner's Permissions)
└────────────────────────────────────────────── 文件類型 (File Type)

屬性詳解:

  • 文件類型:
    • -: 普通文件 (例如 1.txt)
    • d: 目錄 (例如 test)
    • l: 符號鏈接
    • c: 字符設備文件
    • b: 塊設備文件
    • s: 套接字文件
    • p: 命名管道

  • 文件權限:
    • 分為三組,每組三字符,代表了文件所有者、所屬組用戶、其他用戶的權限
    • 每組字符為 rwx 代表了讀、寫、執行的權限,無相應權限就用 - 代替,為了簡潔表示,用為 r\w\x 分配數字 4\2\1

  • 硬連接數量:
    • 對於文件,表示有多少個文件名指向此文件的 inode
    • 對於目錄,通常是 2 + 子目錄數量,每個目錄都有 . 指向自身 .. 指向父目錄

-a 列出全部文件,包括隱藏文件

.     ..    .env  1.txt test

cd#

c,進入一個目錄

前文說過 .. 代表父目錄
cd - 代表進入上一次所在位置


tree#

tree [] 展示目錄 [] 下的結構


文件與目錄操作#


touch#

touch,觸摸,更新時間,不過也可以創建文件


mkdir#

mkdir,建立目錄


cat#

cat,輸出某個文件的內容


less#

less,查看某個文件,可以上下翻,按 q 返回
只讀取並顯示屏幕所需部分
g 開頭 G 結尾
%p 百分比跳轉
/pattern 向前搜索、?pattern 向後搜索,n 下個匹配、N 上個匹配
F 持續監視文件末尾的新增內容,類似 tail -f


more#

more,查看某個文件,無法上翻,按 q 返回
會一次性加載整個文件到內存再顯示


head#

head,輸出某個文件的開頭

head --lines=n file 輸出 file 的前 n


tail#

tail,輸出某個文件的結尾

tail --lines=n file 輸出 file 的後 n 行
tail -f 持續查看後續內容


cp#

cp 源 目的 複製文件或目錄


mv#

mv 源 目的 移動,也可以用於重命名


rm#

rm,刪除
rm -r 遞歸刪除,用於目錄


ln#

ln,連接
ln -s 源 目的 軟連接,並不存儲文件,僅僅是一個快捷文件
ln 源 目的 硬連接,指向源文件的指針,共享相同的 inode,可認為引用,只能指向文件


權限與查找#


chmod#

修改權限
u\g\o 代表了三個組權限
chmod u+x file 代表給所有者執行權限
也可以用數字修改,如 chmod 744 file


file#

file,什麼文件類型,如 1.txt: ASCII text


where/which/whereis#

where,找到文件在哪


輸出、管道與編輯#


echo#

echo,輸出到命令行,注意特殊字符出現用 " " 包裹

> 標準輸出重定向到文件,如 echo "1" > 1.txt
>> 追加到文件
< 標準輸入重定向自文件


pipe#

command1 | command2 | command3 一個命令的標準輸出作為另一個命令的標準輸入

ls -l | grep "*.txt"
cat server.log | grep "ERROR" | less


nano#

Crtl+X 退出、Crtl+O 保存


vim#

命令模式下,:wq 保存退出、:q! 強制推出,[n]yy 複製 n 行 [n]p 粘貼 n 次到光標下一行 dd 剪除

命令模式輸入 i\a\o\I\A\O 進入插入模式,插入模式 esc 進入命令模式


image.png|500

插入模式中 ^ 可以跳轉到行首 $ 跳轉到行尾

命令模式輸入 : 進入尾行模式,尾行模式 esc\enter 進入命令模式


變量與通配符#


shell#

定義變量 variable=value 就定義好了,可以用 echo ${variable} 查看,大括號是用於防止歧義的

前向剪除,如 ff=week01echo ${ff#week} 輸出 01
去尾 %

? 代表一個字符的佔位,*指任意字符佔位


for i in $(seq 1 10) 1 到 10 序列
for ((i=0;i<10;i++)) c 風格循環

批量改名

for> do
for> mv ${d} chapter${d#week}
for> done

此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://blog.chanler.dev/posts/tech-learn/linux-command


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。