AcWing-《Linux基礎課》筆記


Linux基礎課筆記

1. 常用文件管理命令

Linux系統文件不分盤存儲

基本文件概念

  1. 路徑:絕對路徑開頭是 /,相對路徑則不是

  2. . 當前目錄, .. 上層目錄

  3. ~/ : 家目錄, / :根目錄

常用命令及操作

  1. Ctrl + C:結束命令或進程(命令清空並換行輸入下一個命令,進程終止)

  2. Ctrl + U:清空本行命令並重新輸入當前行命令

  3. Tab:補全命令,文件,只有一個選項直接補全,單擊直接補全,有多個選項,雙擊列出所有選項

  4. :彈出上一條命令

  5. ls:查看當前文件夾所有內容

    1. -limage-20210903141437831 d表示是文件夾,4096是大小(字節)
    2. -hl,人性化輸出image-20210903141609248 此處用k作單位輸出(命令帶h都有人性化輸出的意思)
    3. -a,以.開頭的文件都是隱藏文件,此命令輸出當前目錄所有的文件(包含隱藏文件)
    4. -A,不顯示當前目錄及上層目錄,即顯示文件中沒有 "." 和 ". ."
  6. pwd:查看當前在哪個目錄下

  7. cd(change directory):后跟文件路徑,進入目標文件夾,不加任何參數則返回家目錄,后跟 -,返回上一個待過的目錄

  8. cp

    1. cp a/tmp.txt b(tmp2.txt),將a中tmp.txt文件復制到b中,(重命名為tmp2.txt)
    2. cp a b -r,將整個文件夾a,復制到文件夾b中
    3. cp a c -r,直接復制文件夾a重命名為c
  9. mkdir:輸入:mkdir + 文件路徑,創建文件夾

    1. 連續創建文件夾,mkdir a/b/c -p(文件存在則不報錯,不存在就創建)
    2. mkdir --help or -h,顯示命令行幫助
  10. rm:輸入 rm file1 file2,刪除多個文件, rm dir1 -r,刪除dir1文件夾,rm -f 刪除所有文件(包括受保護的)

  11. touch:創建一個文件

  12. mv:輸入 mv XXX YYY,將XXX文件移動到YYY,XXX和YYY相同或更改文件名則產生重命名的效果

  13. cat:查看文件里的內容

作業完成情況

2.tmux和vim

tmux

作用:分屏、進程不會因為斷開鏈接而中斷(在雲端執行)

結構tmux->session->pane:一個tmux可以開多個session,一個session可以開多個window,一個window可以開多個pane,一個pane開一個shell

操作

  1. 新建一個session,其中包含一個window,window包含一個pane,一個pane打開了一個shell對話框

  2. Ctrl + a后松開再按%,將當前pane左右平分成兩個pane(原版為Ctrl + b)

  3. Ctrl + a后松開再按",將當前pane上下平分成兩個pane

  4. Ctrl + d,關閉當前pane;如果當前window的所有pane都關閉則關閉window;如果session所有window都關閉,自動關閉session

  5. 鼠標點擊可以選中目標pane

  6. Ctrl + a后松開再按方向鍵,可以切換到相鄰的pane

  7. 鼠標拖動pane之間的分割線,可以調整分割線位置

  8. 按住Ctrl + a同時按方向鍵,也能調整分割線的位置

  9. Ctrl + a后松開再按z,可以全屏,再按一次取消全屏

  10. Ctrl + a后松開再按d,退出session

  11. tmux a:打開剛才掛起的session

  12. 先按Ctrl + a松開再按s

    1. 方向鍵上下,選擇session
    2. 方向鍵,合上選項
    3. 方向鍵,展開選項
  13. 先按Ctrl + a松開再按c,在當前session中創建一個新的window

  14. 先按Ctrl + a松開再按w,選擇其他window,方法和第12的相同

  15. 先按Ctrl + a松開再按PageUp,翻閱當前pane內的內容

  16. 按住Shift進行選中,Ctrl + insert復制,Shift + insert粘貼

vim

功能

1. 命令行模式下的文本編輯器
2. 使用文件擴展名自動判斷編程語言。支持代碼縮進、代碼高亮等功能
3. 使用方式:vim filename
  	1. 有該文件,則打開
  	2. 無該文件,則新建並打開這個文件

模式

一般命令模式

​ 默認模式,命令輸入方式:按不同字符,即可進行不同操作。可以復制、粘貼、刪除文本等

編輯模式

​ 一般命令模式里按 i,進入編輯模式

​ 按下ESC退出編輯模式,進入一般命令模式

命令行模式

​ 一般命令模式下按: / ?三個字母中的任意一個,會進入命令模式。命令行在最下面。

​ 可以查找、替換、保存、退出、配置編輯器等。

操作

  1. i:進入編輯模式
  2. ESC:進入一般命令模式
  3. h 或 左箭頭鍵:光標向左移動一個字符
  4. j 或 下箭頭鍵:光標向下移動一個字符
  5. k 或 上箭頭鍵:光標向上移動一個字符
  6. l 或 右箭頭鍵:光標向右移動一個字符
  7. n<Space>:n表示數字,按下數字再按功空格,光標向右移動這一行的n個字符
  8. 0 或 Home:光標移動到本行開頭
  9. $ 或 End:光標移動到本行末尾
  10. G:光標移動到最后一行
  11. :n 或 nG:其中n為數字,光標移動到第n行
  12. gg:光標移動到第一行 ,相當於1G
  13. n<Enter>:n為數字,光標向下移動n行
  14. /word:向光標之下尋找第一個值為word的字符串
  15. ?word:向光標之上尋找第一個值為word的字符串
  16. n:重復前一個查找操作
  17. N:反向重復前一個查找操作
  18. :n1,n2s/word1/word2/g:其中n1和n2位數字,在n1行與n2行之間尋找word1這個字符串,並將該字符串替換為word2
  19. :1,$s/word1/word2/g:將全文word1替換為word2
  20. 1,$s/word1/word2/gc:與前者相似,但在替換前需要用戶確認
  21. v:選中文本
  22. d:刪除選中的文本
  23. dd:刪除當前行(剪切)
  24. y:復制選中的文本
  25. yy:復制當前行
  26. p:將復制的數據在光標的下一個位置粘貼
  27. u:撤銷
  28. Ctrl + r:取消撤銷
  29. Shift + >:將選中的文本整體向右移動
  30. Shift + <:將選中的文本整體向左移動
  31. :w:保存
  32. :w!:強制保存
  33. :q:退出
  34. :q!:強制退出
  35. :wq:保存並退出
  36. :set paste:設置成粘貼模式,取消代碼自動縮進
  37. :set nopaste:取消粘貼模式,開啟代碼自動縮進
  38. :set nu:顯示行號
  39. :set nonu:隱藏行號
  40. gg=G:將全文格式化
  41. :noh:關閉查找關鍵詞高亮
  42. Ctrl + q:當vim卡死,可以取消當前執行的命令

異常處理

每次用vim編輯文件時,自動創建一個.finename.swp的臨時文件

如果打開某個文件,該文件swp文件已經存在,會報錯,此時有兩種解決方法:

1. 找到正在打開該文件的程序,並退出
2. 直接刪掉該swp文件即可

Shell

注釋

# XXX 單行注釋
:<<EOF(或其他字符)
多行注釋1
多行注釋2
多行注釋3
EOF

變量

定義變量

變量首先被定義成字符串,再使用時會進行自動轉換

name1='roshin'	# 可以加單引號
name2="roshin"	# 可以加雙引號
name3=roshin	# 可以不加引號

使用變量

$可以類比為取值符號

{}幫助識別變量的邊界,否則第三個echo會輸出nameyyds這個變量的值

name=roshin
echo $name # out:roshin
echo ${name} # out:roshin
echo ${name}yyds # out:roshinyyds

只讀變量

關鍵字:readonly declare

name=roshin
readonly name
declare -r name
name=abc # 有報錯,因為常量只讀無法修改

刪除變量

unset 刪除變量

name=roshin
unset roshin
echo $name	# out:(無輸出)

變量類型

1.自定義變量(局部變量)子進程不能訪問的變量

2.環境變量(全局變量) 子進程可以訪問的變量

# 自定義變量換為環境變量
name=roshin
export name	# 第一種方法
declare -x name # 第二種方法
# 環境變量變為自定義變量
declare +x name

字符串

字符串用不用單雙引號都可以

單引號與雙引號的區別:

​ 單引號中的內容會原樣輸出、不會執行、不會去變量

​ 雙引號中的內容可以執行,可以取變量

獲取字符串長度
name=roshin
echo ${#name} # out:6
提取子字符串
name=roshin
echo ${name:0:5} # out:roshi

默認變量

文件參數變量

執行shell腳本時,可以向腳本傳遞參數,$1是第一個參數,$2是第二個參數,$0是文件名(含路徑)

echo $0		
echo $1
echo $2

其他參數相關變量

部分參數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM