Linux的命令格式
命令的語法通用格式:
~]# COMMAND OPTIONS ARGUMENTS
COMMAND: 發起一命令:請求內核將某個二進制程序運行為一個進程;
程序 –> 進程
靜態 –> 動態(有生命周期)
命令本身是一個可執行的程序文件:二進制格式的文件,有可能會調用共享庫文件;
多數系統程序文件都存放在:/bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin
普通命令:/bin, /usr/bin, /usr/local/bin
管理命令:/sbin, /usr/sbin, /usr/local/sbin
共享庫:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
32bits的庫:/lib, /usr/lib, /usr/local/lib
64bits的庫:/lib64, /usr/lib64, /usr/local/lib64
注意:
1) 并非所有的命令都有一個在某目錄下與之對應的可執行程序文件,比如shell內嵌命令;
2) 庫是應用程序的一部分,如果應用程序中調用了庫文件,運行時這些庫文件要和應用程序一并裝入內存中。
OPTIONS:指定命令的運行特性;
選項的表現形式:
短選項:-C, 例如-l, -d
有些命令的選項可能沒有 – , 如果同一命令同時使用多個短選項,多數可合并:-l -d = -ld
長選項:–word, 例如–help, –human-readable
長選項不能合并.
選項的參數:有些選項可以帶參數,稱為選項參數
長選項的參數用 "=" 來指定,短選項的參數用 " " 來分割。
ARGUMENTS:命令的作用對象,不同的命令的參數格式不同;有些命令可同時帶多個參數,多個之間以空白字符分隔
注意:命令的參數和選項的參數不是一回事
命令的分類:
1) 內置命令:由shell程序的自帶的命令;
2) 外部命令:獨立的可執行程序文件,文件名即命令名。
查看命令類型:type COMMAND
實例:
~]# type file
file is /usr/bin/file #后面跟路徑表明file命令為外部命令
~]#
~]# type type
type is a shell builtin #后面跟shell builtin表明命令type為shell內嵌命令
Shell查找命令的路徑:
shell程序是獨特的程序,負責解析用戶提供的命令,當用戶輸入某個特定命令時,shell通過遍歷指定目錄下的命令文件實現命令的查找,bash通過PATH變量存放可遍歷的目錄,查找次序是自左而右。
實例:
~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
命令的文件組織格式:
命令必須遵循特定格式規范:exe(Windows), msi(Windows), ELF(Linux)
查看文件格式的命令:file COMMAND
實例:
~]# type file
file is hashed (/usr/bin/file) #查看file命令的可執行文件路徑
~]#
~]# file /usr/bin/file #查看file命令的可執行文件組織格式,可以看到為ELF格式
/usr/bin/file: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x2b41e1e88b26311141384893b71fb1a7e86a5db9, stripped
在Linux上使用幫助的方法
獲取命令的使用幫助:
內部命令:
~]# help COMMAND
外部命令:
(1) 命令自帶簡要格式的使用幫助
~]# COMMAND –help
(2) 使用手冊manual,手冊位置:/usr/share/man,如果手冊目錄中沒有對應命令的手冊,則man COMMAND時是看不到使用手冊的
~]# man COMMAND
SECTION:
NAME:功能性說明
SYNOPSIS:語法格式
DESCRIPTION:描述
OPTIONS:選項
EXAMPLES:使用示例
AUTHOR: 作者
BUGS: 報告程序bug的方式
SEE ALSO: 參考
…
SYNOPSIS:
[]:可選內容;
<>:必須提供的內容;
a|b|c:多選一;
…:同類內容可出現多個;
manual的章節劃分
man1:用戶命令,包括普通用戶和管理員使用的所有命令;
man2:系統調用,system call幫助文件,編程人員常用;
man3:C庫調用,C libraries call幫助文件,編程人員常用;
man4:設備文件及特殊文件;
man5:文件格式;(配置文件格式)
man6:游戲使用幫助;
man7:雜項;
man8:管理工具及守護進行,即管理員命令;
指定查看特定章節的manual:
~]# man CHAPTER COMMAND
查看COMMAND都在那些章節下存在幫助文件:~]# whatis COMMAND
注意:
1) 其執行過程是查詢數據庫進行的;新安裝的軟件可能數據庫并未自動更新到最新,因此可以手動更新數據庫
手動更新數據庫命令你個:~]# makewhatis
2) 并非每個COMMAND在所有章節下都有手冊;
man命令打開手冊以后的操作方法:
翻屏:
空格鍵:向文件尾翻一屏;
b: 向文件首部翻一屏;
Ctrl+d:向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏;
回車鍵:向文件尾部翻一行;
k: 向文件首部翻一行;
G:跳轉至最后一行;
#G: 跳轉至指定行;
1G:跳轉至文件首部;
man文本搜索:
/keyword:從文件首部向文件尾部依次查找;不區分字符大小寫;
?keyword:從文件尾部向文件首部依次查找;
n: 下一個keyword,與查找命令方向相同;
N: 下一個keyword,與查找命令方向相反;
退出:
q: quit
選項:
-M /PATH/TO/SOMEDIR:到指定目錄下查找命令手冊并打開之;
(3) info COMMAND
獲取命令的在線文檔;
(4) 很多應用程序會自帶幫助文檔:/usr/share/doc/APP-VERSION
README:程序的相關的信息;
INSTALL: 安裝幫助;
CHANGES:版本迭代時的改動信息;
(5) 主流發行版官方文檔
http://www.redhat.com/doc
(6) 程序官方的文檔:
官方站點上的“Document”
(7) 搜索引擎
keyword filetype:pdf
keyword site:domain.tld
…
Linux基本命令
type命令:查看命令類型
用法:type COMMAND
內部命令:顯示為shell builtin
外部命令:顯示為命令的可執行文件路徑
注意:命令可以有別名;別名可以與原名相同,此時原名被隱藏;此時如果要運行原命令,則使用\COMMAND;
實例:
~]# type ls
ls is aliased to `ls –color=auto'
~]# \ls
~]# type type
type is a shell builtin
~]# type file
file is hashed (/usr/bin/file)
whatis命令:查看命令manual存在于那些章節
用法:whatis COMMAND
實例:
~]# whatis ls
ls (1) – list directory contents
ls (1p) – list directory contents
which命令:顯示命令的可執行文件路徑
用法:which [options] programname […]
OPTIONS
–skip-alias:忽略別名
注:hich的別名與命令名相同,因此命令名被隱藏,且which命令不顯示別名,只是別名中加入了顯示別名的選項
實例:
~]# which –skip-alias ls
/usr/bin/ls
~]#
~]# which ls
alias ls='ls –color=auto'
/usr/bin/ls
~]#
~]# \which ls
/usr/bin/ls
~]# alias which
alias which='alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde'
whereis命令:顯示命令的可以行文件、源文件、手冊文件存放路徑
用法:whereis [options] name…
OPTIONS
-b: 僅搜索二進制可執行文件路徑;
-m:僅搜索使用手冊文件路徑;
-s:僅搜索源文件路徑。
實例:
~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
~]#
~]# whereis -b ls
ls: /usr/bin/ls
~]#
~]# whereis -m ls
ls: /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
who命令:顯示用戶登錄系統的情況
用法:who [OPTION]…
-b: 系統此次啟動的時間;
-r: 運行級別。
注:who命令可以看到那個用戶、在什么時間、通過什么終端、以什么源IP登錄的系統,通過本地虛擬終端登錄時不顯示登錄端IP地址。
實例:
~]# who
(unknown) :0 2016-09-06 20:15 (:0)
root pts/0 2016-09-06 20:18 (192.168.110.1)
~]#
~]# who -b
system boot 2016-09-06 20:15
~]#
~]# who -r
run-level 5 2016-09-06 20:15
w命令:顯示用戶登錄系統的情況及資源占用情況
用法:w [options] user […]
實例:
~]# w
01:05:53 up 4:50, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.110.1 20:18 1.00s 0.45s 0.02s w
user3 pts/1 192.168.110.1 01:05 9.00s 0.05s 0.05s -bash
~]#
~]# w user3
01:05:58 up 4:50, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user3 pts/1 192.168.110.1 01:05 14.00s 0.05s 0.05s -bash
echo命令:回顯
用法:echo [SHORT-OPTION]… [STRING]…
SHORT-OPTION
-n:輸出時不換行
-e:讓轉義符生效
\n:換行,在回顯的內容中,有\n則換行
\t:制表,在回顯的內容中,有\t再加一個Tab,類似表格
…
STRING:可以使用引號,單引號和雙引號均可用;
單引號:強引用,變量不執行值替換
雙引號:弱引用,變量執行值替換
實例:
~]# echo -e "hello\tworld"
hello world
~]#
~]# echo $?
0
tty命令:輸出當前終端名稱
用法:tty
實例:
local]$ tty
/dev/pts/1
startx命令:啟動一個GUI窗口
用法:startx
pwd命令:輸出工作目錄
用法:pwd
cd命令:切換目錄
用法:cd [/PATH/TO/SOMEDIR]
cd: 切換回家目錄;
cd ~:切換回自己的家目錄,bash中~表示家目錄;
cd ~USERNAME:切換至指定用戶的家目錄;只有管理員才可以切換到其他用戶的家目錄中,管理員的家目錄為/root,普通用戶的家目錄為/home/USERNAME;
cd -:在上一次所在目錄與當前目錄之間來回切換;因為有如下兩個環境變量對當前目錄和上一次工作目錄進行記錄;
$PWD:當前工作目錄
$OLDPWD:上一次的工作目錄
.:當前目錄
..:父目錄
ls命令:列出指定目錄下的內容
用法:ls [OPTION]… [FILE]…
OPTIONS
-a: 顯示所有文件,包括隱藏文件;
-A:顯示除.和..之外的所有文件;
-h, –human-readable:對文件大小單位換算;換算后結果可能會非精確值;
-d:查看目錄自身而非其內部的文件列表;
-r: reverse, 逆序顯示;
-R: recursive,遞歸顯示;
-l: –long, 長格式列表,即顯示文件的詳細屬性信息;
-rw-r–r–. 1 root root 8957 10月 14 19:34 boot.log
-:文件類型,-, d, b, c, l, s, p
rw-r–r–
rw-:文件屬主的權限;
r–:文件屬組的權限;
r–:其它用戶(非屬主、屬組)的權限;
1:數字表示文件被硬鏈接的次數;
root:文件的屬主;
root:文件的屬組;
8957:數字表示文件的大小,單位是字節,對于設備文件,此處為以 , 分割的兩位數字,表示設備的編號;
10月 14 19:34 :文件最近一次被修改的時間;
boot.log:文件名
cat命令:文本文件查看工具
用法:cat [OPTION]… [FILE]…
OPTIONS
-n:給顯示的文本行編號;
-E: 顯示行結束符$;
實例:
~]$ tac -nE /etc/fstab
tac命令:文本文件查看工具,和cat顯示順序相反,tac為逆序顯示
用法:tac /PATH/TO/FILENAME
file命令:查看文件內容組織格式
用法:file [FILE]…
實例:
[hdctc@Y002 /]$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
shutdown命令:關機或重啟
用法:shutdown [OPTIONS…] [TIME] [WALL…]
OPTINOS
-h: halt
-r: reboot
-c: cancle
TIME
now: 立即關機
hh:mm: 幾點幾分關機
+m: 幾分鐘后關機
+0: 立即關機
WALL
實例:
~]# shutdown -r +10 "hello world" #在10min后重啟,并且發送hello world的wall
~]# shutdown -c #取消之前設定的重啟操作
原創文章,作者:Yurnero,如若轉載,請注明出處:http://www.www58058.com/44979
統一回復一下,可以在每個命令的常用參數下面寫一個例子來說明一下,是不是沒有做后面的題目???