Day004_Linux基础命令之特殊符号与正则表达式通配符
特殊符號:
. 點 cd . 表示當前目錄
' '' 單引號,所見即所得 原封不動輸出
" ""雙引號,里面的特殊符號會被解析運行??
``?====$( ) 先運行() 里的命令,把結(jié)果留下
> 重定向符號? 先清空文件內(nèi)容, 再追加文件最后一行
>> 標準輸出追加重定向, 把內(nèi)容追加到文件最后結(jié)尾.
2> 錯誤重定向,? 只有錯誤的信息才會通過漏斗進入文件中(先清空,再追加)
2>> 錯誤追加重定向(只追加)
~ 當前用戶家目錄?
root /root
old? /home/old
! 使用查找并運行歷史命令?
!awk? ?找到最近的一條包含awk的歷史命令? ??
history |grep awk (相當于)? # history 顯示歷史命令
# 注釋?
root用戶的命令提示符
$ awk $ 表示取某一列內(nèi)容
普通用戶命令提示符
* 所有 任何東西
\ 撬棍, 反斜線,轉(zhuǎn)義字符
&&? 前一個命令執(zhí)行成功再執(zhí)行后面一個命令? ifdown eth0 && ifup eth0? (重啟)
||? 前一個命令執(zhí)行失敗再執(zhí)行后面的命令? (shell編程會用到)
eco && echo ok
eco || echo ok? ?用的較少
?通配符:
找出以.log 結(jié)尾的文件? ?find /var/log -type f -name "*.log"
*? 所有, 任意? "*.log"? ?"*.txt"
找出文件名包含oldboy的文件
find /oldboy/ -type f -name "*oldboy"? 找出以oldboy結(jié)尾的文件(這條命令意思)
find /oldboy/ -type f -name "*oldboy*"? 這條是文件名包含oldboy的文件
{ }? 生成序列
echo {1..6} > /oldboy/test.txt
[root@luffy001 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 文件
正則表達式:
引子:? 一個文本文件? 如何判斷哪一行的內(nèi)容是身份證號碼: 18位, 包含數(shù)字字母 ( 判斷) 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 參數(shù)取反)? ? ? grep -vn '^$' test.txt? -nv 取反并顯示行號
awk '/^$/' test.txt? (awk 過濾空行)
awk '!/^$/' test.txt? (awk? 中用! 取反) 取出除了空行之外的行的內(nèi)容.
?
sed命令排除空行
sed '/^$/d' test.txt 排除空行, /^$ 表示空行的內(nèi)容.
使用grep egrep 過濾出文件的前兩行內(nèi)容, test.txt (head -n2)
egrep 'oldboy'
?
Linux下文件系統(tǒng)的軟鏈接,硬鏈接
創(chuàng)建軟鏈接, ln -s 別名 文件名 ln -s oldboy /old/oldboy.txt
創(chuàng)建硬鏈接, ln 原文件 新命名文件
在test目錄下再創(chuàng)建一個目錄 mkdir -p /lodboy/test/001? ?硬鏈接數(shù)變成了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")? ?意思就是將后面執(zhí)行的結(jié)果給前面命令處理
sed -i 's#a#b#g'? `find /company -type f -name '*.txt"`? 反引號效果一樣的
方法三:
find /company -type f -name '*.txt" -exec ls? -l {}? \;
例題: 請問一個命令加什么參數(shù)可以實現(xiàn)下面的命令的內(nèi)容在同一行輸出.
echo "wooyun";echo "wooyun"
答: echo "wooyun"? `echo "wooyun"`? 或者 echo "wooyun" $(echo "oldboy")? 均能實現(xiàn)以上效果 , 如果輸出為單獨兩行 就用&& 連接兩條命令.
請給出如下格式的date命令
例::11-02-26
再給出實現(xiàn)按周輸出,比如
?
`` $( )? ?先運行里面的命令,再將結(jié)果展示出來.
?
date命令?
?date +%F 顯示的是年月日? date +%Y-%m-%d
[root@luffy001 oldboy]# date +%F
2018-11-14
[root@luffy001 oldboy]# date +%Y-%m-%d
2018-11-14
date +%w 顯示的是周幾.
?顯示年-月-日-周幾
date +%F-%w
date +%T 時分秒 的時間? ===> date+%H:%M:%S?
[root@luffy001 oldboy]# date +%T
15:57:20
顯示3天前的日期
date -d "-3day" +%F?
date -s 設(shè)置時間
date -s "+1hour"? 往后設(shè)置時間
ntp服務(wù)器,給網(wǎng)上的ntp服務(wù)器對時間
ntpdate pool.ntp.org
pool.ntp.org
ntp1.aliyun.com?
?
?
?
?
?
?
?
?
?
?
?
?
?
基礎(chǔ)正則 和高級正則
?
轉(zhuǎn)載于:https://www.cnblogs.com/Enzoo/p/9956509.html
總結(jié)
以上是生活随笔為你收集整理的Day004_Linux基础命令之特殊符号与正则表达式通配符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入理解JVM(一)编译openJDK
- 下一篇: 根据内容来产生一个二维码