Day02 目錄和文件的管理(ADMIN02)
1.1 mount
mount a filesystem
掛載命令
1.1.1 mount -o ro /dev/vdb2 /part2
只讀掛載/dev/vdb2
1.1.2 mount -o remount,rw /dev/vdb2 /part2
卸載/dev/vdb2再重新掛載,而且加上rw參數
1.1.3 mount -t cifs -o username=linux,password=123456 //172.216.176.36/test /mnt/win-test
把windows共享的目錄掛載到linux上訪問
1.2 >
覆蓋重定向
文本文件 清空該文本文件
1.3 >>
追加重定向
1.4 echo
display a line of text
顯示一行指定的文本1.4.1 echo -n
不輸出換行
1.4.2 echo -e
支持反斜線開始的轉義字符
\n 換行輸出
echo -e “hello\nthe world”
輸出結果如下:
hello
the world
\v 垂直tab分隔輸出
echo -e "hello\vthe\vworld"
輸出結果如下:
hello
the
world1.5 useradd
create a new user or update default new user information
添加用戶1.6 du
estimate file space usage
du -sh /boot 統計/boot目錄下總文件大小
1.7 mkdir
創建目錄
1.7.1 mkdir -p
創建目錄及子目錄
1.7.2 mkdir -m 777
創建目錄的同時並指定基本權限
1.8 rm
remove files or directories
刪除文件和目錄,它刪除目錄是從最底層的目錄開始刪
1.8.1 rm -fr
遞歸刪除目錄
1.8.2 rm -fr !(user50)
user50文件夾不刪除,其他文件夾全部刪除
1.8.3 rm -fr !(user10|user20|user50)
user10、user20、user50三個文件夾不刪除,其他文件夾全部刪除
1.8.4 rm -- -*
刪除以-開頭的所有文件。也可以用rm -f ./-*
1.9 mv
類似windows的剪切命令,還可以重命名文件。
重命名:路徑不動的mv操作
1.10 cp
拷貝文件
1.10.1 cp -r
遞歸拷貝文件或目錄目錄
1.10.2 cp -i -f的優先級
當-i -f兩個選項共存的時候,-i的優先級更高。-i的意思是出現重名時會出現提示信息,確認是否要覆蓋
1.10.3 \cp
在本次操作中,臨時取消別名的定義
1.10.4 cp -p
保持原文件的權限,修改時間等屬性不變
1.11 alias
顯示當前定義的有效別名
當別名與系統自帶命令相同的時候,別名的優先級遠高於系統自帶命令
1.11.1 alias格式
alias myls=‘ls -ld‘
1.12 unalias
刪除別名
1.13 uptime
查看系統CPU負載,最後三個值分別是1分鐘、5分鐘、15分鐘內CPU的負載。
判斷標準:
2核CPU,值為2表示CPU負載100%
4核CPU,值為4表示CPU負載100%
1.14 printf ‘打印格式‘ 實際內容
參數:
關於格式方面的幾個特殊樣式:
\a 警告聲音輸出
\b 退格鍵(backspace)
\f 清除屏幕 (form feed)
\n 輸出新的一行
\r 亦即 Enter 按鍵
\t 水平的 [tab] 按鍵
\v 垂直的 [tabl] 按鍵
\xNN NN 為兩位數的數字,可以轉換數字成為字符。
1.15 ss
ss命令用於顯示socket狀態. 他可以顯示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等統計。它比其他工具展示等多tcp和state信息. 它是一個非常實用、快速、有效的跟蹤IP連接和sockets的新工具。
1.5.1 ss -ln
顯示本地打開的所有端口
1.5.2 ss -pln
顯示每個進程具體打開的socket
1.5.3 ss -an -t
顯示所有tcp socket
1.5.4 ss -an -u
顯示所有udp socket
1.5.5 ss -o state established ‘( dport = :smtp or sport = :smtp )‘
顯示所有已建立的SMTP連接
1.5.6 ss -x src /tmp/.X11-unix/*
找出所有連接X服務器的進程
1.5.7 ss -4 state established
打印tcp ipv4 的sockets信息
二、基礎知識
2.1 絕對路徑
從/開始的路徑
2.2 相對路徑
不從/開始的路徑
2.3 永久修改別名
/root/.bashrc是root用戶的別名文件
在文件最後增加alias ls=‘ls -l‘
重開所有終端就能生效
三、通配符
3.1 *(asterisk)
匹配任意(0~n)個任意字符
3.2 ?(question mark)
匹配單個字符
3.3 [ ](square bracket)
匹配多個字符中的任意一個,若無則忽略
當前目錄內容
ls -l
total 0
-rw-r--r--. 1 root root 0 Oct 25 17:03 a
-rw-r--r--. 1 root root 0 Oct 25 17:03 aa
-rw-r--r--. 1 root root 0 Oct 25 17:03 b
-rw-r--r--. 1 root root 0 Oct 25 17:03 bc
-rw-r--r--. 1 root root 0 Oct 25 17:03 c
-rw-r--r--. 1 root root 0 Oct 25 17:03 d
-rw-r--r--. 1 root root 0 Oct 25 17:03 de
-rw-r--r--. 1 root root 0 Oct 25 17:03 fg
-rw-r--r--. 1 root root 0 Oct 25 17:03 hi
-rw-r--r--. 1 root root 0 Oct 25 17:03 jk
ls -l ./[abcd]*
-rw-r--r--. 1 root root 0 Oct 25 17:03 ./a
-rw-r--r--. 1 root root 0 Oct 25 17:03 ./aa
-rw-r--r--. 1 root root 0 Oct 25 17:03 ./b
-rw-r--r--. 1 root root 0 Oct 25 17:03 ./bc
-rw-r--r--. 1 root root 0 Oct 25 17:03 ./c
-rw-r--r--. 1 root root 0 Oct 25 17:03 ./d
-rw-r--r--. 1 root root 0 Oct 25 17:03 ./de
結果只匹配了a,b,c,d開頭的任意文件,fg、hi、jk文件並未匹配
3.3.1 [x-y]
當中括號裏面有-的時候,就表示從x到y,連續的字符或數字
比如我要顯示/dev下面的tty3~tty8這6個文件
ls /dev/tty[3-8]
輸出結果:/dev/tty3 /dev/tty4 /dev/tty5 /dev/tty6 /dev/tty7 /dev/tty8
但是要顯示/dev下面tty20~tty30這11個文件的話,單用中括號就無法解決了
嘗試一下:
ls /dev/tty[20-30]
輸出結果:/dev/tty0 /dev/tty1 /dev/tty2 /dev/tty3
出來的結果為什麽是這樣的呢?
因為[]只會匹配單個字符和連續字符,它是這麽識別的。
tty2、tty0~tty3、tty0
最後的結果就是tty0~tty3這四個文件
正確的命令有:
命令一、ls /dev/tty{2[0-9],30}
輸出結果:
/dev/tty20 /dev/tty21 /dev/tty22 /dev/tty23 /dev/tty24 /dev/tty25 /dev/tty26 /dev/tty27 /dev/tty28 /dev/tty29 /dev/tty30
命令二、ls /dev/tty{20..30}
輸出結果:
/dev/tty20 /dev/tty22 /dev/tty24 /dev/tty26 /dev/tty28 /dev/tty30
/dev/tty21 /dev/tty23 /dev/tty25 /dev/tty27 /dev/tty29
3.4 { }(brace)
匹配多組不同的字符串或數字,以”,”分隔,全匹配
匹配多組連續的字符串或數字,以”..”分隔,全匹配
ls /dev/tty{1,3,5,7,9}
輸出結果:
/dev/tty1 /dev/tty3 /dev/tty5 /dev/tty7 /dev/tty9
ls /dev/tty{20..30}
/dev/tty20 /dev/tty22 /dev/tty24 /dev/tty26 /dev/tty28 /dev/tty30
/dev/tty21 /dev/tty23 /dev/tty25 /dev/tty27 /dev/tty29
四、特殊字符含義
4.1 點號(period)
.表示當前目錄
4.2 (backslash)
在命令首部的時候,表示臨時取消該命令對應的別名
在命令中的時和,表示對特殊字符的轉義,即取消特殊字符的功能,轉換成一個普通字符
4.3 /(slash)
對路徑進行分隔
五、VIM
5.1 定義
文本文件編輯器
5.2 模式
5.2.1命令模式
vim打開文件的時候,默認就是命令模式
5.2.2 輸入模式
在命令模式輸入a,i,o切換到輸入模式,按esc鍵切換到命令模式
5.2.3 末行模式
在命令模式下收入冒號”:”切換到末行模式,按esc鍵切換到命令模式
:w 保存
:wq 保存退出
:wq! 強制保存
5.3快捷鍵
5.3.1 操作命令
G 移動到這個檔案的最後一行(常用)
nG n 為數字。移動到這個檔案的第 n 行。例如 20G 則會移動到這個
檔案的第 20 行(可配合 :set nu)
gg 移動到這個檔案的第一行,相當於 1G 啊! (常用)
n<Enter>
n 為數字。光標向下移動 n 行(常用)
x, X 在一行字當中,x 為向後刪除一個字符 (相當於 [del] 按鍵), X
為向前刪除一個字符(相當於 [backspace] 亦即是退格鍵) (常用)
nx n 為數字,連續向後刪除 n 個字符。舉例來說,我要連續刪除 10個字符, 10x
ndd n 為數字。刪除光標所在的向下n行,例如 20dd 則是刪除 20行(常用)
ncc n為數字,刪除光標所在的向下n行,並且進入輸入模式
d1G 刪除光標所在到第一行的所有數據
dG 刪除光標所在到最後一行的所有數據
d$ 刪除光標所在處,到該行行尾的所有數據
D 刪除光標所在處,到該行行尾的所有數據
C 刪除光標所在處,到該行行尾的所有數據,並且進入插入模式(常用)
d0 那個是數字的 0 ,刪除光標所在處,到該行的最前面的所有數據(常用)
d^ 刪除光標所在處,到該行的最前面的所有數據
yy 復制遊標所在的那一行(常用)
nyy n 為數字。復制光標所在的向下 n 列,例如 20yy 則是復制 20 列(常用)
y1G 復制光標所在列到第一列的所有數據
yG 復制光標所在列到最後一列的所有數據
y0 復制光標所在的那個字符到該行行首的所有數據
y$ 復制光標所在的那個字符到該行行尾的所有數據
p, P 為將已復制的數據在光標下一行貼上,P 則為貼在光標上一行!
舉例來說,我目前光標在第 20 行,且已經復制了 10 行數據。則
按下 p 後, 那 10 行數據會貼在原本的 20 行之後,亦即由 21
行開始貼。但如果是按下 P 呢? 那麽原本的第 20 行會被推到變
成 30 行。 (常用)
J 將光標所在列與下一列的數據結合成同一列
u 復原前一個動作。(常用)
ctrl+r 重做上一個動作。(常用)
ZZ 保存修改並退出
ctrl+g 顯示當前編輯的文件名和詳細路徑(常用)
5.3.2 搜索命令
/abc 從上到下搜索以abc開頭的字符串
n 搜索下一個
N 搜索上一個
?abc 從下到上搜索以abc開頭的字符串
n 搜索下一個
N 搜索上一個
/abc\c 忽略大小寫查詢包含abc的字符串
5.3.3末行命令
:set nu|nonu 顯示/不顯示行號
:set ai|noai 開啟/不開啟自動縮進後。下一行輸入的字符會與上一行對齊,即與上一行到行首的距離是相同的
:set ignorecase/noignorcase 開啟/不開啟忽略大小寫查找
:set bg=dark 設置註釋的顏色為淺藍
:w newfile 保存到newfile
:r otherfile 讀入otherfile
:s /old/new 替換當前行第一個‘old‘為new
:s /old/new/g 替換當前行所有的‘old‘為new
:n,m s/old/new/g 替換從n到m行的所有‘old‘為new
:% s/old/new/g 替換全文所有的‘old‘為new
:f 顯示當前編輯的文件名稱和詳細路徑
5.4 vim多文件編輯
vim -o file1 -o file2
vim file1 file2 file3
:n 編輯下一個文件
:N 編輯上一個文件
:files 列出目前這個vim打開的所有文件
5.5 vim多窗口
vim具有類似切割窗口或凍結窗口的功能
:sp[file] 不加file表示同一個文件打開兩個窗口;加file表示在新窗口打開file
ctrl+w+j 光標切換到下一個窗口
ctrl+w+k 光標切換到上一個窗口
5.6 ~/.vimrc
該文件默認沒有,需要自己創建
echo -e ‘set bg=dark\nset ai‘ >/root/.vimrc #開啟自動縮進、設置背景顏色
5.7 ~/.viminfo
記錄你開機以後做過的所有vim操作記錄
Day02 目錄和文件的管理(ADMIN02)