天天看點

Linux一些指令!

getopt

=====================================================

                    常用指令

=====================================================

 1 基本指令

     o 1.1 ls   -R -S -t -i(find -inum)

     o 1.2 cat,tac

     o 1.3 rev

     o 1.4 cp   -a -u -R(r)

     o 1.5 mv

     o 1.6 rm   ./-g   -- -g

     o 1.7 rmdir

     o 1.8 mkdir  這個指令的 -p我以前用過,還可結合{ ,}

     o 1.9 chmod

     o 1.10 chattr (以前一直沒搞懂它和lsattr怎用的,lsattr老是全出現-) i a s u c

     o 1.11 ln

     o 1.12 man,info

 2 複雜指令

     o 2.1 find -exec COMMAND /;   /+這個怎麼用?(mv)重點!-execdir??

     o 2.2 xargs

     o 2.3 expr  *****

 3 時間/日期指令

     o 3.1 date  %N

     o 3.3 time  times(好像是内建指令, time好像也是  :help與enable)

     o 3.4 touch

     o 3.5 at

     o 3.8 sleep

 4 文本處理指令

     o 4.1 sort*

     o 4.3 uniq*

     o 4.5 cut*   awk

     o 4.8 head

     o 4.9 tail

     o 4.10 grep*

     o 4.12 sed,awk*

     o 4.15 wc*

     o 4.16 tr*

     o 4.17 fold -s??

     o 4.19 col(?)

     o 4.20 column

     o 4.22 nl

 5 檔案與歸檔指令

     o 5.1 tar --delete(隻對.tar,不對.gz) -u -r -A -d

     o 5.2 shar

     o 5.3 ar

     o 5.4 rpm

     o 5.5 cpio   (低??)

     o 5.6 rpm2cpio

 6 壓縮指令

     o 6.1 gzip

     o 6.2 bzip2

     o 6.5 zip,unzip

     o 6.6 unarc,unarj,unrar

 7 檔案資訊

     o 7.1 file*

     o 7.2 which

     o 7.3 whereis*

     o 7.4 whatis

     o 7.6 locate,slocate

     o 7.8 diff,patch* (diff3 sdiff很少用)

     o 7.9 cmp

 8 一般工具

     o 8.1 basename

     o 8.2 dirname

     o 8.4 sum,cksum,md5sum,sha1sum*

     o 8.5 shred

 9 編碼和解碼

     o 9.1 uuencode

     o 9.2 uudecode

 10 一些雜項工具

     o 10.1 mktemp

     o 10.4 dos2unix

 11 通訊指令

     o 11.1 host

     o 11.3 nslookup

     o 11.4 dig

     o 11.5 traceroute

     o 11.6 ping

     o 11.7 whois

     o 11.13 ftp

     o 11.15 telnet

     o 11.16 wget

     o 11.21 rsync  ????

     o 11.22 ssh

     o 11.23 scp

     o 11.24 write

     o 11.25 mail (可以對外郵寄)

 12 終端控制指令

     o 12.5 script

 13 數學計算指令

     o 13.2 bc

     o 13.4 awk*

 14 混雜指令

     o 14.2 getopt ??

     o 14.11 dd*

=====================================================

                Shell内建指令

=====================================================

 1 I/O 類

     o 1.1 echo -n -e -E

     o 1.2 printf

     o 1.3 read -n

 2 檔案系統類

     o 2.1 cd

     o 2.2 pwd

     o 2.3 pushd、popd、dirs

 3 變量類

     o 3.1 let

     o 3.2 unset

     o 3.3 export

     o 3.4 getopts

 4 腳本行為

     o 4.1 source, . (點指令)

     o 4.2 exit

     o 4.3 exec

     o 4.4 true

     o 4.5 type[cmd]

     o 4.6 bind

     o 4.7 help

 5 作業控制指令

     o 5.1 jobs

     o 5.2 disown nohup setsid screen

     o 5.3 fg、bg

     o 5.4 wait

     o 5.5 logout

     o 5.6 times

     o 5.7 kill

     o 5.8 command

     o 5.9 builtin

=====================================================

                            系統管理指令

=====================================================

---------------------------------------------

ulimit

/proc裡設定

修改核心源碼,從新編譯核心

----------------------------------------------

 1 Users 和 Groups 類指令

     o 1.1 users

     o 1.2 groups

     o 1.3 chown,chgrp*

     o 1.4 useradd,userdel*

     o 1.5 usermod*

     o 1.6 groupmod gpasswd

     o 1.7 id

     o 1.8 who

     o 1.9 w

     o 1.10 logname

     o 1.11 su

     o 1.12 sudo

     o 1.13 passwd

     o 1.14 ac

     o 1.15 last

     o 1.16 newgrp

 2 終端類指令

     o 2.1 tty

     o 2.2 sty

     o 2.3 tset

     o 2.4 setserial

     o 2.5 getty,agetty

     o 2.6 mesg

     o 2.7 wall

     o 2.8 uname

     o 2.9 arch

     o 2.10 lastcomm

     o 2.11 lastlog

     o 2.12 lsof (lsusb lsdev)

     o 2.13 strace

     o 2.14 nmap

     o 2.15 nc

     o 2.16 free

     o 2.17 procinfo

     o 2.19 du

     o 2.20 df

     o 2.21 dmesg

     o 2.22 stat

     o 2.23 vmstat

     o 2.24 iostat

     o 2.25 netstat

     o 2.26 uptime

     o 2.27 hostname

     o 2.28 hosted

     o 2.29 sar

     o 2.30 readelf

     o 2.31 size

 3 系統日志類

     o 3.1 logger

     o 3.2 logrotate

 4 作業控制

     o 4.1 ps pidof

     o 4.2 pgrep, pkill

     o 4.3 pstree

     o 4.4 (h)top

     o 4.5 nice

     o 4.6 nohup setsid disown screen

     o 4.8 fuser lsof

     o 4.9 cron

 5 程序控制和啟動類

     o 5.1 init

     o 5.2 telinit

     o 5.3 runlevel

     o 5.4 halt,shutdown,reboot

     o 5.5 service

 6 網絡類

     o 6.1 ifconfig

     o 6.2 iwconfig(無線網絡的ifconfig版本)

     o 6.3 route

     o 6.4 chkconfig(RH類專有)

     o 6.5 tcpdump

 7 檔案系統類

     o 7.1 mount

     o 7.2 umount

     o 7.3 sync

     o 7.4 losetup

     o 7.5 mkswap

     o 7.6 swapon,swapoff

     o 7.7 mke2fs

     o 7.8 tune2fs

     o 7.9 dumpe2fs

     o 7.10 hdparm

     o 7.11 fdisk

     o 7.12 fsck,e2fsck,debugfs

 8 系統

     o 8.1 badblocks

     o 8.2 lsusb,usbmodules

     o 8.3 mkbootdisk

     o 8.4 chroot

     o 8.5 lockfile

     o 8.6 mknod

     o 8.7 MAKEDEV 是一個指令

     o 8.8 tmpwatch

 9 備份類

     o 9.1 dump,restore

     o 9.2 fdformat

 10 系統資源類

     o 10.1 ulimit

     o 10.2 quota

     o 10.3 setquota

     o 10.4 umask

     o 10.5 rdev *

 11 子產品類

     o 11.1 lsmod

     o 11.2 insmod

     o 11.3 rmmod

     o 11.4 modprobe

     o 11.5 depmod

     o 11.6 modinfo

 12 雜項類

          o 12.1 env

          o 12.2 ldd

          o 12.3 strip

          o 12.4 nm

          o 12.5 rdist

============================================

sed中的可以直接使用的正則:

    * . ^ $ [ ] /

需要轉義使用的正則符号:

+  ? { } ( ) | < >

其它

/w ( 相當于[A-Za-z_] ) /W ( 相當于[^A-Za-z_] )

/b 比對單詞的前或後邊界

/B 比對單詞的非邊界

/< 比對單詞的位置前

/> 比對單詞的位置後

============================================

數組類用法:

${name[*]}和${name[@]} 擴充為整個數組的所有項。差別僅在帶雙引号時,*擴充為一個詞,@擴充為數組長度個詞(for val in "${name[*]",即可看出差別),所有變量替換中的*和@的差別都與此類似。

${#name} name為變量時,擴充為變量字元串的長度;name為數組時,擴充為數組長度。${#name[subscript]}符合前者。

雜類:

${parameter:offset}和${parameter:offset:length} 擴充為parameter從第offset字元開始,取length個字元;無length時,預設取到變量末尾。

一種特例,${parameter: -n}擴充為變量parameter的最後n個字元(注意:和-之間必須有空格)

${@:offset:length}擴充為指令行參數清單從 offset開始的length項;

${name[@]:offset:length}擴充為數組name從${name[offset]}開始的 length項。

${!prefix*}和${[email protected]} 擴充為所有以prefix開始的變量名。

${!name[*]}和${!name[@]} 擴充為name數組的所有下标。

預設值類用法:

${parameter-word} 若parameter變量未定義,則擴充為word。

${parameter:-word} 若parameter變量未定義或為空,則擴充為word。

${parameter:-word} 若parameter變量未定義,則從父程序的标準錯誤輸出輸出bash: parameter: word。

${parameter:-word} 若parameter變量未定義或為空,則從父程序的标準錯誤輸出輸出bash: parameter: word。

${parameter+word} 若parameter變量已定義,則擴充為word。

${parameter:+word} 若parameter變量非空,則擴充為word。

${parameter=word} 若parameter變量未定義,則擴充為word,并将parameter指派為word。

${parameter:=word} 若parameter變量未定義或為空,則擴充為word,并将parameter指派為word。

變量值替換類:

${parameter#pattern}和${parameter##pattern} 掐頭,#是最小比對,##是最大比對,将變量從開頭比對pattern,最後擴充為原變量值去掉比對的内容後的内容。

${parameter%pattern}和${parameter%%pattern} 去尾,%是最小比對,%%是最大比對,将變量從結尾比對pattern,最後擴充為原變量值去掉比對的内容後的内容。

${parameter/pattern/string}和${parameter//pattern/string} 擴充為将變量内容比對pattern的部分用string替換後的内容。/隻做第一次替換,//做全部替換。此例的一種特殊用法,pattern中以#開頭時比對pattern開頭的,pattern中以%開頭時比對pattern結尾的。

此類中使用的pattern都是檔案名擴充所支援的通配符,并不支援BRE或ERE,shopt -s extglob打開的擴充檔案名擴充也可影響此pattern,使之支援更複雜的檔案名擴充。

此類中的parameter都可以為*或@,以擴充為使每個指令行參數清單(即$1,$2...$n)都進行操作後的内容;還都可以為name[*]或name[@],以擴充為使每個數組項都進行操作後的内容。

繼續閱讀