簡單小命令:node
右擊桌面打開終端,能夠輸入Linux命令。shell
重啓(shutdown -r now)(reboot)(init 6)數據庫
關機(shutdown -h now)(poweroff)(init 0)(halt)windows
五分鐘後關機(重啓)shutdown -h(-r) +5 bash
--Ctrl+C取消關機(重啓)【終止當前進程】服務器
\的做用: 1.命令行的續行less
2.將特殊符號的特殊功能去掉,表示特殊符號自己。 測試
bc命令:打開Linux中的計算器。ui
命令行格式spa
Linux命令的通用命令格式
中括號無關緊要 命令字 [選項] [參數] 必定要有空格
查看幫助命令:
查看幫助文檔 man + 命令 [可選]
info +命令
help +命令
shell 解釋命令行 shell包括圖形和字符界面
外部命令經過help不能查看幫助[圖片]
[root@dbserver01 ~]# touch --help
Usage: touch [OPTION]... FILE... 命令格式
空格下一頁
回車下一行
退出Q或者q
搜索 //
內部命令沒有路徑,外部命令有路徑
內部和外部命令
shell 殼
--是人與內核打交道的接口
shell是一個命令解析器,提供了一個操做界面(字符和圖形)而且解析命令行。
如判斷命令是內部命令仍是外部命令?
1、查找命令所在路徑,若是找不到,那麼就是內部命令,不然外部命令。(不推薦)
[root@dbserver01 ~]# which cd
/usr/bin/which: no cd in (/usr/lib64/qt-
3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[root@dbserver01 ~]# which touch
/bin/touch
2、用type查看(推薦)
[root@dbserver01 ~]# type cd
cd is a shell builtin //內部命令
[root@dbserver01 ~]# type touch
touch is hashed (/bin/touch) //顯示絕對路徑,是外部命令
3、使用man命令查看幫助
若是看到BASH_BUILTINS // 表示內部命令
若是看到User Commands //表示外部命令
退出man命令:q
Linux中有多種類型的shell,默認是bash
如何知道Linux支持那些shell?
[root@dbserver01 ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
命令行輔助操做
Ctrl+A 把光標移動到行前開頭
Ctrl+E 把光標移動打行尾末端
Ctrl+R 查找歷史命令(按上下箭頭)
快捷鍵Ctrl:輸入結束
箭頭 使用歷史命令
用戶登陸命令
who/user/w 命令
查詢那個用戶正在登陸系統
[root@dbserver6-1 ~]# who
root tty1 2018-11-17 13:51 本地登陸
root pts/0 2018-11-17 13:52 (172.16.1.13) 遠程登陸
查詢當前是哪一個用戶:用 id命令
exit命令:
退出控制檯命令
logout命令:
註銷系統命令
(用於退出當前登陸的shell,其功能與login指令相互對應)
login命令:
給出登陸界面命令(用於從新登陸或者切換用戶身份時)
語法: login(選項)(參數)
選項: -p: 告訴login指令不銷燬環境變量
-h:指定遠程服務器的主機名。
參數:
用戶名:指定登陸使用的用戶名。
logname命令:
用來顯示用戶的名稱。
語法: logname(選項)
選項: --help 在線幫助
--vesion 顯示版本信息
su命令
su - 用戶名 切換用戶
由root切換到普通用戶,不須要輸入密碼;反過來須要密碼
返回原來的用戶,用退出命令 exit
date命令:
用途:查看或設置系統時間
格式: date ... (date -s 修改時間)
實例: 顯示時間日期效果例如 2012-12-12 12:35
[root@dbserver6-1 ~]# date
Thu Nov 22 15:25:33 CST 2018
[root@dbserver6-1 ~]# date +%F\ %H:%M 或者 「date +%F %H:%M」 (建議)
2018-11-22 15:26
[root@dbserver6-1 ~]# date "+%F %T" //查看系統時間,精確到秒
2018-11-22 15:36:47
[root@dbserver6-1 ~]# date -s 09:15:13 //修改系統時間時分秒
Thu Nov 22 09:15:13 CST 2018
[root@dbserver6-1 ~]# date -s 2018-11-11 //修改系統時間年月日
Sun Nov 11 00:00:00 CST 2018
[root@dbserver6-1 ~]# date -s "2018-11-11 16:45:50" //修改系統時間
Sun Nov 11 16:45:50 CST 2018
hwclock命令:
用途:同步系統和硬件時間
格式: hwclock [選項]
選項: -s | --hctosys 硬件到系統 set the system time from the hardware clock
-w | --systohc 系統到硬件 set the hardware clock to the current system time
設置硬件時間:
BISO(B):Basic Input/ Output System
基本輸入輸出系統,是一個程序(能夠進行虛擬機上的硬件上的參數的查看和設置)
目錄操做命令
pwd命令:
查看工做目錄(Print Working Directory)
cd命令: 、
切換工做目錄(Change Directory)
格式: cd[目錄位置]
特殊目錄: . 當前目錄
.. 上一級目錄
~ 用戶主目錄
- 上個工做目錄
cd ~ == cd 回到家目錄
指定用戶的家目錄 ~user用戶名
查看其它用戶的家目錄 ls ~user用戶名
ls 命令
l l是一個別名,對應着真正的命令是ls -l
查看目錄文件的內容;目錄文件的內容是子目錄名或文件名
Linux下,隱藏文件的名稱是以 . 開頭的
l l是一個別名,對應着真正的命令是ls
ls -l =ll
ls -ld 顯示目錄自己屬性
[root@dbserver01 tmp]# ll
total 4
-rw-r--r--. 1 root root 0 Nov 1 18:06 a.txt
----------. 1 root root 797 Nov 1 18:36 shadow
-rw-------. 1 root root 0 Oct 26 17:44 yum.log
上述第一列表示文件類型和權限,第一個字符表示文件類型,後面的9個字符表示權限;
第二列表示硬連接數量;
第三列表示文件的擁有者owner(屬主);
第四列表示文件的屬組group;
第五列表示文件內容的大小;
第六列表示修改文件內容的日期和時間;
最後一列表示文件名稱。
mkdir命令:
用途:建立新的目錄
格式:mkdir [-p] [/路徑/]目錄名
做用:mkdir命令會自動檢查目錄前的路徑中的每一層目錄是否存在,若是不存在,就會自動建立}
要求在/omp目錄下,建立目錄mp3,命令是: mkdir -p /opt/mp3
rmdir命令:
用途:刪除空的目錄
rm -rf 刪除文件(危險)
rm -rf 路徑/目錄
du命令
用途:統計目錄及文件的空間佔用狀況(默認KB字節)
格式:du[選項]···[目錄或文件名]
經常使用命令選項: -a:統計包括全部的文件,而不只僅只統計目錄
-h : 以更易讀的字節單位(K、M等)顯示信息
-s : 只統計每一個參數所佔用空間總的大小
文件操做命令
touch命令:
用途:新建空文件,或更新文件標記
格式: touch 文件名······
經常使用命令選項: -a:改變文件讀取的時間記錄
-m:改變文件內容修改的時間記錄
-r:使用參考文件的事件記錄
-d:設定時間與日期
man touch 幫助命令
touch 已存在文件,會更新讀取時間和修改時間,修改時間改變會引發屬性時間改變
指定修改時間,要用 -d選項 touch -a -d 時間 文件aa
touch 命令只能修改 讀取時間和修改時間
[root@dbserver6-1 ~]# stat a.txt
File: `a.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 174420 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-11-07 11:07:01.062996018 +0800 //讀取時間,例如cat
Modify: 2018-11-07 11:07:01.062996018 +0800 //內容修改時間,ls -l查看到的就是這個時間
Change: 2018-11-07 11:07:01.062996018 +0800 //屬性修改時間,例如:修改權限
元數據------屬性數據
查看元數據: stat a2,用stat命令
修改內容 文件的大小會發生變化,文件內容修改時間也會有變化,屬性也會變化。
內容修改時間和屬性修改時間會同時改變
讀取時間不屬於 屬性
[root@dbserver6-1 ~]# touch a.txt //新建已有文件時更新文件標記
[root@dbserver6-1 ~]# stat a.txt
File: `a.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 174420 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-11-07 11:30:47.652997187 +0800
Modify: 2018-11-07 11:30:47.652997187 +0800
Change: 2018-11-07 11:30:47.652997187 +0800
[root@dbserver6-1 ~]# stat a.txt
File: `a.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 174420 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-11-07 11:37:04.727996888 +0800
Modify: 2018-11-07 11:30:47.652997187 +0800
Change: 2018-11-07 11:30:47.652997187 +0800
[root@dbserver6-1 ~]# cd ..
[root@dbserver6-1 /]# cd tmp
(1)[root@dbserver6-1 tmp]# echo "123">>a.txt //追加一行內容
(2)[root@dbserver6-1 tmp]# cat a.txt // access對應的內容有變化
123
[root@dbserver6-1 tmp]# stat a.txt
File: `a.txt'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 174429 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-11-07 11:48:54.935996288 +0800 //因(1)有變化
Modify: 2018-11-07 11:48:46.699996438 +0800 //因(2)有變化
Change: 2018-11-07 11:48:46.699996438 +0800 //因(2)有變化
[root@dbserver6-1 tmp]# chmod +x a.txt //修改權限
[root@dbserver6-1 tmp]# stat a.txt
File: `a.txt'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 174429 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-11-07 11:48:54.935996288 +0800
Modify: 2018-11-07 11:48:46.699996438 +0800
Change: 2018-11-07 11:55:51.209994149 +0800 //因修改權限發生變化
註釋 :一、創建不一樣類型的文件
二、修改文件的Access的時間
三、修改文件的Modify的時間
四、將file2文件的時間代替爲file1文件的時間(之前面的文件時間爲準)
rm命令
【0-9】表示數字,【a-z】表示小寫字母
註釋 :1、刪除當前目錄下全部文件及子目錄
2、刪除當前目錄下的全部只有三個字符的文件名和目錄名
3、刪除當前目錄下的全部具備 .log 後綴名的文件(可是不能刪除隱藏文件,若是要刪除隱藏文件就要去打開隱藏文件,而後刪除)
-f force 強制性 不提醒
(rm刪除下會有提醒,y 回車 確認刪除,n 回車 取消刪除)
rm -r 也能夠刪除非目錄文件(-r多餘)(建議刪除文件不要用 -r)
[root@dbserver6-1 tmp]# mkdir q
[root@dbserver6-1 tmp]# ls
a a b c d e b c d e fd q
[root@dbserver6-1 tmp]# rm -f q
rm: cannot remove `q': Is a directory
[root@dbserver6-1 tmp]# rm -r q \\刪除目錄用 rm -r
rm: remove directory `q'? y
[root@dbserver6-1 tmp]# ls
a a b c d e b c d e fd
[root@dbserver6-1 tmp]# ls
[root@dbserver6-1 tmp]# touch a1 a2 a3 b1 b2 b3
[root@dbserver6-1 tmp]# ls
a1 a2 a3 b1 b2 b3
[root@dbserver6-1 tmp]# rm -f a? \\? 對應1個字符
[root@dbserver6-1 tmp]# ls (as 是兩個字符。s是一個字符)
b1 b2 b3
file命令
用途: 查看文件類型
格式: file 文件名··
stat命令
用途:查看與文件的相關屬性
格式:stat 文件名···
cp命令
-p:保留源文件的權限
-i : 覆蓋前提醒
-f : 強制
-a選項包含-r和-p選項的功能。
cp /etc/passwd /opt \\將/etc/passwd文件複製到 /opt目錄下,沒有更名
cp /etc/passwd /opt/a.txt \\將/etc/passwd文件複製到 /opt目錄下,更名爲a.txt,與原文件內容相同
diff a.txt passwd \\該命令對比兩個文件內容是否相同,若是徹底同樣,則沒有任何輸出。
cp /etc/passwd /etc/shadow /tmp\\將/etc/passwd和/etc/shadow文件複製到 /tmp目錄下,沒法更名
[root@localhost tmp]# which cp
alias cp='cp -i'
/bin/cp 存在於硬盤
cp是別名,,別名存在內存中,-i會有提示
如何查看別名?
[root@dbserver6-1 ~]# alias
alias cp='cp -i' \\ -i interactive(覆蓋前提醒)
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
alias cd="ls" //給ls建立別名爲「cd」
unalias 別名 //改別名會被刪除
unalias -a //全部別名將會被刪除
命令的查找順序:
cp -r /opt /tmp \\將/opt目錄或者文件都複製到/tmp目錄下,這裏要注意複製目錄須要使用-r選項
mv命令
//不論是cp命令仍是mv命令,若是有多個源文件或者目錄,那麼目標必須是存在的目錄。
文件更名:
mv 123.txt 456.txt \\這裏就是將文件123.txt的名稱修改成456.txt的名稱
關於查找文件的一些命令
ln命令:
硬連接:
一個文件有多個不一樣的文件名。(一個iNode號對應多個文件名)
命令格式: ln 源文件... 連接文件
建立硬連接
ln abc.txt 123.txt
rm abc.txt
軟鏈接:
(至關於windows上的快捷方式)
符號連接:表面上和硬連接類似,符號連接文件有本身的iNode,與源文件的iNode是不同的。
文件類型和權限確定是lrwxrwxrwx
命令格式: ln -s 源文件... 連接文件
建立軟連接
ln -s abc.txt 123.txt
rm abc.txt
硬連接和軟連接比較
軟連接:指向原始文件所在的路徑,又稱爲符號連接
硬連接:指向原始文件對應的數據存儲位置
不能爲目錄創建硬連接文件
硬連接與原始文件必須位於同一分區(文件系統)中(硬連接不能跨文件系統)
文件內容操做命令
cat命令
文本文件查看:
用途:用於顯示文件的所有內容,
格式: cat -n 文件名 顯示行號
cat -i 文件名 //查看文件的inode號碼
tac命令
用途:從最後一行倒着顯示出文件的所有內容。
more命令
more 分頁顯示文件內容
用途:全屏方式分頁顯示文件內容
交互操做方法:
按Enter鍵向下逐行滾動
按空格鍵向下翻一屏、按b鍵向上翻一屏
按q鍵退出
less命令
用途:與more命令相同,但擴展功能更多
交互操做方法:
與more命令基本相似,但個別操做會有些出入
【page down】【page up】上翻下翻頁
head命令
用途:查看文件開頭的一部份內容(默認爲10行)
格式:head -n 文件名
head -5 文件名,查看文件的前5行
head -n +5 //查看文件到第五行
tail命令
用途:查看文件結尾的少部份內容(默認爲10行)
格式: tail -5 //查看文件最後五行
tail -n +5文件名 //查看文件從第五行到最後
tail -f 文件名 //能夠動態查看文件內容,適用查看日誌文件
tail命令高級用法
格式:tail -n 數字 文件名
數字:數字前有 +(加號),從文件開頭指定的單元 數開始輸出;數字前有 -(減號),從文件末尾指定的單元 數開始輸出;沒有 +或 -,從文件末尾指定的單元 數開始輸出。
例如:
tail -n +3 /etc/passwd //從第三行開始顯示
tail -n -3 /etc/passwd //顯示最後三行
head -n -3 /etc/passwd //不顯示最後三行
head -n +3 /etc/passwd //顯示前三行
文件查找命令
which命令
用途:查找可執行文件並顯示所在位置。(查找命令的程序文件)
——搜索範圍由PATH環境變量指定
格式:which 命令或程序名
whereis命令
用途:查找文件的路徑、該文件的幫助文件路徑,原理和which相似
格式:whereis 命令或程序
locate命令
格式:locate 文件名
根據天天更新的數據庫(/var/lib/mlocate)查找,速度快
不能找到本身新建的文件但會找到已經刪除的文件。
手動更新數據庫updatedb
find命令:
用途:用於查找文件或目錄(查找各類類型的文件)
格式:find [查找範圍] [查找條件] [動做]
經常使用查找條件
-name:按文件名稱查找
-size: 按文件大小查找
-user: 按文件屬主查找
-type: 按文件類型查找
-perm :按文件權限查找
-mtime :按文件更改時間查找
-newer:按比某個文件更新的查找
特殊查找條件
-o :邏輯或,只要所給的條件中有一個知足,尋找條件就算知足
-not :邏輯非,在命令中可用「!」表示。該運算符表示查找不知足所給條件的文件
-a:邏輯與,系統默認是與,可不加,表示只有當所給的條件都知足時,尋找條件纔算知足。
find /boot -size +1024k -o -name 「vmlinuz*」
find /home !-user hello -exec ls -ld {} \;
find命令:
格式:find /usr -mtime +/-數字
數字:數字前有 +(加號),大於數字的天數;數字前有 -(減號),小於數字的天數;沒有 +或 -,等於數字的天數。
例如:
find /usr -mtime 4 表示4天前那一天
find /usr -mtime -4 表示4天內
find /usr -mtime +4 表示4天前
格式:find [查找範圍] [查找條件] [動做]
經常使用動做:
-exec:將find查找的結果交給-exec後面的命令執行
-ok:比-exec動做多了一個確認
例子:find /home -user hello -exec ls -ld {} \; //中括號裏是find的查詢結果,「\」是命令結束符。
設置查找深度:(查找文件的範圍爲目錄樹深度的多少)
find 源目錄 -maxdepth 1 -type f
-maxdepth 查找最大深度
掛載光驅:
[root@dbserver6-1 ~]# mount /dev/sr0 /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only
/dev/sr0 第一個光驅
/dev/sr1 第二個光驅
··· ···
歸檔及壓縮命令
zip命令
用途:製做壓縮文件
格式:zip 壓縮文件名 文件1 文件2
壓縮目錄: zip -r 壓縮文件名 目錄名
unzip命令
用途:解壓縮文件
格式:unzip 【-l】壓縮文件名 -l解壓縮後列出基本信息
解壓到指定目錄: unzip -d 要解壓的壓縮文件名 目錄名
若是不指定,則解壓到當前目錄
gzip命令 :
用途:製做壓縮文件、解開壓縮文件
格式:gzip [-9] 文件名...
gzip -d .gz格式的壓縮文件
經常使用命令選項
-9:表示高壓縮比,取值1-9,默認爲6
-d:用於解壓縮文件,同unzip命令
-c:將輸出重定向到標準輸出
zcat命令:
用途:查看壓縮文件內容
格式:zcat 壓縮文件名
bzip2命令:
用途:製做壓縮文件、解開壓縮文件
格式:bzip2 [-9] 文件名...
bzip2 -d .bz2格式的壓縮文件
經常使用命令選項
-9:表示高壓縮比,取值1-9,默認爲6
-d:用於解壓縮文件,同bunzip2命令
-c:將輸出重定向到標準輸出
bzcat命令:
用途:查看壓縮文件內容
格式:bzcat 壓縮文件名
tar命令
用途:製做歸檔(打包)文件、釋放歸檔文件,(能夠歸檔壓縮,也能夠不壓縮)
格式:tar [選項]... 歸檔文件名 源文件或目錄
tar [選項]... 歸檔文件名 [-C 目標目錄]
經常使用命令選項
-c:建立 .tar 格式的包文件
-x:解開.tar格式的包文件
-v:輸出詳細信息
-f:表示使用歸檔文件(選項後面必須是歸檔文件名)
-t:列表查看包內的文件
-p:保持原文件的原來屬性
-P:保持原文件的絕對路徑
-C:建包或解包時進入指定的目錄
-z:調用gzip程序進行壓縮或解壓
-j:調用bzip2程序進行壓縮或解壓
-J:調用xz程序進行壓縮或解壓
-A:追加歸檔文件到另外一個歸檔文件裏去
-r:追加文件到歸檔文件中
-cf:建立存檔。從兩個文件中建立tar包。
-tvf:列出存檔中的全部文件。
-xf:從archive.tar中提取全部文件。
-A:--catenate, 將tar文件鏈接到歸檔文件
-d: 查找歸檔和文件系統之間的差別
--delete: 從檔案中刪除(不是在mag磁帶上!)
-u : 只追加檔案中較副本更新的檔案
--test-label: 測試存檔卷標籤並退出
tar命令注意事項:
必定要注意絕對路徑和相對路徑問題,推薦使用相對路徑。
使用z或j壓縮的文件,解壓縮的時候不須要加上z或j,tar直接能夠識別。
tar對目錄和文件均可以進行操做,gzip和bzip2只能對文件進行操做。
查找歷史命令
Ctrl + r 查找歷史命令
history 查看歷史命令
重複運行歷史命令:
!歷史命令的編號
!! 運行上一個歷史命令
!rpm 調用以rpm開頭的最近的歷史命令