一.用戶登錄
UID,是系統自動為用戶分配的,用來證明用戶身份的數字,基本上是0-60000這個區間內的數字
管理員 :UID=0
普通用戶 :UID=500(CENTOS6) UID=1000(CENTOS7)
普通用戶又分為系統用戶和登錄用戶,所謂的系統用戶是指nologin的那些用戶,用來運行 後台服務或進程的用戶,不需要登錄
決定是不是管理員的是用戶的UID,而非用戶的名字,root也可以不是管理員
查看UID的命令:id -u
二.終端
1.物理終端:直接接入本機的顯示器及鼠標鍵盤
/dev/console
2.虛擬終端:附加在物理終端之上的以軟件方式虛擬實現的終端
centos默認有6個,Ctrl+Alt+F1-6切換
/dev/tty#
3.模擬終端:
a.圖形界面中打開的命令行(Windows的cmd,Linux圖形桌面的終端)
b.基於ssh協議或者Telnet協議等遠程打開的界面(例如XSHELL等)
/dev/pts/#
查看當前終端 tty
二.交互式接口
啟動終端後,在終端設備附加的一個交互式應用程序
1.GUI:X protocol,window manager,desktop
2.CLI:shell程序
三.SHELL
shell是Linux系統的用戶界面,提供了用戶與內核進行交互操作的一種接口,接受用戶輸入的命 令並送入內核去執行
shell也是一種高級程序設計語言 (腳本語言)
查看shell版本
echo $SHELL
查看系統內存在多少種shell
cat /etc/shells
查看用戶命名個是
echo $PS1
shell中命令有兩種
內部命令:shell本身是個外部程序,但是它內置了很多的命令,這些命令稱之為內部命令
外部命令:當前系統下其他路徑下的可執行程序文件
這裡注意,內部命令並不是文件,但是shell本身是文件,有的時候,一個命令是shell自帶 的命令,但是,在/目錄下卻又有相同名字的文件,這個時候想要運行該文件,要將該文件 的絕對路徑寫清楚
查看是否為內部命令:type
type COMMAND
三個命令:type which whereis
type:查看是為內部命令還是外部命令,當為外部命令時將其路徑顯示出來,並將hash給 出,當命令具有命令別名時,只會將命令別名顯示出來
which:給出命令的路徑,並當命令具有命令別名的時候一起將命令別名顯示出來
whereis:顯示命令路徑,並且將其說明文件手冊一同顯示出來
hash命令:當在首次執行外部命令的時候,系統會去命令的位置去讀取該命令,並將之寫入緩存 中一遍下次能夠迅速啟動
查看hash命令: hash
刪除所有hash命令: hash -r
刪除hash下的指定的某條命令用hash -d COMMAND,後面接的是命令的名字
注意:當命令在hash進緩存後,下次執行此命令是,系統是進入緩存中讀取改命令的,因此在命 令有hash緩存時,更改了該命令的原路徑,在此執行該命令的時候,系統是去緩存中的地址去讀 取命令,所以會報錯
四.命令格式
# COMMAND [OPTIONS..] [ARGUMENTS]
command:命令,必須在#後邊,即最左側
options:選項,用於啟動或關閉命令的某個功能
短選項: -c,例如ls -a ,cp -a
長選項:--word,例如cp命令中的--preserv=all
arguments:參數,命令的作用對象
注意: 1.命令,多選項,多參數之間必須用空白符號隔開
2.取消命令和結束命令為 Ctrl+c Ctrl+d
3.多個命令共同執行,命令與命令之間必須以;隔開,例如:ls -al;cd /
4.一個命令太長時,可以用\分成多行
此處;將多個任務共同執行,前後的命令是沒有邏輯關系的,和後邊用到的|不同,|前後的命令 是有聯系的,前一條命令的輸出數據是後一條命令的輸入程序
五.簡單命令
1.date命令:顯示日期
date [OPTION]... [+FORMAT]
date +%a-%F :兩個選項之間需要用減號-鏈接
常見的選項:
%a:星期縮寫
%A:星期的全拼
%Y:年
%m:月
%d:日
%H:小時
%M:分鐘
date -d “# days” +% :顯示#天的信息,#等於負數時,顯示#天前的信息,#是正數時, 顯示幾天後的信息
-d “# days” :兩者要寫在一起,“# days”可以換成一些簡單的單詞如now,yesterday 等
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
date 月日時分世紀年.秒
如 20160511 14:23:45 date 051114232016.45
2.cal命令:查看日歷
cal 月 年
3.nano:nano文本編輯器
nano file
4. echo命令:回顯
echo [-ne] [字符]
-n:不顯示換行
-e:實現轉義字符
\a:警告音
\b:退格鍵
\c:不加上換行符號
\n:換行,光標移到首行
\r:光標移到首行,但不換行
\t:插入tab
\\:插入\
echo中單雙引號
“”中的內容,會顯示出來,例如echo “$PATH”會顯示PATH變量中的內容
‘’中的內容,會以純文本的形勢顯示出來
echo反引號或$()
echo中可以引用命令,但該命令必須用``或者$()
使用echo可以再終端之間發送消息
echo i am wuyanzu >(句號) /dev/pts/2
echo也是變量相關的一個命令
5.history歷史命令
history的命令記錄在文件.bash_history中
history #:顯示最近的#條歷史命令,當不寫#時,則顯示全部的歷史命令
history -c:刪除全部的歷史命令(指示清空shell中的數據,仍舊可以從.bash_history中讀取)
history -d 偏移量 :在偏移量的那條命令
history -w:將shell中的歷史命令寫入到文件中
history -r:將文件中的歷史命令讀取到shell中
!#:執行歷史文件列表第#條命令
!!:執行上一條命令
!STRING:執行以STRING打頭的命令
!?abc:執行包含abc的命令
!^:上一個命令的第一個參數
!$:上一個命令的最後一個參數
!:n:上一個命令的第N個參數
!*:上一個命令的全部參數
!n:^:第n個命令的第一個參數
!n:$:第n個命令的最後一個參數
!n:n:第n個命令的第N個參數
!n:*:第n個命令的全部參數
!STR:^:最近的以STR打頭的命令的第一個參數
!STR:$:最近的以STR大頭的命令的最後一個參數
!STR:*:最近的 以STR打頭的命令的全部參數
!STR:n:最近的以STR打頭的命令的第n個參數
Ctrl+r:搜索命令
ESC+.:上一個參數,同!$
echo $HISTSIZE:命令列表能保存的最大歷史命令條數
$HISTFILE:顯示保存文件
$HISTFILESIZE:顯示歷史文件能保存的最大歷史命令條數
環境變量:$HISTCONTORL:顯示歷史文件保存規則
ignoredups:忽略重復命令
ignorespace:忽略空白開頭的命令
ignoreboth:以上全部生效
$HISTTIMEFORMAT:在history中顯示時間
使用export更改
export HISTTIMEFORMAT=“%F %T”
HISTTIMEFORMAT的值中也可以加入反引號植入命令,例如顯示使用命令的 用戶可以加入`whoami`
$HISTIGNORE=“str1:str2:...”:history中將不再顯示包含 str1,str2的命令
修改環境變量: export HISTCONTROL=值
修改變量: 變量=值
以上,環境變量的內容雖然可以再所有的shell中成立,但是和變量一樣,重啟後設 置消失,只是針對內存。如果想修改,應該通過修改配置文件的方式
/etc/profile:這個文件是針對全局的配置文件 修改危險程度較高
~/.bash_profile:這個是針對當前用戶的配置文件
6.screen
額外安裝的同屏工具
screen -S 名字:建立
screen -x 名字:加入
screen -ls:顯示當前所有screen
screen -r:轉回當前screen
screen -d:退出
六.一些快捷鍵
1.命令補全
TAB:在輸入命令時可以按TAB來補全命令
TABTAB:當命令不是唯一的時候,按一次tab會沒有反應,這時候按2次會將所有的可能補全 命令顯示出來
2.Ctrl+l:清屏
3.Ctrl+c:取消命令
4.ESC+.:寫入以一條命令的參數
七.幫助命令
1.whatis COMMAND:顯示命令在man手冊中第幾個手冊,並將命令的作用簡要表達出來
whatis是一個數據庫,當系統剛安裝時,可能需要手動安裝,手動安裝命令: makewhatis(centos6)和mandb(centos7)
2.COMMAND -help:內部命令專用幫助
3.COMMAND --help:外部命令用幫助
4.man # COMMAND
man手冊:
1.用戶命令 2.系統調用 3.C庫調用 4.設備文件
5.配置文件格式 6.游戲 7.雜項 8.管理工具(管理員用來管理的工具)
9.linux內核相關
查看命令在哪個手冊,可以用whatis COMMAND
man -k keyword :搜索man中有keyword的,使用的是whatis數據庫
/keyword或者?keyword:搜索命令的man手冊中的關鍵字
n:下一個 N:上一個
此處應該注意的時,man 5 下的手冊全是用戶的配置相關的文件,因此,在使用man 5 時後邊的參 數應該是文件名即FILE而不是COMMAND
本文出自 “博客作業初版” 博客,謝絕轉載!