学習linux 11
9772 ワード
shell
十.shell特殊文字_Cutコマンド
特殊記号
1.*任意の文字2.?任意の文字3.#コメント文字4.エスケープ文字5.|パイプ文字
Cutコマンドは、フィールドを切り取るために使用されます.
Cutオプション-d文字分割文字は単一引用符で囲む必要があります-c指定の後に何番目の文字-fが指定フィールドの内容を表示するかを指定します
Cutの使い方
十一sort_wc_Uniqコマンド
sortソート、-n数字ソート-r逆ソート-tセパレータ–kn 1/-kn 1,n 2例:追加/etc/passwdから1.txt
[
sortでソート
sort-nアルファベットと特殊記号を数字で並べ替えると0とみなされます
sort-rは最大の数字を逆順に並べ替えます
wcコマンドwc–l統計行数
wc-m統計文字数
wc–w統計語
Uniqコマンドは再編集2.txtファイル
並べ替えてからやり直す
12 tee_tr_splitコマンドteeコマンドと>同様に、リダイレクトと同時に画面に表示されます.
tee–aはコンテンツの追加も可能です
trコマンドは、文字tr'a'b'の大文字と小文字を置換するために使用されますtr'[a-z][A-Z]'を置換します.
splitカット、ドキュメントのカット、-bサイズ(デフォルト単位バイト)
リダイレクトファイルの追加
カットファイル1000 kに単位を付けないデフォルトはバイトです
サイズの指定
abcで始まる名前を指定
指定カット1000行ごとに1つのsplit指定行数
shell特殊記号特殊記号$変数接頭辞、!変数接頭辞!変数接頭辞!組合せ正則の中に行位を表す.複数のコマンドを1行に書き、セミコロンで分割します.たとえば、次のようにします.
~ユーザーのホームディレクトリ、後の正規表現でマッチングを表す&コマンドをバックグラウンドに置く
大きい番号は正しいリダイレクトが前の内容を上書きすることを示します
2つ以上の番号を追加リダイレクト2>エラーリダイレクト2>>エラー追加リダイレクト&>正しいエラーを区別せずにすべて1つのファイルに入力
中かっこ[]文字の1つを指定し、[0-9][abc]
記号||&&&、コマンド間で使用する場合はshellで表すか、コマンド用の場合は1番目のコマンドが正常に実行されると2番目のコマンドは実行されず、1番目のコマンドが間違っている場合は実行に失敗して2番目のコマンドが実行されます
&&コマンドは、前のコマンドが正常に実行されたことを示します.後のコマンドが正常に実行されなかった場合、後のコマンドは実行されません.
知識の拡張
簡易監査システム1.linuxシステム追加操作記録監査設定オンラインユーザー操作記録履歴履歴設定ユーザー操作記録リアルタイム記録一般ユーザーが削除する権限がないことを保証するステップ:ディレクトリを作成し権限を与える
2 vi/etc/profile最後に次のコードを追加
二.PROMPT_についてCOMMAND環境変数の意味http://www.linuxnote.org/prompt_command-environment-variables.html义齿http://alsww.blog.51cto.com/2001924/1113112sortはASCIIでソートされていませんhttp://blog.csdn.net/zenghui08/article/details/7938975
十.shell特殊文字_Cutコマンド
特殊記号
1.*任意の文字2.?任意の文字3.#コメント文字4.エスケープ文字5.|パイプ文字
Cutコマンドは、フィールドを切り取るために使用されます.
Cutオプション-d文字分割文字は単一引用符で囲む必要があります-c指定の後に何番目の文字-fが指定フィールドの内容を表示するかを指定します
Cutの使い方
[root@qklinux-01 ~]# cat /etc/passwd |head
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@qklinux-01 ~]# cat /etc/passwd |head -2
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@qklinux-01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1 //
root
bin
[root@qklinux-01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2 //
root:x
bin:x
[root@qklinux-01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1-3 //
root:x:0
bin:x:1
十一sort_wc_Uniqコマンド
sortソート、-n数字ソート-r逆ソート-tセパレータ–kn 1/-kn 1,n 2例:追加/etc/passwdから1.txt
[
root@qklinux-01 ~]# head /etc/passwd >> 1.txt
1.txtファイルを編集して特殊記号を書き込む[root@qklinux-01 ~]# vim 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
1212aaaaaa
88888888dhajskkd
*sjakjsk
1212312
1231
>
<
{
]
sortでソート
[root@qklinux-01 ~]# sort 1.txt
<
>
]
{
1212312
1212aaaaaa
1231
1.txt
2.txt
88888888dhajskkd
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
*sjakjsk
sync:x:5:0:sync:/sbin:/bin/sync
sort-nアルファベットと特殊記号を数字で並べ替えると0とみなされます
[root@qklinux-01 ~]# sort -n 1.txt
<
>
]
{
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
*sjakjsk
sync:x:5:0:sync:/sbin:/bin/sync
1.txt
2.txt
1212aaaaaa
1231
1212312
88888888dhajskkd
sort-rは最大の数字を逆順に並べ替えます
[root@qklinux-01 ~]# sort -nr 1.txt
88888888dhajskkd
1212312
1231
1212aaaaaa
2.txt
1.txt
sync:x:5:0:sync:/sbin:/bin/sync
*sjakjsk
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
{
]
>
<
wcコマンドwc–l統計行数
[root@qklinux-01 ~]# wc -l 1.txt
21 1.txt
wc-m統計文字数
[root@qklinux-01 ~]# wc -m 1.txt
455 1.txt
wc–w統計語
[root@qklinux-01 ~]# wc -w 1.txt
21 1.txt
Uniqコマンドは再編集2.txtファイル
[root@qklinux-01 ~]# vi 2.txt
[root@qklinux-01 ~]# cat 2.txt
123
abc 111,222
123
abd
1
2
1
並べ替えてからやり直す
[root@qklinux-01 ~]# sort 2.txt |uniq
1
123
2
abc 111,222
abd
[root@qklinux-01 ~]# sort 2.txt |uniq -c
2 1
2 123
1 2
1 abc 111,222
1 abd
12 tee_tr_splitコマンドteeコマンドと>同様に、リダイレクトと同時に画面に表示されます.
[root@qklinux-01 ~]# sort 2.txt |uniq -c |tee a.txt
2 1
2 123
1 2
1 abc 111,222
1 abd
[root@qklinux-01 ~]# cat a.txt
2 1
2 123
1 2
1 abc 111,222
1 abd
tee–aはコンテンツの追加も可能です
[root@qklinux-01 ~]# sort 2.txt |uniq -c |tee -a a.txt
2 1
2 123
1 2
1 abc 111,222
1 abd
[root@qklinux-01 ~]# cat a.txt
2 1
2 123
1 2
1 abc 111,222
1 abd
2 1
2 123
1 2
1 abc 111,222
1 abd
trコマンドは、文字tr'a'b'の大文字と小文字を置換するために使用されますtr'[a-z][A-Z]'を置換します.
[root@qklinux-01 ~]# echo "qkailinux" |tr '[al]' '[AL]'
qkAiLinux
[root@qklinux-01 ~]# echo "qkailinux" |tr 'a' 'A'
qkAilinux
[root@qklinux-01 ~]# echo "qkailinux" |tr '[a-z]' '[A-Z]'
QKAILINUX
splitカット、ドキュメントのカット、-bサイズ(デフォルト単位バイト)
リダイレクトファイルの追加
[root@qklinux-01 ~]# find /etc/ -type f -name "*conf" -exec cat {} >> a.txt \;
[root@qklinux-01 ~]# du -sh a.txt
240K a.txt
[root@qklinux-01 ~]# ls
111 4.txt
123 aa.txt
1_heard.ttx anaconda-ks.cfg.1
1_sorft.txt a.txt
1.txt a.xtt
1.txt~ bb.txt
1.xtt qkai2
234 yum.log
2.txt zsh-5.0.2-31.el7.x86_64.rpm
3.txt .txt
[root@qklinux-01 ~]# mv a.txt test/
mv: "a.txt" "test/":
[root@qklinux-01 ~]# mkdir test
[root@qklinux-01 ~]# mv a.txt test/
カットファイル1000 kに単位を付けないデフォルトはバイトです
[root@qklinux-01 test]# split -b 1000 a.txt
[root@qklinux-01 test]# ls
a.txt xaw xbt xcq xdn xek xfh xge xhb xhy xiv
xaa xax xbu xcr xdo xel xfi xgf xhc xhz xiw
xab xay xbv xcs xdp xem xfj xgg xhd xia xix
xac xaz xbw xct xdq xen xfk xgh xhe xib xiy
xad xba xbx xcu xdr xeo xfl xgi xhf xic xiz
xae xbb xby xcv xds xep xfm xgj xhg xid xja
xaf xbc xbz xcw xdt xeq xfn xgk xhh xie xjb
xag xbd xca xcx xdu xer xfo xgl xhi xif xjc
xah xbe xcb xcy xdv xes xfp xgm xhj xig xjd
xai xbf xcc xcz xdw xet xfq xgn xhk xih xje
xaj xbg xcd xda xdx xeu xfr xgo xhl xii xjf
xak xbh xce xdb xdy xev xfs xgp xhm xij xjg
xal xbi xcf xdc xdz xew xft xgq xhn xik xjh
xam xbj xcg xdd xea xex xfu xgr xho xil xji
xan xbk xch xde xeb xey xfv xgs xhp xim xjj
xao xbl xci xdf xec xez xfw xgt xhq xin xjk
xap xbm xcj xdg xed xfa xfx xgu xhr xio xjl
xaq xbn xck xdh xee xfb xfy xgv xhs xip
xar xbo xcl xdi xef xfc xfz xgw xht xiq
xas xbp xcm xdj xeg xfd xga xgx xhu xir
xat xbq xcn xdk xeh xfe xgb xgy xhv xis
xau xbr xco xdl xei xff xgc xgz xhw xit
xav xbs xcp xdm xej xfg xgd xha xhx xiu
[root@qklinux-01 test]# du -sh
1.3M .
サイズの指定
[root@qklinux-01 test]# split -b 100k a.txt
[root@qklinux-01 test]# ls
a.txt xaa xab xac
[root@qklinux-01 test]# du -sh *
240K a.txt
100K xaa
100K xab
40K xac
abcで始まる名前を指定
[root@qklinux-01 test]# split -b 100k a.txt abc
[root@qklinux-01 test]# ls
abcaa abcab abcac a.txt
指定カット1000行ごとに1つのsplit指定行数
[root@qklinux-01 test]# split -l 1000 a.txt
[root@qklinux-01 test]# wc -l *
2500 abcaa
2577 abcab
1101 abcac
6178 a.txt
1000 xaa
1000 xab
1000 xac
1000 xad
1000 xae
1000 xaf
178 xag
18534
shell特殊記号特殊記号$変数接頭辞、!変数接頭辞!変数接頭辞!組合せ正則の中に行位を表す.複数のコマンドを1行に書き、セミコロンで分割します.たとえば、次のようにします.
[root@qklinux-01 ~]# ls 1.txt ; wc -l 2.txt
1.txt
7 2.txt
~ユーザーのホームディレクトリ、後の正規表現でマッチングを表す&コマンドをバックグラウンドに置く
[root@qklinux-01 ~]# sleep 30&
[1] 8188
root@qklinux-01 ~]# jobs
[1]+ sleep 30 &
大きい番号は正しいリダイレクトが前の内容を上書きすることを示します
2つ以上の番号を追加リダイレクト2>エラーリダイレクト2>>エラー追加リダイレクト&>正しいエラーを区別せずにすべて1つのファイルに入力
中かっこ[]文字の1つを指定し、[0-9][abc]
記号||&&&、コマンド間で使用する場合はshellで表すか、コマンド用の場合は1番目のコマンドが正常に実行されると2番目のコマンドは実行されず、1番目のコマンドが間違っている場合は実行に失敗して2番目のコマンドが実行されます
[root@qklinux-01 ~]# ls a.txt || wc -l 2.txt
ls: a.txt:
7 2.txt
[root@qklinux-01 ~]# ls 1.txt || wc -l 2.txt
1. txt
&&コマンドは、前のコマンドが正常に実行されたことを示します.後のコマンドが正常に実行されなかった場合、後のコマンドは実行されません.
[root@qklinux-01 ~]# ls 1.txt && wc -l 2.txt
1.txt
7 2.txt
[root@qklinux-01 ~]# ls 1a.txt && wc -l 2.txt
ls: 1a.txt:
知識の拡張
簡易監査システム1.linuxシステム追加操作記録監査設定オンラインユーザー操作記録履歴履歴設定ユーザー操作記録リアルタイム記録一般ユーザーが削除する権限がないことを保証するステップ:ディレクトリを作成し権限を与える
1.mkdir -p /usr/local/domob/records/
chmod 777 /usr/local/domob/records/
chmod +t /usr/local/domob/records/
2 vi/etc/profile最後に次のコードを追加
if [ ! -d /usr/local/domob/records/${LOGNAME} ]
then
mkdir -p /usr/local/domob/records/${LOGNAME}
chmod 300 /usr/local/domob/records/${LOGNAME}
fi
export HISTORY_FILE="/usr/local/domob/records/${LOGNAME}/bash_history"
export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'
二.PROMPT_についてCOMMAND環境変数の意味http://www.linuxnote.org/prompt_command-environment-variables.html义齿http://alsww.blog.51cto.com/2001924/1113112sortはASCIIでソートされていませんhttp://blog.csdn.net/zenghui08/article/details/7938975