天天看點

Linux常用指令和快捷鍵

一.bash的快捷鍵:

        Ctrl+a: 跳至指令行首

        Ctrl+e: 跳至指令行尾

        Ctrl+u: 删除指令行首至目前光标所在處的内容

        Ctrl+k: 删除目前光标所有處至指令行尾的内容

        Ctrl+l: 清屏,相當于clear指令

        Ctrl+c: 取消或終止;

        Ctrl+z: 将目前指令送至背景

        Ctrl+Shift+t: 建立新的标簽頁

        Ctrl+PageUp/PageDown: 切換标簽頁

        Ctrl+Shift+c: 複制選中的内容

        Ctrl+Shift+v: 粘貼

        Shift+PageUp/PageDown: 上下翻動螢幕

       空格鍵:向後翻一屏;

        b: 向前翻一屏;

       Enter鍵:向後翻一行;

        k: 向前翻一行;

        Ctrl+d: 向後翻半屏;

        Ctrl+u: 向前翻半屏;

        G: 跳轉至檔案尾;

        1G: 跳轉至檔案首;

        q: 退出;

bash的快捷鍵:

二.

       Ifconfig    顯示登入位址,廣播位址等資訊                                        

startx & 切換到圖形界面    startx -- :1 &

# basename PATH

例如#. basename /usr/share/doc顯示基名 doc

# dirname PATH

例如 dirname /usr/share/doc  顯示路徑 /usr/share

# logout: 登出

# passwd修改使用者密碼   /etc/passwd可以檢視所有使用者的屬性資訊

# which COMMAND

# type COMMAND   檢視指令類型是内建指令還是外部指令

# echo ${VAR_NAME}變量引用

# hash

# history 顯示此前的指令

!#: 執行曆史中的第#條;

!-#: 執行曆史中的倒數第#條;

!!: 指令曆史中的最後一條指令;

!string: 執行指令曆史中最近一條以“string”開頭的指令;

[]:可省略之内容

<>: 必須提供的内容

a|b: 二者選擇一個

...: 前面的内容可重複出現多次

三.如何擷取指令幫助:

内建指令:help COMMAND

外部指令:

1、manual: 使用手冊,   man COMMAND

2、info: 資訊頁,  info COMMAND

3、簡要使用幫助: COMMAND --help

4、官方文檔:google

5、額外的文檔:README、INSTALL、ChangeLog 、/usr/share/doc/ls-VERSION

6、發行版官方文檔,http://www.redhat.com/docs/

四.ls: 列出指定目錄下的檔案

-l:以長格式顯示檔案的詳細屬性 分别是(檔案類型/屬主、屬組及其它使用者的權限/檔案被硬連結的次數/屬主/屬組/檔案的大小/檔案最近一次被修改的時間/檔案名)

-a:顯示所有檔案,包括隐藏檔案

-A:跟-a功能相同,但不顯示.和..;

.: 目前目錄;

..: 上級目錄;

-n: 以使用者及組的id号排序;

-h: 檔案大小會自動進行機關換算;

-r:檔案名逆序顯示;

-R:遞歸顯示;

date: date +%s

顯示天    -d

顯示月    -m

顯示年    -Y

顯示小時   -H

顯示年-月-日  -F

顯示小時:分鐘:秒   -T

date mmddHHMM[CC[YY]][.SS]

hwclock

-w: 以系統時鐘為準,将硬體時鐘修改為系統時間

-s:以硬體時鐘為準,将系統時間修改為硬體時間

目錄相關指令:

cd /usr/share

回到家目錄:cd ~

 cd

 cd ~USERNAME: 切換至USERNAME的家目錄;

 cd -: 在上個目錄和目前目錄之間切換;

pwd: 顯示目前目錄;

dirname:顯示指定路徑的目錄;

mkdir 建立新目錄

-p:沒有錯誤,如果現有的,根據需要父目錄

-v: 顯示建立過程

bash支援指令行展開:{}

例如a_b, a_dc_b, c_d

mkdir a_b a_d c_b c_d

mkdir {a,c}_{b,d}

五.文本檔案相關的指令:

檢視:

cat, tac

more: 向後翻,在翻至檔案尾部之前允許向前翻

less: 向前翻

head: 檔案的前n行;

tail: 檔案的後n行;-n #  或   -#

文本查找:查找單詞

/keyword: 從目前光标所在行開始,向檔案尾部查找;

?keyword: 從目前光标所在行開始,向檔案首部查找;

n: 跟目前查找指令相同方向的下一個比對;

N:跟目前查找指令相反方向的下一個比對;

tail -f: 檢視一個檔案尾部内容後,不退出,等待并顯示新增的行;退出使用Ctrl+C;

建立文本:

nano  

touch: 修改檔案時間戳;

-a: 通路時間

-m: 修改時間

-t STAMP: 指定時間,格式[CC]YYMMDDhhmm.ss

複制:

cp 要複制的檔案路徑 ...  目标

-r: 遞歸複制

-a: 遞歸複制

-i: 互動式,覆寫前提醒确認

             -v:解釋要做什麼

移動:

mv 要移動的檔案 ... 目标

-i: 覆寫前提醒确認;

删除:

rm

-i: 提醒

-f: 強行删除;

-r: 遞歸删除目錄及其内部的所有檔案;

-rf 删除目錄及其内部的所有檔案不會提醒确認

文本處理指令:

wc [options] FILE

-l: 隻顯示行數;

-w  隻顯示單詞數

-c  隻顯示字元數

tr: translate

tr [options] '原來的字元集合' '轉換為的字元集合'

-d '字元集合':把出現的檔案中的,屬于字元集合中的字元統統删除;

cut: 文本切割,

cut [options] FILE

-d: 預設分隔符為空白,-d:

-f 後面直接寫所要取得段數

join: 和cut相反。組合内容

通配符:

*:任意長度的任意字元;

?: 任意單個字元;

[]: 指定範圍内的任意單個字元;

[^]:脫字元,取反,指定範圍外的任意單個字元,

字元集合:

[:digit:] : 所有數字, 相當于0-9

[:lower:]:所有的小寫字母。相當于a-z

[:upper:]:所有的大寫字母。相當于A-Z

[:alpha:]: 所有的字母。相當于a-zA-Z

[:alnum:]:所有的字母和數字。 相當于[0-9a-zA-Z]

[:space:]: 空白字元

[:punct:]:所有标點符号

判斷普通檔案的内容的類型,使用file指令;

# file FILE

檔案相關:

touch:

access time: -a   最後一次的通路時間

modify time: -m   最後一次的修改時間

change time       最後一次的改變時間

stat FILE    檢視檔案的最近一次的通路時間,最近一次的修改時間,最近一次的改變時間等内容

-t [CC]YYMMDDhhmm.ss     修改為指定時間

六.添加使用者:

useradd, adduser

# useradd USERNAME

定制使用者屬性:

-u UID,

-g GID, 有效範圍已有的GID;

-G GID, 有效範圍為已有的GID;可以有多個,用逗号分隔;

-c COMMENT    注釋資訊

-d /path/to/somewhere    指定路徑

-s /path/to/shell_command

-r: 建立系統使用者, ID号範圍為1-499之間的使用者;系統使用者的家目錄不會被真正建立;

-M: 不為使用者建立家目錄;

-m: 必須為使用者建立家目錄;

轉換使用者:

su (switch user)

su USERNAME

su - USERNAME

管理者su到普通使用者,不需要密碼;反之,不可以;

建立組:groupadd

groupadd GRPNAME

/etc/group:

組名:密碼占位符:GID:以此組為額外組的使用者清單,使用者間用逗号分隔;

-g GID: 建立組的時候為其指定GID;

-r: 建立系統組;

修改使用者屬性:

usermod:

-u UID

-g GID

-a -G GID: -G修改額外組時會覆寫原有的額外組,同時使用則能保留原有的額外組;

-c COMMENT     注釋資訊

-s /PATH/TO/SHELL

-l NEW_NAME: 改使用者的登入名稱;

-m -d /path/to/somewhere:-d隻修改家目錄指向,同時使用-m選項則可實作将原來家目錄移動為新的家目錄;

密碼管理:

passwd: 修改自己的密碼;

passwd USERNAME: 修改指定使用者的密碼

-l: 鎖定使用者帳号

-u: 解鎖

groupmod: 修改組屬性

-n NEW_NAME

useradd密鑰屬性的修改:

passwd:

-e

-n: 密碼最短使用天數;

-x:最長使用天數;

-w: 警告天數;

-i: 非活動時長;

chage

-d: 修改密碼的最近一次修改時間

-m, --mindays MIN_DAYS:最短使用期限;

-M, --maxdays MAX_DAYS:最長使用期限;

-W, --warndays WARN_DAYS:警告天數;

-I, --inactive INACTIVE:非活動天數;

-E, --expiredate EXPIRE_DATE:過期時間;

usermod

-e YYYY-MM-DD: 指定帳号過期期限;

-i #: 非活動天數;

gpasswd: 為組設定密碼;

newgrp GROUP: 臨時設定指定的組為自己的基本組;

權限:

r: read,     檔案可讀

w: write,   檔案可寫

x: execute, 檔案可發起為程序,目錄表示可ls -l, cd

改變檔案權限:屬主 u       屬組 g     其它 o     所有的a

chmod: change mode

權限定義方式:

1、同時修改三類使用者的權限: 8進制數字方式

2、修改某一類或某些類使用者的權限:u=,g=  

3、隻操作某類使用者的某位或某些位權限:u+x ,u-x

選項:

-R: 遞歸修改權限;

--refernce=/path/to/somefile FILE

修改檔案的屬主和屬組:

chown [選項] 使用者 檔案

chgrp [選項] 組 檔案

chown 使用者:組 檔案

chown 使用者.組 檔案

删除使用者:

userdel:

userdel [options] USERNAME

-r 不保留使用者的家目錄

删除組:

groupdel

groupdel GRPNAME

指令補齊:

Tab鍵會搜尋PATH環境變量所指定的路徑下的所有可執行檔案,如果“指令的部分字元”能惟一表示某指令,則直接補全為那個指令;

如果不能惟一表示,則再敲一次tab鍵,會顯示所有以“指令的部分字元”開頭的指令

七.基本正規表達式:

^:錨定行首的符合條件的内容,用法格式“^pattern”;

$: 錨定行尾的符合條件的内容,用法格式“pattern$”;

^pattern$:

^$: 空白行

.: 比對任意單個字元

*:比對緊挨在其前面的字元任意次;

.*: 比對任意長度的任意字元

[]:比對指定範圍内的任意單個字元

[^]:比對指定範圍外的任意單個字元

[:lower:]

[:upper:]

[:digit:]

[:alpha:]

[:alnum:]

[:space:]

[:punct:]

\?: 比對緊挨在其前面的字元0次或1次;

\{m,n\}: 比對其前面的字元至少m次,至多n次;

\{0,n\}: 至多n次;0-n次;

\{m,\}:至少m次

\{m\}: 精确比對m次;

\<: 錨定詞首,用法格式:\<pattern

\>: 錨定詞尾,用法格式:pattern\>

\<pattern\>:錨定單詞

\(\): 分組,用法格式: \(pattern\)

ab任意字元ab:ab.*ab

a.b任意字元a.b: \(a.b\).*\1

grep的選項:

--color=auto 有顔色顯示

-v: 反向選取,隻顯示不符合模式的行;

-o: 隻顯示被模式比對到的字串,而不是整個行;

-i: 不區分字元大小寫;

-A #:顯示比對到的行時,順帶顯示其後面的#個行;

-B #:前面的#行;

-C #:前後的#行;

-E: 使用擴充的正規表達式grep -E = egrep

擴充正規表達式: egrep

.: 任意單個字元

[]: 比對指定範圍内的任意單個字元

*

+: 比對其前面的字元至少1次;

?:

{m,n}: 至少m次,至多n次;

():分組,支援引用\1, \2;

a|b: 二選一;

\<:錨定詞首

\>:錨定詞尾

^  錨定行首的符合條件的内容

$  錨定行尾的符合條件的内容

    | :表示或者的意思

sort: 排序

-f: 忽略字元大小寫;

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

-r: 降序;

-u: 移除重複的行,具有相同内容的行隻保留一個;

-R: 随機排序;

uniq:

-c:統計每行重複的次數;

-u:隻顯示沒有重複的行

-d: 隻顯示重複過的行;

八.輸出重定向:

>:覆寫重定向;

set -C: 避免覆寫已經存在的檔案中的内容;

強制覆寫:>|

set +C: 關閉上述功能;

>>:追加重定向;

/dev/null: 資料黑洞,bit bucket

錯誤輸出重定向:

2>: 覆寫重定向;

2>>: 追加重定向;

同時重定标準輸出和錯誤輸出:

例如:COMMAND > /path/to/stdout  2> /path/to/error

标準輸出和錯誤輸出定向至一個檔案:

   COMMAND &> /path/to/somewhere

   COMMAND > /path/to/somewhere 2>&1

輸入重定向:

<:COMMAND < /from/somewhere

<<:Here Document,此處建立文檔

cat > /path/to/somefile << EOF

abc

hello

EOF

通常用于腳本中生成文檔

cat << EOF

通常用于腳本中向使用者輸出大段資訊;

管道:|

COMMAND1 | COMMAND2 | COMMAND3 | ...

本文轉自 宋鵬超 51CTO部落格,原文連結:http://blog.51cto.com/qidian510/1248779,如需轉載請自行聯系原作者

繼續閱讀