Linux命令總結(部分說明)
1、登陸和開關機
關機
halt poweroff init 0
重啟
reboot init 6 shutdown shutdown -r 重啟
shutodwn -h 關機 shutdown -c 取消計劃關機 shutdown +0 馬上關機 +1 一分鐘後關機
-X X分鐘後關機 20:00 今天20:00關機
whoami 顯示當前的登錄用戶名
who am i 顯示當前的登錄用戶名 終端名 登錄時間
who 顯示當前所有的登錄用戶名 終端名 登錄時間
w 顯示當前所有的登錄用戶名 終端名 登錄時間 登錄的來源 當前在做什麽
2.切換用戶與當前工作目錄
su – 用戶名 切換用戶,並切換至用戶家目錄
su 用戶名 非登陸切換用戶
cd 相對或者絕對路徑 進入目錄
-P 如果目標目錄是個軟鏈接目錄,則直接進入其源始目錄
.. 進入上一級目錄
cd 進入家目錄
cd ~或直接 cd 進入家目錄
cd – 進入上一次的工作目錄
pwd 獲取當前目錄路徑
3.基本常用命令
date 獲取系統時間
date -s “2018-1-20 13:50:11” 設置系統時間
hwclock 或 clock 獲取原子時間
-s 將硬時間寫入軟時間。
-w 將軟時間寫入硬時間。
cal 獲取日歷
history 獲取命令的歷史記錄
hostname 獲取主機名
中斷命令
ctrl+C 強制中斷
ctrl+d 正常中斷
4.幫助命令文檔查詢
type 用來判斷命令的類型
enable 管理顯示內部命令
enable command 禁用內部命令
enable -n command 激活已禁用的內部命令
help 內部命令
外部命令 –help
查看指定命令的幫助信息
whereis command 查看命令的路徑(外部命令)和 幫助文檔的路徑
which command 查看命令路徑
man 檢索命令幫助文檔
5.文件查詢
ls 列出目錄的內容
ls 列出目錄的內容
-a 列出所有文件(包含隱藏文件)
-A 列出所有文件(包含隱藏文件但不包含.和..)
-l 長列出(即顯示屬性信息)
-R 遞歸
-ld 查看指定目錄的屬性
-1 豎顯示
stat 文件名
查看一個文件的詳細屬性,包括三個時間戳。
file 文件路徑 判斷文件的類型
-b 只顯示辨識結果,不顯示文件名
-f 文件路徑 根據文件內容,將其中的文件分別辨識
cat 文件名 查看文件內容
vim 文件名 查看並編輯文件
6,新建文件, 移動、復制、刪除文件
touch newfile 創建空文件
touch oldfile 更新文件的三個時間戳
touch -a oldfile 更新文件的atime和ctime
touch -m oldfile 更新文件的mtime和ctime
touch -t 201802122021.59 fstab
touch -c newfile 若文件存在則更新時間戳,若不存在不創建
mkdir
-p 一次性創建多級目錄,無論父級目錄是否存在。
-v 創建時顯示信息
-m mode 創建時直接指定權限
rmdir 刪除空目
cp src dst 被復制文件路徑 新文件或被覆蓋文件路徑
-i 覆蓋時提示
-r 遞歸,可復制目錄
–preserv=mode 權限不變
–preserv=owner 權限及所屬關系不變
–preserv=timestamp 時間不變
–preserv=all 以上全變
-p 等於 –preserv=mode,owner,timestamp 復制時保留權限,時間不變
-d 復制軟鏈接
-v 顯示復制過程
-a 以上全部
-f 當dst已存在,但當前用戶對其沒有w權限,導致無法直接覆蓋,如果當前用戶對所在目錄有wx權限,即可創建和刪除文件,那麽,加上-f後,會先刪除文件,再創建新文件,最後再填充內容與src一致。
mv src dst
若dst不存在,則改名。
-i 若dst已存在,則詢問是否覆蓋
-f 抵消掉-i的作用,直接覆蓋,不詢問
rm 刪除
rm 文件名
-i 詢問是否刪除
-f 抵消掉-i的作用,直接刪除,不詢問
-r 遞歸,刪除目錄
ls |xargs rm -rf 當刪除的文件數量過多,超過了所支持的參數數量上限時,可配合管道及xargs來刪除。
–no-preserve-root
7.文本處理命令
tr
[set1] [set2 將set1轉換成set2,set1的位數多於set2時,多出的位數全轉成 set2的最後一位,如tr abcd ef 即a轉成e,bcd均轉成f
-d [set1] 刪除set1的字符
-c [set1] [set2 除了set1以外的剩下其他字符都轉換set2(換行符也會被轉)
-cd [set1] 刪除除set1以外的字符
-s [set1] 將連續重復的字符轉為一個
cut -d分隔符(只能是單個字符) -f取哪一列 文件名
-output-delimiter=分隔符 表示輸出的分隔符。默認為原文件分隔符
-fn,m 或 -fn-m
-cn,m 或 -cn,m -cn
sort
-t分隔符
-k以分隔符的第幾列排序
-n以數字方式排序
-r倒序排列
-u去除重復項
-f忽略大小寫
uniq 去重
uniq 去除連續的重復行,僅保留一行
-u 去除連續的重復行,不保留
-d 僅顯示重復的行,去除不重復的行
-c 顯示的結果前顯示重復的次數
8.正則表達式grep 和 sed
grep
–color=auto 關鍵字高亮顯示
-v 反選
-n 顯示行號
-c 顯示匹配行的數量
-i 忽略大小寫
-q 靜默
-A n 顯示關鍵字及其下n行
-B n 顯示關鍵字及其上n行
-C n 顯示關鍵字及其上下n行
-e:實現多個選項間的邏輯or關系
-w:匹配整個單詞
-E 或 egrep 使用擴展正則
-F 或 fgrep 不使用正則
sed
-i 更改原文件
-i.bak 在更改前將原文件備份為.bak
-n 不打印
-e 多模式
-f sed.txt 指定scripts的文件
-r 指定擴展正則
p打印
d刪除
a在指定行後增加
i在指定行前增加
c替換指定行
w將模式空間的行寫入指定文件
r將文件中的內容讀入模式空間
=: 為模式空間中的行打印行號
!:模式空間中匹配行取反處理
Linux命令的語法格式:
COMMAND options arguments
選項:定義命令的執行特性
長選項:--引導,後跟單詞,如 --help,--verbose
短選項:-引導,後跟單個字符,如-h,-l,-a
多個短選項可以組合: -h, -l , -a = -hla
有些選項也可以帶參數
參數:定義命令的作用對象
ls : 列出指定目錄下的文件
-l : 長格式顯示文件的詳細屬性
文件類型
屬主、屬組及其它用戶的權限
文件被硬鏈接次數
屬主
屬組
文件的大小
文件最後一次被修改的時間
時間戳:
最後一次被訪問
最後一次被修改:內容
最後一次被改變:屬性
-a : 顯示所有文件,包括隱藏文件
-A : 跟-a功能相同,但不顯示.和..;
. : 當前目錄;
.. : 上級目錄;
-n : 以用戶級組的id號排序;
-h : 文件大小會自動進行單位換算;
-r :文件名逆序顯示;
-R:遞歸顯示;
-1 : 縱向列表顯示,列表過濾或需要復制縱向結果時常用。
執行歷史命令數據的快捷方法
!# : 執行歷史中的第#條;
!-#: 執行歷史中的倒數第#條;
!! : 命令歷史中的最後一條命令;
!string : 執行命令歷史中最近一條以“string”開頭的命令
Ctrl+r 輸入”string”: 搜索命令歷史中最後一條以“string”開頭的命令
COMMAND !$ 使用上一個命令的參數 也可用Alt+. 或 Esc .
系統時鐘與硬件時鐘的同步
hwclock
-w : 以系統時鐘為準,將硬件時間修改為系統時間
-s : 以硬件時鐘為準,將系統時間修改為硬件時間
Linux FHS標準目錄結構:
/ : 根目錄;
/bin : 二進制,可執行的命令;
/sbin : 可執行命令,僅用於管理,通常管理員才權限使用;
/boot : 引導,操作系統用於引導系統啟動的文件,內核、grub;
/dev : 設備文件;
Linux的設備類型;
字符設備:c, 線性設備
塊設備 : b, 隨機設備
/etc : 配置文件;
/home : 用戶的家目錄,/home/USERNAME, jerry,/home/jerry;
/root : 管理員的家目錄;
/lib, /lib64 : 庫文件
/media : 掛載點目錄,通常用於掛載便攜性設備,如U盤;
/mnt : 掛載點目錄,掛載額外的文件系統;
/misc : 備份目錄;
/opt :可選目錄,通常第三方軟件偶爾安裝於此路徑下;
/proc : 偽文件系統:內存中內核的映射;
/selinux : 安全加強的Linux;
/srv : 屬於服務的中間數據存儲位置;
/sys : 偽文件系統,通常用於訪問硬件設備屬性信息;
/tmp : 臨時文件目錄;
/usr : 存儲只讀文件;
/var : 經常會發生變化的文件;比如說日誌等;
切換到家目錄的常用快捷方法
cd ~
cd
cd ~USERNAME : 切換到USERNAME的家目錄;
cd - : 在上個目錄和當前之間切換;
dirname : 顯示指定路徑的目錄
在寫腳本的時候常用來獲取相應腳本的所在目錄
例:
test.sh 腳本內容如下
base_dir=$(cd `dirname $0` && pwd)
echo $base_dir
執行結果 : 是test.sh的所在目錄
bash支持命令行展開:{}
分別創建這四個目錄 a_b,a_d,c_b,c_d
方法一: mkdir a_b a_d c_b _c_d
方法二: mkdir {a,c}_{b,d} –v
分別創建這幾個目錄 x/y, x/z, x/y/a, x/y/b, x/m
mkdir x/{y/{a,b},z,m}
文件相關的命令:
查看:
cat , tac : 正向和反向輸出文件內容
more/less
more : 向後翻,在翻至文件尾部前允許向前翻
less : 向前後都可以
head/tail
head : 文件的前n行 默認10行
tail : 文件的後n行 默認10行
-n : 指定輸出n行
tail -f : 實時輸出文件尾部內容;退出使用Ctrl+C;
id命令:
id - print real and effective user and group IDs
id [OPTION]... [USER]
常用選項:
-u:查看uid
username:查看用戶是否存在
在centos6.x中uid:
0:root用戶
1-499:系統用戶
500-65534:普通用戶
在centos7.x中uid:
0:root用戶
1-999:系統用戶
1000-65534:普通用戶
查看當前shell類型:
~]# echo $SHELL
shell的配置文件:/etc/shells
~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
顯示提示符格式:\\u:user \\h:host \\w:present path
~]# echo $PS1
[\\[email protected]\\h \\W]\\$
自定義提示格式:PS1=[.....]
PS1:
\\u: 當前用戶名
\\h: 主機名
\\H: FQDN,完整格式的主機名
\\W:當前工作目錄的基名
\\w: 當前工作目錄絕對路徑
\\$: 提示符
當前使用命令查看:type
內嵌:type cd 查看幫助手冊:help cd
外部:type mkdir
hash命令:
搜索外部命令路徑的結果緩存至key-value中
hash:顯示緩存
hash -r:清空緩存
hash -d:清空指定命令的緩存 如:hash -d ls
命令的執行的順序:先找內部命令->緩存外部->外部命令,按照$PATH來找。
alias命令:
顯示系統的別名,和設別名。
選項:
alias ls=’ls --color=auto’ 設置別名
unalias ls 取消別名
which命令:
顯示命令的位置所在
which COMMAND which mkdir
whereis命令:
顯示命令的幫助文檔和命令所在的位置
date命令:
顯示系統的時間
選項:
-s:修改系統時間
date: 日期和時間
date [options] [+FORMAT]
%s: 時間戳計時法,從Unix元年(1970-01-01 00:00:00)到此刻所經過的秒數
%F, %D
%T
%Y
%m
%d
%H
%M
%S
date [MMDDhhmm[[CC]YY][.ss]]
Linux有兩個時鐘:系統時鐘和硬件時鐘
硬件時鐘:
系統時鐘:Linux
hwclock
-s: 以硬件為準
-w:以系統為準
ntp: Network Time Protocol
通過網絡同步系統時間
C/S: Server, Client
ntpdate SERVER
screen命令:
screen - screen manager with VT100/ANSI terminal emulation
安裝screenrpm包:
rpm -i /media/CentOS_6.8_Final/Packages/screen-4.0.3-19.el6.x86_64.rpm
執行:screen -x chen
在另一端執行:screen -ls screen -rchen
echo命令:
功能:回顯
選項:
\\a:發出警報
\\b:退格
\\c:不加上換行符
\\n:換行且換標移道行首
\\e:轉義
~]# echo -e "\\033[42;31mman\\033[0m"
~]# echo -e "\\033[41;36m something here \\033[0m"
shell腳本中echo顯示內容帶顏色顯示,echo顯示帶顏色,需要使用參數-e
格式如下:
echo -e "\\033[字背景顏色;文字顏色m字符串\\033[0m"
例如:
echo -e "\\033[41;36m something here \\033[0m"
其中41的位置代表底色, 36的位置是代表字的顏色
註:
1、字背景顏色和文字顏色之間是英文的""
2、文字顏色後面有個m
3、字符串前後可以沒有空格,如果有的話,輸出也是同樣有空格
下面是相應的字和背景顏色,可以自己來嘗試找出不同顏色搭配
例
echo -e “\\033[31m 紅色字 \\033[0m”
echo -e “\\033[34m 黃色字 \\033[0m”
echo -e “\\033[41;33m 紅底黃字 \\033[0m”
echo -e “\\033[41;37m 紅底白字 \\033[0m”
字顏色:30—–37
echo -e “\\033[30m 黑色字 \\033[0m”
echo -e “\\033[31m 紅色字 \\033[0m”
echo -e “\\033[32m 綠色字 \\033[0m”
echo -e “\\033[33m 黃色字 \\033[0m”
echo -e “\\033[34m 藍色字 \\033[0m”
echo -e “\\033[35m 紫色字 \\033[0m”
echo -e “\\033[36m 天藍字 \\033[0m”
echo -e “\\033[37m 白色字 \\033[0m”
字背景顏色範圍:40—–47
echo -e “\\033[40;37m 黑底白字 \\033[0m”
echo -e “\\033[41;37m 紅底白字 \\033[0m”
echo -e “\\033[42;37m 綠底白字 \\033[0m”
echo -e “\\033[43;37m 黃底白字 \\033[0m”
echo -e “\\033[44;37m 藍底白字 \\033[0m”
echo -e “\\033[45;37m 紫底白字 \\033[0m”
echo -e “\\033[46;37m 天藍底白字 \\033[0m”
echo -e “\\033[47;30m 白底黑字 \\033[0m”
最後面控制選項說明
\\33[0m 關閉所有屬性
\\33[1m 設置高亮度
\\33[4m 下劃線
\\33[5m 閃爍
\\33[7m 反顯
\\33[8m 消隱
\\33[30m — \\33[37m 設置前景色
\\33[40m — \\33[47m 設置背景色
\\33[nA 光標上移n行
\\33[nB 光標下移n行
\\33[nC 光標右移n行
\\33[nD 光標左移n行
\\33[y;xH設置光標位置
\\33[2J 清屏
\\33[K 清除從光標到行尾的內容
\\33[s 保存光標位置
\\33[u 恢復光標位置
\\33[?25l 隱藏光標
\\33[?25h 顯示光
命令擴展、被包括起來的集合
whatis命令:
whatis - search the whatis database for complete words.
如何獲取命令幫助:
內置命令:help COMMAND
例如:help history
外部命令:
1、COMMAND --help
2、手冊:manual
man [#] COMMAND
如何查看指定命令在哪些章節下有幫助:
whatis COMMAND
註意:whatis根據數據庫執行查找操作,此庫為系統定期更新;可使用makewhatis手動更新;
man的使用機制:
翻屏:
空格鍵:向文件尾部翻一屏
b: 向文件首部翻一屏
回車鍵:向文件尾部翻一行
k: 向文件首部翻一行
Ctrl+d: 向文件尾部翻半屏
Ctrl+u: 向文件首部翻並屏
字串搜索:
/keyword: 從文件首部向尾部進行搜索
?keyword: 從文件尾部向首部進行搜索
n: 顯示找到的下一個
N:顯示找到的上一個
退出:q
3、info命令:獲取在線文檔
僅在man手冊無法獲取到足夠信息,或想了解程序的開發歷史時才使用info
4、很多應用程序都自帶有幫助文檔:/usr/share/doc/
ChangeLog: 程序版本升級的變動情況
INSTALL: 安裝方法說明
README:程序說明信息
安裝vmware-tools:
cd /media/VMware\\ Tools/
ls
cp VMwareTools-10.0.0-2977863.tar.gz /testdir/
cd /testdir/
tar xvf VMwareTools-10.0.0-2977863.tar.gz
cd vmware-tools-distrib/
./testdir/vmware-tools-distrib/vmware-install.pl d
reboot
圖形界面開機免密碼登錄:在/etc/gdm/custom.conf [daemon]下添加如下代碼:
vi /etc/gdm/custom.conf
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=root
命令別名:
alias
\\COMMAND : 使用命令自身,而不使用與命令名稱同名的別名;
例:在root用戶下使用cp復制文件需要覆蓋時默認會提示因為root用戶默認別名為 alias cp=’cp -i’, 使用\\cp 則 不提示直接覆蓋
通配符:bash 支持文件通配 ,globbing
* : 任意長度的任意字符;
?:任意單個字符
[] : 指定範圍內的憑單單個字符;[a-z]
[0-9] : 所有的數字
[a-z] : 所有的小寫字母
[A-Z] : 所有的大寫字母
[a-zA-Z]:所有的字母
[0-9a-zA-Z]:所有的數字和字母
不區分大小寫;
字符集合(過濾文件內容時使用下面的集合比上面的字符更準確):
[:digit:] : 所有數字,相當於0-9
[0-9], [[:digit:]]
[:lower:] : 所有的小寫字母
[:upper:] : 所有的大寫字母
[:alpha:] : 所有的字母
[:alnum:] : 相當於[0-9a-zA-Z]
[:space:] : 空白字符
[:punct:] : 所有標點符號
[^] : 脫字符,取反,指定範圍外的任意單個字符,[^0-9]
Linux 文件類型:
普通文件(-):a.html, b.txt , c.ppt , ls
目錄文件(d):
特殊文件:
塊設備文件(b):
字符設備(c):
符號鏈接文件(l) :
命名管道文件(p) : pipe
套接字文件 (s): socket
判斷普通文件的內容的類型,使用file命令;
# file FILE
Linux命令總結(部分說明)