呈倒樹型
/bin:存放二進制命令文件(binnary),針對所有用戶
/sbin:存放系統管理員的命令,/bin的升級版,超級用戶專用
/boot:存放啓動分區,負責系統啓動的文件。相當於windows的C盤,啓動項。存儲系統的引導信息,內核信息
/proc:系統信息 /proc/cpuinfo:系統cpu信息
/sys:系統管理,主要是關於內核的
/etc:存放大多數系統管理文件,即配置文件
/dev:存放設備管理文件
/lib:存放32位系統庫文件
/lib64:存放64位系統庫文件
/root:超級用戶家目錄存放點
/home:是普通用戶家目錄
/opt:第三方軟件的安裝位置
/usr:存放系統用戶相關信息數據及用戶自定義軟件,存儲系統應用軟件的安裝信息
/srv、/var:系統數據存放點,存儲系統日誌信息
/tmp:存放臨時文件存放位置
/media、/run、/mnt:系統臨時設備掛載點
【絕對路徑、相對路徑】
據對路徑:文件在系統的真實位置,文件名以“/”開頭
相對路徑:文件相對於當前所在位置的位置,不以“/”開頭,且會自動添加pwd顯示的值
【基本命令】
在shell中如何使用命令(必須在提示符之後輸入)
命令輸入模式:command+[space]+options+[space]+target
命令 參數(選項) 操作對象
補充:命令是系統中可執行的文件,參數是命令功能的指定
*** ls###list,列出當前目錄的所有文件
-a ##顯示指定目錄下所有文件以及子目錄,包含隱藏文件
-d ##只顯示目錄列表,不顯示文件
-l ##除文件名稱外,同時將文件或子目錄的權限、使用者及大小等信息詳
細列出
-s ##在每個文件名前輸出其大小,以k字節的形式表示文件的大小
-S ##以文件大小順序排列,從大到小排列
-u ##以文件上次被訪問的時間排序
-t ##以時間排序,從晚到早
-o ##顯示除組信息以外的詳細信息
-x ##按列輸出,橫向排序
-C ##按列輸出,縱向排序
-r ##對目錄中的文件及子目錄反向排序(與默認排序相反)
-m ##橫向輸出文件名,並以逗號作爲分隔符
-Q ##把輸出的文件名用雙引號括起來
-R ##列出所有子目錄下的文件
-pF ##在每個文件名後附上一個字符以說明該文件的類型。“*”表示可執
行的普通文件,“@”表示鏈接,“|”表FIFOs,“=”表套接字,
“/”表示目錄
-q ##用?代替不可輸出的字符
-i ##列出節點號
-Z ##列出標籤
例:
# ls -l(同ll)###列出文件屬性
$ ls -l ps.txt
-rw-rw-r-- 1 kiosk kiosk 11691 May 4 18:06 ps.txt
使用 ls -l 命令 執行結果,展示結果大體分爲七列(部分) :
第一列 : “drwxr-x---” 表識文件的類型 和文件權限
第二列: “2”是純數字 ,表示 文件鏈接個數
第三列 : “root” 表示文件的所有者
第四列:“adm” 表示爲文件的所在羣組
第五列:“4096”,表示爲文件大小(以字節爲單位)
第六列:“2013-08-07 11:03”,表示文件最後更新(修改)時間
第七列:“apache2” 表示文件的名稱
# ls -l test/###長顯示目錄test下的文件,顯示目錄test下的文件
total 0###緩存個數
# ls -ld test/###顯示目錄本身的屬性
# ls -s note/ <=====>###列出文件或目錄大小
# ls -s passwd
4 passwd###文件默認分配4K字節=4096字節
# ls -a###列出所有
# ls -R test/###遞歸式列出
#ls -Z ###列出標籤
# ls -Zd /mnt/
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 /mnt/
# ls -Z /mnt/
-rwxr-xr-x. root root system_u:object_r:bin_t:s0 firefox
# ls -i file ##查看節點號文件
***cd ##進入目標目錄中
[student@localhost mnt]$ pwd
/mnt
[student@localhost mnt]$ cd ~(同cd)###回到當前用戶家目錄
[student@localhost ~]$ pwd
/home/student
[root@localhost ~]# cd ~student###進入到指定用戶家目錄
[root@localhost student]# pwd
/home/student
[root@localhost student]# cd ..###進入當前目錄的上一級
[root@localhost home]# pwd
/home
[root@localhost home]# cd -###進入之前所在系統目錄
/home/student
*** touch:新建文件
*** mkdir:建立目錄
# mkdir -p test/test/test###遞歸式建立目錄
注意:
[student@localhost ~]$ cd /root/Desktop
bash: cd: /root/Desktop: Permission denied###權限不夠被拒絕
***pwd //顯示當前路徑
*** cp 被複制文件 目的地###將文將複製到指定目的地
cp -r dir1 dir2###遞歸式複製
*** mv
mv 被移動文件 目的地###將文將移動到指定目的地
mv 原名 新名###重新命名
mv 被移動文件 .###將文件移動到當前
***rm -f 文件###強制刪除文件
rm -fr 目錄###強制刪除目錄
***date [MMDDhhmm.ss]###更改時間[月日小時分鐘.秒]
date [選項] 顯示時間格式(以+開頭,後面跟時格式)
-s ##設置時間
-d ##顯示描述的日期
時間格式:
%H ##顯示小時,表示範圍00~23
%k ##顯示小時,表示範圍0~23
%I ##顯示小時,表示範圍01~12
%l ##顯示小時,表示範圍爲1~12
%M ##顯示分鐘,顯示格式00~59
%S ##顯示秒,顯示格式00~59
%X ##顯示時間,相當於%H:%M:%S的組合
%r ##顯示時間,格式爲hh:mm:ss ,12小時顯示
%T ##顯示時間,格式爲hh:mm:ss,24小時顯示
%p ##顯示AM還是PM
%F ##顯示日期,格式yyyy-mm-dd
%x ##顯示年份和日期,格式爲mm/dd/yyyy
%D ##顯示年份號和日期,格式爲mm/dd/yy
%b或%B ##顯示月份,b是簡稱,B是全稱
%m ##顯示月份,格式爲01~12
%Y或%y ##顯示年份,Y表示完整的年份,y表示年份的最後兩個數字
%d ##顯示一個月的第幾天
%c ##顯示日期和時間格式,相當於”%a %d %b %Y %r %Z”
%a或%A ##顯示星期,%a是星期的簡稱,%A是星期的全稱
%Z ##顯示時區
eg:
設置時間:
# date -s "20160505 10:03" ##格式yyyymmdd hh:mm:ss
顯示描述的日期:
# date -d "3 days ago" +%F
2016-05-02
顯示時間:
$ date "+%F %a %T %Z"
2016-05-04 Wed 21:55:51 CST
# date
Tue Dec 1 17:38:18 CST 2015
CST可視爲美國,澳大利亞,中國,古巴的標準時間;格林威治標準時間GSM;世界協調時間UTC;夏日節約時間DST
# date 06281234.21
Sun Jun 28 12:34:21 CST 2015
# date -d +83day
Fri Dec 18 14:49:39 CST 2015
# date -d -83day
Sun Jul 5 14:49:51 CST 2015
# date +%F
2015-09-26
# date +"%F %H:%M:%S"
2015-12-01 17:42:19
#date "+%Y-%m-%d %H:%M:%S"
2015-12-05 11:55:32
# date --help###獲取幫助用help或man
***passwd
passwd username###更改用戶密碼(只有超級用戶root可以)
passwd###普通用戶修改自己的密碼
注意:
普通用戶只能修改自己的密碼,且須知自己原始密碼,修改密碼必須大於8位,不能與原始密碼字符重複
# passwd -l student###凍結普通用戶
Locking password for user student.
passwd: Success
# passwd -u student###解鎖凍結用戶
Unlocking password for user student.
passwd: Success
*** file ###查看文件類型
*** head -數字 文件名###顯示文件內容前幾行,默認顯示前十行
*** tail -數字 文件名###顯示文件內容後幾行
eg:# cat num
1
2
3
4
5
6
7
8
# head -6 num | tail -3
4
5
6
***cat
cat 文件名 ##查看文件所有內容
cat >文件名 <<biaozhi ###輸出內容到另一個文件
cat -b file ##給文件file中的每一行編號並查看
cat -b file > file1 ##給file文件的每一行加編號,並將編好號的放到file1文件中
eg: $ cat > file << end
> hello world
> u are a good student
> end
$ cat file
hello world
u are a good student
***wc ###統計文件行,單詞數,字節數
# wc -l文件名###行數
-c文件名###字節數
-m文件名###字符數
-w文件名###單詞數
***whoami ##查看當前用戶名稱
*** what is+命令 ##查看命令的意思
eg:# whatis wc
wc (1) - print newline, word, and byte counts for each file
wc (1p) - word, line, and byte or character count
*** history ###查看歷史
!數字###執行第多少條命令
!關鍵字###執行最近一條以關鍵字開頭的命令
Ctrl+r+關鍵字###調出最近一條含有關鍵字的命令
上下鍵###從最後一條命令開始向前或向後查看
*** which+命令 //查看系統命令的路徑
***echo $abc 在變量賦值之後,只需在變量前面加一個$去引用.
***cb 格式化源代碼
***lint 語法檢查程序
***more 顯示文件
*** tab鍵:補齊系統中存在的文件名稱,命令和命令參數
*** 改變用戶身份的命令:su
su - ##加載相應用戶下的環境變量,不加-在root身份下執行某些命令可能顯示
“command not found”
-l ##使目前的shell成爲改變身份後用戶默認的shell
-c ##改變身份後運行一個指令後退出
-m ##改變用戶身份但不改變環境變量
***who ##顯示目前登錄到系統的用戶
who [選項] [file]
在linux下who默認通過/var/run/utmp文件來獲取信息,若“file”選項指定另一個文件,則who不再讀取/var/run/utmp文件,而是讀取指定文件來獲取信息
# who
root tty1 2016-05-05 10:00
root pts/0 2016-05-05 10:15 (172.25.50.250)
who -s ##僅顯示名稱、線路、和時間字段信息。這是who默認的輸出,相當於
who
-a ##列出所有信息,相當於所有選項
-b ##列出系統最近啓動的時間日期
-r ##顯示當前系統的運行機級別
-T或-w ##顯示tty終端的狀態,“+”表示對任何人都可寫,“-”表示僅
對root用戶或所有者可寫,“?”表遇到線路故障
-l ##列出所有可登錄的終端信息
-m ##僅列出當前終端的信息,相當於who am i 和who am I
-u ##顯示當前每個用戶的用戶名、登錄終端、登錄時間、活動和進程
標識,除狀態以外的所有輸出
-q ##列出本地系統上的用戶和用戶數的清單
who命令的一般輸出格式:
用戶名 [狀態] 線路 時間 [活動] [進程標識] (主機名)
用戶名:用戶的登錄名
狀態:表明線路是否對登錄用戶都是可寫的,如”+””-”
線路:登錄終端,類似於pts/1,pts/2,tty等,此線路標識在/dev中可以找到
時間:用戶登錄系統的時間
活動:某個用戶在自己的線路上最後一次活動發生以來到現在所用時間。如果此項是個“.”,就表示一分鐘內地線路活動;如果線路保持靜止已經超過24小時或者自從系統啓動以來還沒被使用過,那麼此項的標記爲“old”
進程標識:用戶登錄shell的進程id
主機名:登錄到linux系統上的客戶端機器標識,沒有主機名解析寫ip
***w ##顯示用戶登錄到系統的時間
w [選項] [用戶]
-h ##不顯示輸出信息的標題
-l ##用長格式輸出,相當於直接用w
-s ##用短格式輸出,不顯示登錄時間、JCPU、PCPU時間
-V ##顯示版本信息
第一行:顯示了當前的系統時間、系統從啓動到現在已經運行的時間,登錄到系統中的用戶數,系統平均負載(系統1min、5min、15min內系統負載狀況)
USER:登錄系統的用戶
TTY:用戶使用的TTY(字符終端)名稱
FROM:表示用戶從哪裏登錄進來,一般顯示遠程登錄主機的IP地址或主機名
LOGIN@:用戶登錄的日期和時間
IDLE:表某個程序上次從終端開始執行到現在所持續的時間
JCPU:表該終端上的所有進程及子進程使用系統的總時間
PCPU:當前活動進程使用的系統時間
WHAT:當前用戶執行的進程名稱和選項
***uname ##顯示操作系統相關信息
uanme -s ##顯示操作系統類型,相當於uname
-a ##顯示操作系統所有信息
-n ##顯示操作系統的主機名
-r ##顯示操作系統內核版本
***uptime ##輸出系統隊列信息
表示當前系統時間、系統從開機到現在的運行時間,系統登錄用戶數,系統平均負載(與w命令第一行輸出相同)
***last ##列出目前與過去登入系統的用戶相關信息
last [選項] [-n 顯示列數]
執行last命令時,默認讀取/var/log/wtmp文件,並把該文件記錄的等入系統的用戶名全部顯示出來
last -a ##將從何處等入系統的IP或主機名顯示在每一行的末尾
-R ##不顯示登入系統的主機名或IP
-x ##顯示系統關機、重新開機及執行等級的改變等信息
-d ##將顯示的IP地址轉換爲主機名
-n ##設置列出名單的顯示列數
***dmesg ##顯示開機的信息
內核會將開機信息存儲在系統緩衝區(ring buffer)中,如果開機來不及查看相關信息,可以在開機後用dmesg命令查看,或者查看/var/log/dmesg文件
dmesg -c ##顯示開機信息後,清除ring buffer信息
-s ##設置緩衝區打大小,默認爲8192
-n ##設置記錄信息的層級
***free ##顯示系統內存狀態的命令
free [選項] [-s 間隔秒數]
free -b ##以字節爲單位顯示內存的使用情況
-k ##以千字節(KB)爲單位
-m ##以兆字節爲單位
-t ##顯示內存的總和列
-o ##不顯示緩衝區列
-s(間隔秒數) ##根據指定的間隔秒數持續顯示內存的使用情況
系統的物理內存是490M,已經使用了94M,空閒396M。系統可用內存爲443M(mem+buffer/cache);swap分區還未使用
***ps(process status) ##顯示系統進程瞬間的運行狀態
參數:
-a ##顯示現行終端中的所有進程(所有用戶的進程),包括其他用戶進程
-x ##顯示所有系統程序,包括那些沒有終端的程序
所以ax表示顯示所有在終端中和不在終端中執行的程序
-u ##以用戶爲主顯示進程
aux ##以用戶爲主顯示所有進程
x ##通常與參數u一起使用,列出較完整的信息。
a ##顯示所有進程
-a ##顯示現行終端中的所有進程(所有用戶的進程),包括其他用戶進程
-e ##顯示所有進程,與-A相同(將除內核進程以外所有進程的信息寫到
標準輸出)
-f ##詳細顯示程序執行的路徑羣
-ef ##詳細顯示所有進程
-C <命令> ##列出指定命令的進程
e ##顯示環境變量
f ##顯示程序間的關係
r ##顯示當前終端的進程
T ##顯示當前終端的所有進程
u ##指定用戶的所有進程
c ##顯示進程的真實名稱
-c ##只顯示進程的名稱,不顯示進程的完整路徑
-N ##反向選擇
-H ##顯示樹狀結構
--lines <行數> ##每頁顯示的行數
--width <字符數> ##每頁顯示的字符數
--version ##顯示版本信息
# ps -u postfix ##顯示指定用戶的進程信息
PID TTY TIME CMD
953 ? 00:00:00 qmgr
1182 ? 00:00:00 pickup
默認ps命令輸出使用者自己的進程:
PID:進程的標識號
TTY:進程所屬的終端控制檯
TIME:進程所使用的總的CPU時間
CMD:正在執行的命令行
帶-的參數和不帶-的參數表示意義不同:
linux上進程由5中狀態:
(1)運行:張在運行或在運行隊列中等待
(2)中斷:休眠中,受阻,在等待某個條件的形成或接收到信號
(3)不可中斷:收到信號後不能喚醒和不可運行,進程必須等待直到有中斷髮生
(4)停止:進程收到SIGSTOP,SIGSTP,SIGTOU信號後停止運行
(5)僵死:進程已經終止,但進程描述符存在,直到父進程調用wait()4系統調用後釋放
ps工具標識進程的5中狀態碼:
(1)R 運行 runabled
(2)S 中斷 sleeping
(3)D 不可中斷
(4)T 停止 traced or stopped
(5)Z 僵死 a defunct(“zombie”) process
相關項目明細:
USER:用戶名
UID:用戶ID
PID:進程ID
PPID:父進程的進程ID(parent process id)
SID:會話ID
%CPU:進程的cpu佔用率
%MEM:進程的內存佔用率
VSZ:進程所使用的虛擬內存的大小
RSS:進程使用的駐留集大小或者是實際內存的大小,k字節
TTY:與字節關聯的終端
STAT:進程的狀態,進程狀態使用字符表示的stat狀態碼
R運行(Runabled,on run queue):正在運行或者在運行隊列中等待
S 睡眠(Sleeping):休眠中,受阻,在等待某個條件的形成或接收到信號
I 空閒(idle)
Z 僵死(Zombie,a defunct process):進程已終止,但進程描述符依然存在,直到父進程調用wait4()系統調用後釋放
D 不可中斷(Uninterruptible Sleep,usually IO):收到信號不喚醒和不可運行,進程必須等待直到有中斷髮生
T 終止(Terminate):進程收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信號後停止運行
P 等待交換頁
W 無駐留頁:進入內存交換((從內核2.6開始無效)沒有足夠的記憶體分頁可分配)
X 死掉的進程
< 高優先級進程
N 低優先級進程
L 內存鎖頁(Lock):由記憶體分頁分配並鎖在記憶體內
s 進程的領導者(在它之下有子進程)
| 多進程的(使用clone_thread,類似於nptl pthreads)
+ 位於後臺的進程組
START :進程啓動時間和日期
TIME:進程使用的總的CPU佔用時間(進程消耗CPU的時間)
COMMAND:執行命令的名稱和參數
NI(nice)優先級
PRI(priority):進程優先級的編號
WCHAN:正在等待的進程資源(進程正在睡眠的內核函數名稱(從/root/system.map中獲得))
FLAGS:與進程相關的數字標識
例:
# ps aux或ps -ef ##查看所有進程信息
# ps -eo 'pid,uid,stat,pri,comm' --sort uid ##查看當前系統進程的pid,uid,stat,pri,以uid號排序
# ps -aux | grep 進程關鍵字
# ps ax -o %cpu,%mem,user,pid,comm ###查看進程某項信息
# ps ax -o pid,comm 相當於 ps -eo pid,comm
# ps aux --sort +|-%cpu|%mem...###進程按指定方式排序
例一:將目前屬於自己本次登入的PID等相關信息顯示出來
各相關信息的意義:
F(flag):代表這個程序的旗標,4代表使用者爲superuser;1代表分叉的但沒有被執行
S(STAT):代表這個程序的狀態
UID:代表執行者的身份
PID:進程的ID號
PPID:父進程的ID號
C:cpu佔用資源的百分比
PRI(Priority):指進程的執行優先權,其值越小優先級越大,越早被執行
NI:該進程的nice值,其表示進程可被執行的優先級的修正數值
ADDR:內核參數,指出該進程在內存的哪個部分。如果是可執行的程序,一般爲-
SZ:使用掉的內存大小,單位爲k字節
WCHAN:目前該程序是否正在運行中,若爲-表示正在工作
TTY:登入者的終端機位置
CMD:所下達的指令名稱
例二:以例一的顯示格式,顯示出所有的程序
例三:列出目前所有的正在內存當中的程序
USER:該進程屬於哪個使用者
PID:該進程的進程id號
%CPU:該進程使用掉的CPU資源百分比
%MEM:該進程所佔用的物理內存百分比
VSZ:該進程已使用的虛擬內存量(k字節)
RSS:該進程佔用的固定內存量(k字節)
TTY:該進程是在哪個終端機上運行——若與終端機無關則顯示?,從本機中登入的用戶程序顯示爲tty1~tty6;網絡連接進主機的程序顯示爲pts/0、pts/1等
STAT:該程序目前的狀態,主要的狀態有——
R:該程序目前正在運行,或者是可以被運行
S:該程序目前正處於休眠狀態,但是可以被某些信號(signal)喚醒
T:該程序目前正在偵測或者停止
Z:該程序應該已終止,但其父進程無法正常終止它,造成殭屍(zombie)程序的狀態
START:該進程被觸發啓動的時間
TIME:該進程實際使用CPU運作的時間
COMMAND:該進程的指令的名稱
例四:列出類似程序樹的信息
例五:找出cron與syslog這兩個服務有關的PID號碼
# ps -eo 'pid,comm' | grep -E 'syslog|cron'
# ps aux | egrep 'syslog|cron'
***top:實時監控系統處理器狀態
top -d ##指定每兩次屏幕信息刷新之間的時間間隔
-i ##不顯示閒置或僵死的進程
-c ##顯示進程的整個命令路徑,而不是隻顯示命令名稱
-s ##使top命令在安全模式下運行,此時top的交互式指令被取消,避免
潛在危險
-b ##分屏顯示輸出信息,結合-n選項可將屏幕信息輸出到文檔
-n ##top輸出信息更新的次數,完成後將退出top指令
top的交互式命令:
h或? ##顯示幫助信息,給出交互式命令的一些說明總結
m ##切換顯示內存信息,這是一個開關命令
t ##切換顯示進程和cpu信息,這是一個開關命令
l ##切換顯示平均負載和啓動時間信息,這是一個開關命令
i ##忽略閒置進程和僵死進程,這是一個開關式命令
c ##切換顯示完整命令行和命令名稱信息
M ##根據駐留內存大小進行排序輸出
P ##根據cpu使用百分比大小進行排序輸出
T ##根據時間/累計時間進行排序輸出
S ##切換到累計模式
k ##終止一個進程,系統將提示用戶以輸入一個需要終止進程的PID
s ##改變top輸出信息的兩次刷新之間的時間。系統將提示輸入新的時間,單位
是秒。如果是小數則換算成毫秒。如果輸入0,系統輸出將不斷刷新,默認
刷新時間爲5s。如果設置較小的時間,則會引起系統不斷刷新,無法看清
楚輸出顯示情況,而且系統負載也會加大
o 或O ##改變輸出信息中顯示項目的順序,按的a~z將相應地列向右移動,按
A~Z將相應地列向左移動
f或F ##從當前的顯示列表中添加或者刪除項目。按f後會顯示列的列表,按a~
z鍵即可顯示或隱藏對應的列。最後按回車鍵確定
r ##重新設置一個進程的優先級。系統提示用戶輸入需要改變的進程PID及需
要設置的進程優先級。輸入一個正值使優先級降低,輸入一個負值使該進
程由更高的優先級。默認值是10
W ##將當前top設置寫入~/.toprc中
q ##退出top命令
例:查看當前系統活動的進程
# top
項目明細:
top的輸出可以分爲統計時間區(前5行)和進程信息區
第一行爲任務隊列信息:
15:23:44 表示當前系統時間
up 3 min 表示系統已啓動3分鐘。
1 user 當前登錄系統的用戶數
load average:0.04,0.03,0.00 表示系統平均負載,3個數值1min、5min、15min前到現在的系統平均負載值
第二行爲進程信息:
Tasks:71total 進程的總數
1 Running:正在運行的進程數
70 sleeping:處於休眠的進程數
0 stopped:停止的進程數
0 zombie:僵死的進程數
第三行爲cpu信息:
CPU(s):0.0%us 表示用戶進程佔用CPU百分比
0.0%sy 系統進程佔用CPU的百分比
0.0%ni 用戶進程空間內改變過優先級的進程佔用cpu的百分比
100.0% id 空閒CPU佔用的百分比
0.0%wa 等待輸入輸出的進程佔用CPU的百分比
0.0%hi
0.0%si
0.0%st
第四行、第五行爲內存信息:
Mem:502276k total 系統物理內存大小
93572k used 已使用物理內存大小
50412k free 目前空餘內存大小
buffers 用作內存緩衝區的內存大小
swap 交換分區內存大小
cached 高速緩存
進程信息區:
PID 進程的PID
USER 進程所有者的用戶名
PR 進程優先級
NI nice值,負值表示高優先級,正值表示低優先級
VIRT 進程使用的虛擬內存總量,單位KB。VIRT=SWAP+RES
RES 進程使用的、未被換出的物理內存大小,單位KB。RES=CODE+DATA
SHR 共享內存大小,單位KB
S 進程狀態,D表示不可中斷的睡眠狀態,R表示運行狀態,S表示睡眠狀態,T表示跟蹤或停止,Z表示僵死進程
%CPU 上次更新到現在的CPU時間佔用比
%MEM 進程佔用的物理內存百分比
TIME+ 進程使用的CPU時間總計,單位爲0.01s
COMMAND 正在運行進程的命令名
【通配符】
(1)*:匹配0-任意字符
(2) ?:匹配任意單個字符
[root@localhost Desktop]# ls
file file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
[root@localhost Desktop]# rm -fr file?
[root@localhost Desktop]# ls
file file10
(3)~:匹配當前用戶家目錄
(4)~username:匹配到username用戶家目錄
[root@localhost Desktop]# ls
file file10
[root@localhost Desktop]# cp * ~student
[root@localhost Desktop]# ls /home/student/
Desktop Downloads file10 Pictures Templates
Documents file Music Public Videos
(5)~+(同.):當前目錄
[root@localhost Desktop]# ls
file file10
[root@localhost Desktop]# cp /etc/passwd ~+
[root@localhost Desktop]# ls
file file10 passwd
[root@localhost Desktop]# cp /etc/group .
[root@localhost Desktop]# ls
file file10 group passwd
(6)~-(cd ~-同cd -):當前目錄之前所在的目錄
[root@localhost mnt]# pwd
/mnt
[root@localhost mnt]# cd /root/Desktop/
[root@localhost Desktop]# ls
file file10 passwd
[root@localhost Desktop]# cp * ~-
[root@localhost Desktop]# ls /mnt/
file file10 passwd
(7)[abc]:文件名包含有a或b或c
[root@localhost Desktop]# ls
filea fileb filec filed filee filef test
[root@localhost Desktop]# cp file[abc] test/
[root@localhost Desktop]# ls test/
filea fileb filec
[root@localhost Desktop]# touch file{1..5}{a..e}
[root@localhost Desktop]# ls
file1a file1d file2b file2e file3c file4a file4d file5b file5e
file1b file1e file2c file3a file3d file4b file4e file5c test
file1c file2a file2d file3b file3e file4c file5a file5d
[root@localhost Desktop]# cp file?[ace] test/
[root@localhost Desktop]# ls test/
file1a file1e file2c file3a file3e file4c file5a file5e
file1c file2a file2e file3c file4a file4e file5c
(8)[!abc](同<^abc>):文件名除了含有a或b或c
[root@localhost Desktop]# ls
file1a file1d file2b file2e file3c file4a file4d file5b file5e file1b file1e file2c file3a file3d file4b file4e file5c test file1c file2a file2d file3b file3e file4c file5a file5d
[root@localhost Desktop]# cp file?[!ace] test/
[root@localhost Desktop]# ls test/
file1b file2b file3b file4b file5b file1d file2d file3d file4d file5d
(9)[[:alpha:]]:單個字母
[root@localhost Desktop]# ls
2file fi2le file @file File file2 test
[root@localhost Desktop]# cp [[:alpha:]]* test/ -r
cp: cannot copy a directory, ‘test’, into itself, ‘test/test’
[root@localhost Desktop]# ls test/
fi2le file File file2 test
[root@localhost Desktop]# ls test/test/
fi2le file File file2
(10)[[:lower:]]:單個小寫字母
[root@localhost Desktop]# ls
2file fi2le file @file File file2 test
[root@localhost Desktop]# cp [[:lower:]]* test/
cp: omitting directory ‘test’
[root@localhost Desktop]# ls test/
fi2le file file2
(11)[[:upper:]]:單個大寫字母
[root@localhost Desktop]# ls
2file fi2le file @file File file2 test
[root@localhost Desktop]# cp [[:upper:]]* test/
[root@localhost Desktop]# ls test/
File
(12)[[:alnum:]]:單個字母或數字
[root@localhost Desktop]# ls
2file fi2le file @file File file2 test
[root@localhost Desktop]# cp [[:alnum:]]* test/
cp: omitting directory ‘test’
[root@localhost Desktop]# ls test/
2file fi2le file File file2
(13)[[:punct:]]:單個符號,不包含空格或數字
[root@localhost Desktop]# ls
2file fi2le file @file File file2 test
[root@localhost Desktop]# cp [[:punct:]]* test/
[root@localhost Desktop]# ls test/
@file
(14)[[:digit:]]:數字
[root@localhost Desktop]# ls
2file fi2le file @file File file2 test
[root@localhost Desktop]# cp *[[:digit:]]* test/
[root@localhost Desktop]# ls test/
2file fi2le file2
(15)[[:space:]]:單個空格
[root@localhost Desktop]# touch file " "file
[root@localhost Desktop]# ll
total 0
-rw-r--r--. 1 root root 0 Sep 27 18:34 file
-rw-r--r--. 1 root root 0 Sep 27 18:34 file
drwxr-xr-x. 2 root root 42 Sep 27 18:33 test
[root@localhost Desktop]# ls test/
hello
[root@localhost Desktop]# cp [[:space:]]* test/
[root@localhost Desktop]# ll test/
total 0
-rw-r--r--. 1 root root 0 Sep 27 18:39 file
-rw-r--r--. 1 root root 0 Sep 27 18:38 hello
【vim編輯器】
vimtutor是vim的說明工具,:q退出此工具
<1> 命令模式
#vim /etc/vimrc
在結尾一行加上set nu,以後用vim打開的文件會自動添加標號
:set nu | number //顯示行號
:set mouse=a //設定鼠標可以操作光標位置
:help //獲得幫助;:q退出幫助文檔
u //後退,恢復到未操作前
ctrl+r //前進,恢復到操作後
ctrl+v //高量選擇模式
:數字 //移動光標到指定行 如:1 //光標停在第一行
G //移動光標到文件末尾
g //移動光標到文件開頭
『 批量添加字符』
ctrl+v可以選中一片區域,ctrl+v選中要加字符的位置,按I加入想添加的字符,按esc退出
『分屏功能』
ctrl+w s //上下分屏
ctrl+w v //左右分屏
ctrl+w c //撤銷光標所在屏幕
ctrl+w 上下左右 //移動光標到指定屏幕中
『替換字符』
:%s/原字符/替換後字符/g
:1,5s/asdf/hello/g ##替換1到5行
『 搜索功能』
在命令模式下,/關鍵字
N向上匹配;n向下匹配
『字符管理』
d+w //刪除光標所在單詞
d+l //刪除光標所在字母
d數字d //刪除數字指定的行數 eg:d3d //一共刪除了3行
d數字+上鍵 //向上刪除指定的行數 eg: d3上鍵 //刪除從光標所在行向上數起的三行,並且刪除光標所在行;一共刪除了4行
d + g //從光標所在位置刪除到文件開始處
d + G //從光標所在位置刪除到文件末尾
D //從光標所在位置向後刪除光標所在行
y+w //複製光標所在單詞
y+l //複製光標所在字母
y數字y //向下複製數字指定的行數
p //粘貼
c+w //剪切光標所在單詞
c+l //剪切光標所在字母
c數字c //剪切數字指定行數
注意:剪切完後會進入插入模式,按esc退出插入模式後再按p要粘貼
<2> 插入模式
i //光標所在位置插入字符
a //光標所在字符的下一位插入
I //光標所在行首插入
A //光標所在行的行尾插入
o //光標所在行的下一行插入
O //光標所在行的上一行插入
s //刪除光標所在字符插入
S //刪除光標所在行插入
<3> 退出模式
在命令模式下輸入
:q###未對文件作任何修改時退出
:q!###強制退出
:wq###退出保存
:wq!###強制退出保存
【對命令的輸出進行管理】
>file1或設備 ##把正確的輸出結果定向到file1這個文件中
>>file1 ##把正確的輸出結果定向到file1這個文件中,並且不覆蓋file1中的內容
2>file2 ##把錯誤的輸出結果定向到file1這個文件中
&>file3 ##把輸出結果(包括正確和錯誤的)定向到file1這個文件中
2>&1 ##把錯誤的當成正確的
/dev/null ##系統中的垃圾箱
管道(可以多個使用,默認情況下,管道只接受正確的信息)
如:ls /bin 2>&1 | wc-l
ls /bin 2>& |tee file |wc-l ##tee把輸出複製到file中,我們可以看到
find /etc/ name passwd >file 2>&1 ##把正確的和錯誤的都放到file中
find /etc/ name passwd 2>&1 >file ##不能實現以上功能,當執行>file時,2>&1的結果已經被“扔到了地上”,不會記錄