Linux基礎命令使用

date: 日期和時間

                   date[options] [+FORMAT]

                            %s:時間戳計時法,從Unix元年(1970-01-01 00:00:00)到此刻所經過的秒數

                            %F,%D

                            %T

                            %Y

                            %m

                            %d

                            %H

                            %M

                            %S

 

                   date[MMDDhhmm[[CC]YY][.ss]]

 

                   Linux有兩個時鐘:系統時鐘和硬件時鐘

                            硬件時鐘:

                            系統時鐘:Linux

 

                   hwclock

                            -s:以硬件爲準

                            -w:以系統爲準

 

         ntp:Network Time Protocol

                   通過網絡同步系統時間

 

                   C/S:Server, Client

 

         ntpdateSERVER

 

         who:登錄至當前系統的所有用戶

         whoami:當前終端上登錄的用戶

 

         which:顯示指定命令的完整路徑

                   --skip-alias:路過命令別名

 

FHS:

         /bin,/sbin: 系統自身啓動和運行時可能會用戶的核心二進制命令

         /lib:共享庫文件和內核模塊

         /lib64:

         /etc:配置文件

         /usr:

                   /usr/bin,/usr/sbin: 系統運行中,用戶爲完成某些操作可能用到的命令

                   /usr/lib,/usr/lib64: 庫文件

                   /usr/share/man,/usr/share/doc

         /dev:devices的簡寫,所有設備的設備文件都存放於此處;設備文件通常也稱爲特殊文件(僅有元數據,而沒有數據)

         /proc:僞文件系統,內核和進程信息的虛擬文件系統接口

         /sys:僞文件系統,硬件設備信息虛擬文件系統接口

         /boot:系統引導加載時用到的靜態文件,內核和ramdiskCentOS5:initrd, CentOS6:initramfs, grub(bootloader)

 

         /home/USERNAME

         /root

 

         /mnt

         /media

 

         /srv:服務所用到的數據

 

         /tmp:臨時文件存儲位置

 

         /var:經常發生變化的文件

                   /var/log

 

         /misc:備用目錄

 

         /opt:第三方應用程序的安裝目錄

         /usr/local:

 

         /selinux

                   SecurityEnhanced Linux: 安全加強的Linux

 

 

 

         應用程序的組成部分:

                   二進制程序

                   庫文件

                   配置文件

                   幫助文件

 

文件管理類命令:

         文件類型

         文件信息查看

         用戶和權限

         bash的一些特性

                   管道和重定向

                   文件本編輯器

                   正則表達式

                   文件查找

 

         文件類型:

                   普通文件:-, f

                   目錄文件: d

                   符號鏈接文件:l

                   設備文件:

                            字符設備:c (線性設備)

                            塊設備:b (隨機設備)

                   命名管道:p

                   套接字文件:s unix sock文件)

 

         文件內容的類型:

                   file/path/to/somefile

 

         目錄管理:

                   cd,pwd, ls

 

                   mkdir:make directory

                            -p:當指定的目標目錄的父目錄不存在時,則先創建之

 

                   rmdir:remove directory

                            -p:刪除單傳目錄路徑中各目錄

 

                   bash的工作特點:沒有返回信息通常最好的信息

                            每個命令執行結束後,會有一個“執行狀態返回值”,有效範圍0-255

                                     0:執行成功

                                     1-255:執行失敗

 

                            使用特殊變量$?可以獲取最近一條命令的狀態返回值

                                     #echo $?

 

                   bash特性之一:命令行展開

                            ~:用戶家目錄

                            ~USERNAME:指定用戶的家目錄

 

                            {}:

                                     /tmp/{x,y}

                                               /tmp/x,/tmp/y

 

                                     /tmp/{x,y}/z

                                               /tmp/x/z,/tmp/y/z

 

                            創建/tmp/x/z,/tmp/y/z, /tmp/x/m, /tmp/y/m

 

                            練習1:創建/tmp/

                                     a_b, c_b, a_d, c_d

 

                            練習2:創建/tmp/mylinux/

                                     boot

                                               grub

                                     bin

                                     sbin

                                     etc

                                               rc.d

                                                        init.d

                                               sysconfig

                                                        networking-scripts

                                     lib

                                               modules

                                     lib64

                                     usr

                                               local

                                                        bin

                                                        sbin

                                                        lib

                                                        lib64

                                               bin

                                               sbin

                                               lib

                                               lib64

                                     proc

                                     sys

                                     dev

                                     var

                                               log

                                               run

                                               lock

                                     tmp

 

         #mkdir -pv/tmp/mylinux/{boot/grub,bin,sbin,etc/{rc.d/init.d,sysconfig/networking-scripts},lib/modules,lib64,usr/{bin,sbin,lib,lib64,local/{bin,sbin,lib,lib64}},proc,sys,dev,var/{log,run,lock},tmp}

 

         如何安裝tree:

                   #cd /etc/yum.repos.d/

                   #wget http://172.16.0.1/centos6.5.repo

                   #rm CentOS-Base.repo

                   #yum -y install tree

 

         ls命令:

                   list簡寫

 

                   ls[option] [file]

 

                            常用選項:

                                     -l:long,長格式顯示文件的詳細屬性信息

                                               drwxr-xr-x.  2 root root 4096 Feb 12 09:55 account

                                                        左起第一位:文件類型

                                                        後面的9位:權限,常稱爲mode

                                                                 r:讀,Read

                                                                 w:, Write

                                                                 x:執行, eXcute

                                                        .:表示文件有隱藏屬性

                                                                 lsattr命令可以查看

                                                        數字:此文件被硬鏈接的次數

                                                        屬主:owner, 文件的擁有者

                                                        屬組:group, 文件的所屬的組

                                                        4096: 文件大小,單位是字節

                                                                 -h:human-readable,自動做單位換算

                                                        文件最近一次被修改的時間

                                                        文件名

                                     -a:顯示所有文件

                                     -d:通常和-l一起使用,用於僅顯示目錄自身屬性

                                     -r:reverse, 逆序顯示

                                     -R:recursive, 遞歸顯示,顯示子目錄中的內容

 

         文件管理類的命令:

                   查看:cat, tac,head, tail, less, more

                   時間戳管理:touch

                   複製:cp

                   移動:mv

                   查看元數據屬性:stat

                   文本編輯器:nano,vi

 

         stat:顯示文件的元數據

                   時間戳:

                            atime

                            mtime

                            ctime

 

         touch:改變文件的atimemtime

                   touch[option]... FILE

                            如果FILE不存在,默認會創建一個空文件

 

                            -a:僅改變atime

                            -m:僅改變mtime

                            -c:不創建空文件

                            -t[[CC]YY]MMDDhhmm[.ss]

 

         文件查看類命令:

                   cat:連接並顯示文本文件內容

 

                   數據流:stream

 

                            -E:顯示行結束符

                            -n:顯示行號

 

                   tac:逆序顯示文件內容

 

                            Shift+PageUp/PageDown 翻屏

 

                   分屏顯示:

                            more less

 

                   查看首部或尾部的部分內容:

                            head

                            tail

                                     -n#: 指定的行數

 

                            tail-f

 

         命令總結:shutdown,date, reboot, halt, poweroff, which, who, man, info, help, whatis, makewhatis,whoami, hwclock, ntpdate, touch, stat, file, cat, tac, more, less, head, tail,mkdir, rmdir, cd, pwd, ls, type, hash

 

回顧:

         文件類型:

                   f,d, l, c, b, p, s

 

                   file

 

         文件timestamp:

                   atime

                   mtime:數據的改變

                   ctime:元數據的改變

 

                   stat

 

                   ls-l

 

         文本查看:cat,tac, more, less, head, tail

 

        

bash特性之命令別名和命令引用:

         alias

         aliasALIAS=COMMAND

 

         別名與命令同名時:

                   絕對路徑

                   \COMMAND

 

                   生效範圍:命令行定義的別名,其生效範圍爲當前會話;

 

         unalias[ALIAS]

                   -a:撤消所有別名

 

         bash支持的引用:

                   ''

                   ""

                   ``:引用一個命令的執行結果

                            $()

 

 

bash特性之文件名通配(globbing):

         *:任意長度的任意字符

                   p*d,pad, pbd, pd

                   *ab*c

         ?:匹配任意單字符

         []:匹配指定範圍內的任意單字符

                   [abc],[a-z], [0-9], [0-9a-z]

         [^]:匹配指定範圍以外的任意單字符

                   [^0-9a-z]

 

                   字符集合:

                            [:space:]: 所有空白字符

                            [:punct:]: 所有標點符號

                            [:lower:]:所有小寫字母

                            [:upper:]

                            [:digit:]

                            [:alnum:]

                            [:alpha:]

 

         練習:

                   1、顯示/var目錄下所有以l開頭,以一個小字母結尾,且中間出現一位數字的文件或目錄;

                            #ls /var/l*[[:digit:]]*[[:lower:]]

                   2、顯示/etc目錄下,以任意一位數字開頭,且以非數字結尾的文件或目錄;

                            #ls -d /etc/[[:digit:]]*[^[:digit:]]

                   3、顯示/etc目錄下,以非字母開頭,後面跟了一個字母及其它任意長度字符的文件或目錄;

                            #ls -d /etc/[^[:alpha:]][[:alpha:]]*

 

         練習:

                   1、在/tmp/mytest目錄中創建以testdir打頭,後跟當前日期和時間的空目錄,形如testdir-2014-07-03-09-15-33

                            #mkdir -pv /tmp/mytest/testdir-$(date +%F-%H-%M-%S)

 

 

echo命令

         echo[-neE] [arg ...]

 

                   \n

                   \t

 

                   \033[

                            單個數字:控制字體

                            3##是一個數字,3表示控制其前景色

                            4##是一個數字,4表示控制其背景色

 

                            組合使用,彼此間使用;分隔

 

                   m:是固定格式

 

         \033[0m:控制符的功能至此結束

 

文件管理類命令:

         複製:cp

         移動:mv

         刪除:rm

 

         cp:

                   cpSRC DEST

                            SRC是文件:

                                     如果DEST不存在:複製SRCDEST

                                     如果DEST存在:

                                               如果DEST是文件:則覆蓋

                                               如果DEST是目錄:將SRC複製進DEST中,並保持原名

 

                   cpSRC... DEST

                            如果SRC不止一個,則DEST必須得是目錄;

 

                   cpSRC DEST

                            SRC是目錄:

                                     可使用-r選項:

 

                   cp-r SRC... DEST

 

                   練習:複製/etc目錄下,所有以p開頭,以非數字結尾的文件或目錄至/tmp/mytest1目錄;

                            #mkdir /tmp/mytest1

                            #cp -r /etc/p*[^[:digit:]]  /tmp/mytest1

 

                   練習:複製/etc/目錄下,所有以.d結尾的文件或目錄至/tmp/mytest2目錄;

                            #mkdir /tmp/mytest2

                            #cp -r /etc/*.d  /tmp/mytest2

 

                   練習:複製/etc/目錄下所有以lmn開頭,以.conf結尾的文件至/tmp/mytest3目錄;

                            #mkdir /tmp/mytest3

                            #cp -r /etc/[lmn]*.conf /tmp/mytest3

 

                   -P:複製符號鏈接文件本身,而非其指向的目標文件

                    --preserve[=ATTR_LIST]

                           mode,ownership,timestamps

                                    mode:權限

                                    owership:屬主、屬組

                                    timestamps:時間戳

 

                           -p:相當於 --preserve=mode,ownership,timestamps

 

                   -a:相當於 -dR--preserve=all

                            歸檔:archive

 

                   -i:interactive

                   -f:force

 

         mv命令:

                   mvSRC... DEST

 

                   -i:interactive

 

         rm命令:

                   -i

                   -f

 

                   --no-preserve-root

 

文本編輯命令:nano

         全屏編輯器:

 

文本處理類命令:

         wc: Word Count文本統計工具

                   -l:僅顯示行數

                   -w:單詞數

                   -c:字節數

[root@mail ~]# wc /etc/inittab

 26   149   884   /etc/inittab

行數  單詞  字節  文件名

[root@mail ~]#

[root@mail ~]# wc -l /etc/inittab

26 /etc/inittab

[root@mail ~]# wc -w /etc/inittab 

149 /etc/inittab

[root@mail ~]# wc -c /etc/inittab 

884 /etc/inittab

[root@mail ~]#

 

         cut:

                   -d:指定分隔符

                   -f:指定要顯示的字段

                            m:m

                            m,n:mn

                            m-n:m到第n

[root@mail ~]# cat /etc/passwd | cut -d :-f1,3

[root@mail ~]# cat /etc/passwd | cut -d :-f2-5

 

         sort: 排序

                   sort[option] FILE...

                            -f:忽略字符大小寫

                            -t:指定分隔符

                            -k:指定分隔之後要進行排序比較的字段

                            -n:以數值大小進行排序

                            -u:排序後去重

[root@mail ~]# sort /etc/passwd

abrt:x:173:173::/etc/abrt:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

apache:x:48:48:Apache:/var/www:/sbin/nologin

…………………………….

[root@mail ~]#

[root@mail ~]# sort -t : -k3 /etc/passwd

root:x:0:0:root:/root:/bin/bash

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

usbmuxd:x:113:113:usbmuxduser:/:/sbin/nologin

bin:x:1:1:bin:/bin:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

………………………….

說明:此比較不是比數值大小,是按字符比較的。

[root@mail ~]# sort -t : -k3 -n /etc/passwd    (加上-n就是按數值大小比較)

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

………………………………..

[root@mail scot]# cat aa

hao are you!

i am dawei.

ok

hao are you!

 

[root@mail scot]# sort -u aa       (-u去掉重複的行)

 

hao are you!

i am dawei.

ok

[root@mail scot]#

 

         uniq: 可以去除排序過的文件中的重複行,因此uniq經常和sort合用。也就是說,爲了使uniq起作用,所有的重複行必須是相鄰的。

                   -d:僅顯示重複的行

                   -u:僅顯示不重複的行

                   -c:統計行出現的次數

排序之後刪除了重複行,同時在行首位置輸出該行重複的次數:

[root@mail scot]# sort aa | uniq -c    

     1

     2 hao are you!

     1 i am dawei.

     1 ok

[root@mail scot]#

僅顯示存在重複的行,並在行首顯示該行重複的次數:

[root@mail scot]# sort aa | uniq -cd

     2 hao are you!

[root@mail scot]#

僅顯示不重複的行:

[root@mail scot]# sort aa | uniq -u

 

i am dawei.

ok

[root@mail scot]#

 

         練習:

                   1、顯示當前系統上每個用戶的shell

                            #cut -d: -f1,7 /etc/passwd

 

                  2、顯示當前系統上所有用戶使用的各種shell

                            #cut -d: -f7 /etc/passwd | sort | uniq

 

                   3、取出/etc/inittab文件的第7行;

                            #head -n 7 /etc/inittab | tail -n 1

 

                   4、取出/etc/passwd文件中第7個用戶的用戶名;

                            #head -n 7 /etc/passwd | tail -n 1 | cut -d: -f1

 

                   5、統計/etc目錄下以大小寫p開頭的文件的個數;

                            #ls -d /etc/[pP]* | wc –l

 

         練習: 

                   1、統計當前系統上所有已經登錄的用戶會話數;

                   #who | wc -l

 

                   2、列出當前系統上所有已經登錄的用戶的用戶名;

                   #who | cut -d' ' -f 1 | sort -u

 

                   3、取出最後登錄到當前系統的用戶的用戶名;

                   #who | sort -k 3,4 | cut -d' ' -f 1 | tail -1

 

                   4、取出當前系統上被使用的次數最多的shell(/etc/passwd中取)

                   #cut -d: -f7 /etc/passwd | sort | uniq -c | sort -n | tail -1

 

                   5、將/etc/passwd中第三個字段數據最大的後10個用戶的信息全改爲大寫字符後保存到/tmp/mypasswd.txt文件中;

                   #sort -t: -k3 -n /etc/passwd | tail | tr 'a-z' 'A-Z' > /tmp/mypasswd.txt

 

文本處理命令:tr

                   tr'SET1' 'SET2'

                            -d:刪除指定字符集合中的所有字符

[root@mail ~]# tr '12' 'ab'    (1改爲a2改爲b)

123456    (輸入)

ab3456    (顯示的)

13525132

a35b5a3b

[root@mail ~]# tr 'a-z' 'A-Z'   (把小寫改爲大寫)

asd

ASD

hjk

HJK

^C

[root@mail ~]#

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章