vim 使用#
mkdir 文件夾名創建文件夾
rm -rf 文件名刪除文件
cp 原文件路徑 目的路徑 複製單個文件
cp 原文件路徑 -r 目的路徑 複製文件夾
mv 原文件或文件夾名 重命名後的名字重命名文件或文件夾
查看文件:cat 文件名
將查找後的內容另存為別的文件grep 查找內容 文件名>新文件名
cat 文件名 | grep 查找內容 文件名>新文件名
添加權限
chmod +x 文件名
創建 test.sh:
date
添加 x 權限
chmod +x test.sh
運行 sh 文件
./test.sh
[test@iZuf64fh3qqfih9qs3bh1oZ tang]$ vi test.sh
[test@iZuf64fh3qqfih9qs3bh1oZ tang]$ ll
total 36
drwxrwxr-x 9 test test 4096 Sep 15 17:15 1
-rw-rw-r-- 1 test test 878 Sep 15 17:32 SentimentModel_def
-rw-rw-r-- 1 test test 14794 Sep 15 17:10 SentimentModel.py
-rw-rw-r-- 1 test test 5 Sep 15 20:22 test.sh
-rw-rw-r-- 1 test test 76 Sep 15 19:16 test.txt
drwxrwxr-x 2 test test 4096 Sep 15 19:21 xieqiang
[test@iZuf64fh3qqfih9qs3bh1oZ tang]$ chmod +x test.sh
[test@iZuf64fh3qqfih9qs3bh1oZ tang]$ ll
total 36
drwxrwxr-x 9 test test 4096 Sep 15 17:15 1
-rw-rw-r-- 1 test test 878 Sep 15 17:32 SentimentModel_def
-rw-rw-r-- 1 test test 14794 Sep 15 17:10 SentimentModel.py
-rwxrwxr-x 1 test test 5 Sep 15 20:22 test.sh
-rw-rw-r-- 1 test test 76 Sep 15 19:16 test.txt
drwxrwxr-x 2 test test 4096 Sep 15 19:21 xieqiang
[test@iZuf64fh3qqfih9qs3bh1oZ tang]$ ./test.sh
Wed Sep 15 20:23:15 CST 2021
創建空文件touch 文件名
顯示 Linux 下文本文件的換行符
cat -A filename
複製粘貼
yy 複製整行
p 粘貼
刪除行
dd 刪除光標所在行
ndd 刪除光標所在的向下 n 行
dG 刪除光標所在到最後一行的數據
刪除選中的文字
如果在命令狀態,使用v或Ctrl+v選中一段文字,然後按x
複製選中文字
如果在命令狀態,使用v或Ctrl+v選中一段文字,然後按y複製,按p(或P)粘貼
顯示行號
:set nu
取消行號
:set nonu
多文件編輯
:n 編輯下一個文件
:N 編輯上一個文件
:files 列出當前 vim 打開的所有文件
DOS 與 Linux 的換行符
dos2 unix [-kn] file [newfile] 轉換為 Unix
unix2 dos [-kn] file [newfile] 轉換為 dos
通配符與特殊符號
*代表 0 個或多個字符(或數字)
?代表 “一定有” 一個字母
#註釋,常用在腳本中,視為說明
\轉義字符,將 “特殊字符或通配符” 還原成一般字符
| 分隔兩個管道的命令
;連續命令的分隔(注意,與管道命令不同)
&將命令變成後台工作
!邏輯意義上的 “非”(not)的意思
/路徑分隔的符號
> >>輸出導向,分別是 “替換” 與 “追加”
' 不具備變量置換功能
” 具備變量置換功能
``兩個“`”中間為可以先執行的命令
() 中間為子 shell 的起始和結束
[]中間為字符的組合
{} 中間為命令區塊的組合
管道命令(pipe)
1、cut
echo $PATH|cut -d ':' -f 3
2、去除 shell 的 \r
cat my_shell.sh|tr -d '\r' > my_shell.sh
//------------------------ 正則表達式 ----------------------------------------------------------
1、grep [-acinv] ' 搜索字符串 ' filenames
參數說明:
-a : 在二進制文件中,以文本文件方式搜索數據
-c : 計算找到 ' 搜索 ' 字符串的次數
-i : 忽略大小寫的不同
-n : 輸出行號
-v : 反向選擇,即顯示沒有 ' 搜索字符串 ' 內容的那一行
2、利用 [] 來搜索集合字符串
grep -n 't[ae]st' filenames [] 中不論有幾個字符,都只代表一個字符,即至搜索 'tast' 和 'test' 兩個字符串
grep -n '[^g]oo' filenames 取出 oo 前面不含 g 的字符串
grep -n '[^a-z]oo' filenames 取出 oo 前面不含小寫字母的字符串(如果要求是數字和英文,則為 [a-zA-Z0-9])
3、行首與行尾字符 ^ $
grep -n '^the' filenames 取出行首包含the的字符串(注意,^在[]之內和之外是不同的,在[]表示反向選擇,在[]之外則代表定位在行首)
grep -n '\.$' filenames 取出行尾有'.'的行
4、任意一個字符。與重複字符 *
grep -n 'g..d' filenames 取出包含 g、d 字符的行,且 g、d 字符之間一定要存在兩個字符
grep -n 'oo*' filenames 取出包含 1 個及以上 o 的行(* 代表 0 個或多個任意字符)
5、限定重複字符範圍 {}
grep -n 'o\{2,5\}' filename 取出包含 2~5 個 o 的行(注意:{} 在 shell 中有特殊含義,使用是需要轉義符 \)
6、sed 工具簡介
刪除
cat -n /etc/passwd | sed '2,2d' 刪除第 2 到第 12 行
cat -n /etc/passwd | sed '12,$d' 刪除第 12 行到最後一行增加
cat -n /etc/passwd | sed '2a hello wanlx' 在第 2 行後新增 hello wlx
cat -n /etc/passwd | sed '5i hello wanlx' 在第 5 行後新增 hello wlx 替換
cat -n /etc/passwd | sed '2,5c hello wanlx' 將 2-5 行替換為 hello wlx 打印
cat -n /etc/passwd | sed -n '5,7p' 顯示 5-7 行
7、awk工具簡介(好東西)
按空格和 Tab 切割字符串
//-------------------- 學習 shell 腳本 -------------------------------------------------------------
1、使用判斷符號 []
1.1 在每個組件中間,都要用空格分隔,例如:[ "$HOME" == "$MAIL" ]
1.2 中括號內的變量,最好用雙引號來設置。
1.3 中括號內的常量,最好用單引號或雙引號來設置。
2、shell 腳本的追蹤與調試
sh [-nvx] filename.sh
-n 不要執行腳本,僅查詢語法問題
-v 在執行腳本前,先將腳本的內容輸出到螢幕上
-x 將使用的腳本內容顯示到螢幕上(追蹤腳本的執行)
//---------------- 循環執行的例行性命令 --------------------------------------------------
crontab [-u username] [-l|-e|-r]
參數
-u 只有root才能執行這個任務,即幫其他用戶建立 / 刪除crontab
-e 編輯crontab的工作內容
-l 查看crontab的工作內容
-r 刪除crontab的工作內容 (全部內容)
30 10 * * * /bin/sh /root/shell_script/mongodb/mongo_log_mgr.sh
編輯任務
crontab -e
*/1 * * * * cd /home/wanlx/myworkspace;date >> date.wlx
分 時 日 月 周
編輯完成後重啟crond服務 (redhat6.4可以不重啟)
/etc/init.d/crond restart
編譯系統發送郵件的地址
vi /etc/crontab 然後修改MAILTO
//--------------- 管理後台作業 -------------------------------------------
kill -signal %jobnumber
參數
-l 這個是 L 的小寫,列出當前 kill 能使用的信號 (signal)
signal 表示給後面的作業什麼指示(不知道幹啥的)。用 man 7 signal 可知
-1 表示重新讀取一次參數的設置文件(類似 reload)
-2 表示與由鍵盤輸入[ctrl]-c同樣的動作
-9 立刻強制刪除一個作業
-15 以正常的程序方式終止一項作業