Day004_Linux基礎命令之特殊符號與正則表示式萬用字元
特殊符號:
. 點 cd . 表示當前目錄
' '' 單引號,所見即所得 原封不動輸出
" ""雙引號,裡面的特殊符號會被解析執行
`` ====$( ) 先執行() 裡的命令,把結果留下
> 重定向符號 先清空檔案內容, 再追加檔案最後一行
>> 標準輸出追加重定向, 把內容追加到檔案最後結尾.
2> 錯誤重定向, 只有錯誤的資訊才會通過漏斗進入檔案中(先清空,再追加)
2>> 錯誤追加重定向(只追加)
~ 當前使用者家目錄
root /root
old /home/old
! 使用查詢並執行歷史命令
!awk 找到最近的一條包含awk的歷史命令
history |grep awk (相當於) # history 顯示歷史命令
# 註釋
root使用者的命令提示符
$ awk $ 表示取某一列內容
普通使用者命令提示符
* 所有 任何東西
\ 撬棍, 反斜線,轉義字元
&& 前一個命令執行成功再執行後面一個命令 ifdown eth0 && ifup eth0 (重啟)
|| 前一個命令執行失敗再執行後面的命令 (shell程式設計會用到)
eco && echo ok
eco || echo ok 用的較少
萬用字元:
找出以.log 結尾的檔案 find /var/log -type f -name "*.log"
* 所有, 任意 "*.log" "*.txt"
找出檔名包含oldboy的檔案
find /oldboy/ -type f -name "*oldboy" 找出以oldboy結尾的檔案(這條命令意思)
find /oldboy/ -type f -name "*oldboy*" 這條是檔名包含oldboy的檔案
{ } 生成序列
echo {1..6} > /oldboy/test.txt
[[email protected] oldboy]# echo {1..6}
1 2 3 4 5 6
cp oldboy.txt{,.bak} 會同時生成一個.txt檔案的備份 .txt.bak 的檔案
-rw-r--r--. 1 root root 27 Nov 13 14:51 oldboy.txt
-rw-r--r-- 1 root root 27 Nov 13 15:04 oldboy.txt.bak 逗號隔開,之前的就是.txt檔案, 之後的就是.txt.bak 檔案
正則表示式:
引子: 一個文字檔案 如何判斷哪一行的內容是身份證號碼: 18位, 包含數字字母 ( 判斷) id.txt
@1 正則表示式是按照行進行處理的
@2禁止使用中文字元.
# 給grep和egrep 配置別名
alias grep="grep --color=auto"
alias egrep="egrep --color=auto"
寫入到/etc/profile 中 source /etc/profile 使其生效即可.
cat >>/etc/profile<<EOF
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
EOF
source /etc/profile
grep 和awk 過濾空行的命令;
grep '^$' test.txt (grep命令過濾空行)
grep -v '^$' test (grep -v 引數取反) grep -vn '^$' test.txt -nv 取反並顯示行號
awk '/^$/' test.txt (awk 過濾空行)
awk '!/^$/' test.txt (awk 中用! 取反) 取出除了空行之外的行的內容.
sed命令排除空行
sed '/^$/d' test.txt 排除空行, /^$ 表示空行的內容.
使用grep egrep 過濾出檔案的前兩行內容, test.txt (head -n2)
egrep 'oldboy'
Linux下檔案系統的軟連結,硬連結
建立軟連結, ln -s 別名 檔名 ln -s oldboy /old/oldboy.txt
建立硬連結, ln 原檔案 新命名檔案
在test目錄下再建立一個目錄 mkdir -p /lodboy/test/001 硬連結數變成了3個
找出當前目錄下所有檔案,將檔案中'a' 替換成'b'
find /company -type f -name '*.txt"|xargs sed -i 's#a#b#g' (找出這個目錄下所有txt檔案,並將其中的a字元替換成b字元)
方法二:
sed -i 's#a#b#g' $(find /company -type f -name '*.txt") 意思就是將後面執行的結果給前面命令處理
sed -i 's#a#b#g' `find /company -type f -name '*.txt"` 反引號效果一樣的
方法三:
find /company -type f -name '*.txt" -exec ls -l {} \;
例題: 請問一個命令加什麼引數可以實現下面的命令的內容在同一行輸出.
echo "wooyun";echo "wooyun"
答: echo "wooyun" `echo "wooyun"` 或者 echo "wooyun" $(echo "oldboy") 均能實現以上效果 , 如果輸出為單獨兩行 就用&& 連線兩條命令.
請給出如下格式的date命令
例::11-02-26
再給出實現按周輸出,比如
`` $( ) 先執行裡面的命令,再將結果展示出來.
date命令
date +%F 顯示的是年月日 date +%Y-%m-%d
[[email protected] oldboy]# date +%F
2018-11-14
[[email protected] oldboy]# date +%Y-%m-%d
2018-11-14
date +%w 顯示的是周幾.
顯示年-月-日-周幾
date +%F-%w
date +%T 時分秒 的時間 ===> date+%H:%M:%S
[[email protected] oldboy]# date +%T
15:57:20
顯示3天前的日期
date -d "-3day" +%F
date -s 設定時間
date -s "+1hour" 往後設定時間
ntp伺服器,給網上的ntp伺服器對時間
ntpdate pool.ntp.org
pool.ntp.org
ntp1.aliyun.com
基礎正則 和高階正則