Linux 常用命令總結
1、mkdir make directorys 創建目錄
例子:mkdir /data 在根下創建data目錄
2、ls list 列表列表目錄文件
-a 隱藏文件 -l 長格式 -F 給不同文件結尾加標識 -p 給目錄結尾加斜線 -t 按修改時間排序 -r 反轉排序(倒序)
3、echo 打印輸出內容
例子:echo "abc" >>a.txt 將內容abc追加到a.txt里
4、cat 查看文件內容
-n 顯示行號
5、xargs 從標注輸入的內容創建和執行命令
例子:xargs -n 4 <a.txt 分成每四個為一行輸出
6、cp copy 拷貝文件或目錄
-r 遞歸,用于拷貝目錄 例子:cp -r /test/ /data/
-p 保留屬性
7、rm remove刪除文件或目錄 -f 強制 -r 遞歸
8、mv move移動文件或目錄 在當前目錄下:重命名
9、find 查找
-type 文件類型 (f 文件 d目錄 c字符 b 塊設備)
-name 文件名
-exec 操作
例子:1、find /data -type f -name "*.txt" -exec rm {} \ ;
2、find /data -type f -name "*.txt" | xargs rm -rf 刪除data目錄下所以txt結尾的文件
-mtime 文件修改時間(+7 七天以前 7 第七天 -7 最近七天)
例子:1、find /data -type f -name "*.log" -mtime -7 -exec rm {} \ ; 刪除最近七天的文件
2、find /data -type f -mtime +7 | xargs rm -rf 刪除最近七天以前的文件
10、grep 過濾內容
--color=auto 對過濾字符設置顏色
-n . 顯示行號
-v 排除內容 例子:grep -v test a.txt 排除a.txt中test內容
-A 除了顯示匹配的一行之外,并顯示該行之后的num行 例子:grep 20 -A 10 a.txt 打印文件的20-30行內容
-B 除了顯示匹配的一行之外,并顯示該行之前的num行 例子:grep 30 -A 10 a.txt 打印文件的20-30行內容
-C 除了顯示匹配的一行之外,并顯示該行前后的num行 例子:grep 25 -A 5 a.txt 打印文件的20-30行內容
11、sed 留編輯器,實現對文件的增刪改查替換
參數-n 取消默認輸出 p(打印) 例子:sed -n '2,10'p a.txt 打印文件的2-10行內容
替換 s 全局 g 修改文件內容 -i 例子:sed -i 's/abc/cba/g' a.txt 把a.txt中所有abc替換為cba
* /是分隔符 可用任意3個相同的字符代替
12、awk 過濾輸出,一門語言
NR行號 例子:awk '1<NR && 11>NR' a.txt 打印文件的2-10行內容
$1 第一列、$2第二列,但$0標識一行
-F指定分隔符 -NF 結尾
13、head 頭,輸出文件前N行內容,默認前10行
14、tail 尾,輸出文件后N行內容,默認后10行
15、alias 查看和設置別名
例子:alias mv='echo mv is dangerous command' 用于提示用戶mv是危險指令
例子:alias net='systemctl restart network' 簡化操作,輸入net后重啟網絡
unalias 取消別名 例子:unalias net
*僅保存在內存,永久生效需要保存在 ~/.bashrc(當前用戶生效)/etc/profile(全局生效)
16、sourec 常用于重新執行剛修改的初始化文件,使之立即生效,而不必注銷并重新登錄
17、seq 序列
例子:seq 100 >a.txt 生成100列1-100的序列
-s 橫向打印 例子:seq -s " " 1 10
18、netstat 用于顯示各種網絡相關信息
19、在secureCRT中 yum install lrzsy -y 下載
rz 命令本地上傳文件到服務器
sz filename 命令發送文件到本地
20、su 變更使用者身份
例子:su - abc
21、date 系統時間
date +%F 當天日期 date +%s 時間戳
22、chmod 更改文件系統的權限
r=4 w=2 x=1 u=用戶 g=組 o=表示其他 a=表示全部
-R 遞歸,更改整個目錄的權限
例子:chmod a+x test 給test所有用戶組其他x權限
例子:chmod 777 test 給test777最高權限
23、chown 更改文件所有權
例子:chown root test1 更改test1的所有權
例子: chown :root test1 使用:更改組的所有權
例子:chown root:root test1 同時更改所有者和組
-R 遞歸,更改整個目錄的所有權
24、scp 機器之間的復制 可用hostname與id指定
例子:scp /home/a xxxxip:/root 將本地/home/a文件目錄復制到xxxx的/root目錄
scp -r xxxip:/root /home 將xxxx的root目錄復制到本地/home
25、sftp 用戶兩臺機器的交互式遠程傳輸
sftp可使用ls,pwd,mkdir等命令,put用于上傳,get用于下載
例子:sftp<put -r /home 將xxxxip主機上的/home目錄下載至本地目錄
26、ln 軟、硬鏈接
ln -s 源文件 目標文件 軟連接 相當于快捷方式 例子:ln -s test newtest
ln 源文件 目標文件 硬連接 相當于更新+實時更新 例子:ln test newtest
27、uname 打印系統信息
-a (all) -n 顯示主機名
28、shutdown halt init 0 關機
init 6 reboot shutdown -r 重啟
例子:shutdown -h now 關機
29、history 查看歷史記錄
-c 清除記錄 -d num 清除指定行的記錄
30、wc 統計
-l 統計總行數 -L顯示字符數
其他補充&面試題
創建100個txt文件/目錄:
#touch/mkdir {1..100}.txt
查找opt下所以txt文件移動到data目錄:
#mv ` find /opt/ -type f -name "*.txt" ` /data/
刪除一個目錄下所有文件,只保留一個指定文件:
#find /opt/ -type f ! -name "1.txt" -exec rm {} \; #find /opt/ -type f ! -name "1.txt" | xargs rm
打印一個100行文件的20-30行內容
#sed -n '20,30'p a.txt
將/opt目錄下所有.sh文件的內容內的abc替換為jty
#find /opt -type f -name '*.sh' |xargs sed -i 's/abc/jty/g'
使用awk抓取/etc/passwd文件中的10-20行的第三列,重定向到/data/test.txt文件里
#awk -F ":" '9<NR && NR>21 {print $3}' > /data/test.txt
將目錄下所有.txt文件名的后綴改為.sh
#rename .txt .sh *.txt
查找當前目錄下的所有隱藏目錄和一級目錄(僅包含一級目錄)
#ls -F | grep "/$" #ls -l | awk '{(if $2>1) prinf $0}'
已知服務的訪問日志按天記錄在服務器本地目錄/app/logs下,由于磁盤空間緊張,現在要求只保留最近7天訪問日志,請問如何解決?至少三種方法
find /app/logs -type f -mtime +7 | xargs rm -f find /app/logs -type f -mtime +7 -exec rm -f {} \; rm -f `find /app/logs -type f -mtime +7`
特殊符號
| 管道符
. 當前目錄
.. 上級目錄
· 反引號
1>或> 輸出重定向:把前面輸入的東西放到文件后面,會清空原有內容
1>>或>> 追加重定向:把前面輸入的東西放到文件后面,不會清空原有內容
https://blog.51cto.com/yangrong/1288072

浙公網安備 33010602011771號