一、常用命令介紹
在linux系統中存在很多命令,這些命令可以幫助我們完成不同的工作,在這裡面我們先介紹一些常用的基礎命令,這些命令可以幫助我們完成對應的基本操作,隨著以後的學習,我們還會接觸到更多可以幫助我們完成不同工作的linux命令,我們來一起看一下這些基礎命令都有哪些
1. 開關機命令
sync: 將緩衝區的數據同步到磁碟中(關機,重啟前都需要執行,避免數據丟失),在Linux系統中,當數據需要存入磁碟時,通常會先放到緩衝區內,等到適當的時刻再寫入磁碟,如此可提高系統的執行效率
shutdown 以一種安全的方式關閉系統。所有登陸用戶都可以看到關機信息提示,並且禁止登陸
-k 並非真正關機,只向所有人顯示警告信息。
如:shutdown -k +5
-r 重啟。默認延遲一分鐘
如:shutdown -r +3 "shutdown in 3 minutes"
-h 關機。默認延遲一分鐘
如:shutdown -h 12:00/shutdown -h now
-f 重啟時跳過磁碟檢測。
-F 重啟時強制磁碟檢測。
-c 取消shutdown
2 .系統信息
uname
-s 輸出內核名稱
-n 輸出網絡節點上的主機名
-r 輸出內核發行號
-v 輸出內核版本
-m 輸出主機的硬體架構名稱
-p 輸出處理器類型或"unknown"
-i 輸出硬體平台或"unknown"
-o 輸出作業系統名稱
-a 以如下次序輸出所有信息。其中若-p和-i的結果不可知則省略
hostname 查看主機名
hostnamectl set-hostname hello
date 查看和設置時間
時間方面:
%n : 下一行
%t : 跳格 tab
%H : 小時(00..23)
%I : 小時(01..12)
%k : 小時(0..23)
%l : 小時(1..12)
%M : 分鐘(00..59)
%p : 顯示本地 AM 或 PM
%r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M)
%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數
%S : 秒(00..60)
%T : 直接顯示時間 (24 小時制)
%X : 相當於 %H:%M:%S
%Z : 顯示時區
日期方面:
%a : 星期幾 (Sun..Sat)
%A : 星期幾 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接顯示日期與時間
%d : 日 (01..31)
%D : 直接顯示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第幾天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)
%w : 一周中的第幾天 (0..6)
%W : 一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)
%x : 直接顯示日期 (yyyy-mm-dd)
%y : 年份的最後兩位數字 (00.99)
%Y : 完整年份 (0000..9999)
[root@manage01 ~]# date '+%I%M%S'
025929
[root@manage01 ~]# date '+%r'
上午 02時59分49秒
[root@manage01 ~]# date '+%s'
1584428402
[root@manage01 ~]# date '+%Z'
EDT
[root@manage01 ~]# date '+%a'
二
[root@manage01 ~]# date '+%A'
星期二
[root@manage01 ~]# date '+%b'
3月
[root@manage01 ~]# date '+%B'
三月
[root@manage01 ~]# date '+%c'
2020年03月17日 星期二 03時01分36秒
[root@manage01 ~]# date '+%T%n%D'
03:03:35
03/17/20
[root@manage01 ~]# date '+%T%t%D'
03:03:58 03/17/20
[root@manage01 ~]# date -s 2021-10-25
2021年 10月 25日 星期一 00:00:00 EDT
[root@manage01 ~]# date -s 18:00
2021年 10月 25日 星期一 18:00:00 EDT
[root@manage01 ~]# date -s 18:30:21
2021年 10月 25日 星期一 18:30:21 EDT
[root@manage01 ~]# date -s "2021-04-28 15:30:20"
2021年 04月 28日 星期三 15:30:20 EDT
3 .文件和目錄
cd /etc: 進入到/etc這個目錄
pwd: 查看當前的工作路徑
-P 顯示實際位置
-L 顯示所在位置
[root@manage01 ~]# cd /
[root@manage01 /]# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@manage01 /]# cd bin/
[root@manage01 bin]# pwd
/bin
[root@manage01 bin]# pwd -P
/usr/bin
[root@manage01 bin]# pwd -L
/bin
ls: 查看當前目錄下有哪些文件
-a 列出目錄下的所有文件,包括以 . 開頭的隱含文件。
-A 顯示除 「.」和「..」外的所有文件。
-B 不輸出以 「~」結尾的備份文件。
-c 與lt一起使用,顯示並按照修改時間(ctime)排序,與l一起使用,顯示修改時間,按名稱排序。
-d 將目錄象文件一樣顯示,而不是顯示其下的文件。
-f 對輸出的文件不排序,使用此選項後aU選項生效,lst選項失效
-F 在每個文件名後附上一個字符以說明該文件的類型,「*」表示可執行的普通文件;「/」表示目錄;「@」表示符號連結;「|」表示FIFOs;「=」表示套接字(sockets)。
-g 類似l但是不顯示所有者
-h 與l一起,以易於閱讀的格式輸出文件大小(例如 1K 234M 2G)
-i 輸出文件的i節點的索引信息。
-k 以k位元組的形式表示文件的大小。--si類似k但是以1000為進位而非1024
-l 列出文件的詳細信息。
-L 遇到連結文件是,顯示原文件的信息,而非連結信息
-m 橫向輸出文件名,並以「,」作分格符。
-n 類似l,但是用數字的 UID,GID 代替名稱。
-o 顯示文件的除組信息外的詳細信息。
-p 目錄後面加上/標識
-q 用?代替不可輸出的字符。
-r 對目錄反向排序。
-s 在每個文件名後輸出該文件的大小。
-t 以修改時間排序。
-u 與lt一起使用,以訪問時間(atime)排序;與l一起使用顯示訪問時間,按照名稱排序
-x 按列輸出,橫向排序。
-Q 把輸出的文件名用雙引號括起來。
-R 列出所有子目錄下的文件。
-S 以文件大小排序。
-X 以文件的擴展名(最後一個 . 後的字符)排序。
-1 一行只輸出一個文件。
--color=no 不顯示彩色文件名
--help 在標準輸出上顯示幫助信息。
--version 在標準輸出上輸出版本信息並退出。
mkdir 建立目錄
-m 設置權限模式(類似chmod)
-p 需要時創建目標目錄的上層目錄,但即使這些目錄已存在也不當作錯誤處理
-v 每次創建新目錄都顯示信息
-Z 將每個創建的目錄的SELinux 安全環境設置為CTX
touch 建立文件
-a 只更改訪問時間
-c 不創建任何文件
-m 只更改修改時間
-r 使用指定文件的時間屬性替代當前時間
-t 使用[[CC]YY]MMDDhhmm[.ss] 格式的時間替代當前時間
[root@manage01 ~]# stat hello
文件:hello
大小:0 塊:0 IO 塊:4096 普通空文件
設備:fd00h/64768d Inode:34502264 硬連結:1
權限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近訪問:2020-03-17 16:51:35.502961371 -0400
最近更改:2020-03-17 16:51:35.502961371 -0400
最近改動:2020-03-17 16:51:35.502961371 -0400
創建時間:-
[root@manage01 ~]# touch -a -t 202002010101.30 hello
[root@manage01 ~]# stat hello
文件:hello
大小:0 塊:0 IO 塊:4096 普通空文件
設備:fd00h/64768d Inode:34502264 硬連結:1
權限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近訪問:2020-02-01 01:01:30.000000000 -0500
最近更改:2020-03-17 16:51:35.502961371 -0400
最近改動:2020-03-17 16:51:53.143475189 -0400
創建時間:-
[root@manage01 ~]# touch -m -t 202002050101.30 hello
[root@manage01 ~]# stat hello
文件:hello
大小:0 塊:0 IO 塊:4096 普通空文件
設備:fd00h/64768d Inode:34502264 硬連結:1
權限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近訪問:2020-02-01 01:01:30.000000000 -0500
最近更改:2020-02-05 01:01:30.000000000 -0500
最近改動:2020-03-17 16:52:07.837453512 -0400
創建時間:-
#將hello-linux.txt的屬性改成與anaconda-ks.cfg一樣
[root@manage01 ~]# stat hello-linux.txt
文件:hello-linux.txt
大小:12 塊:8 IO 塊:4096 普通文件
設備:fd00h/64768d Inode:34513350 硬連結:1
權限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近訪問:2020-03-17 22:50:51.319377144 -0400
最近更改:2020-03-17 22:50:45.909483733 -0400
最近改動:2020-03-17 22:50:45.912483674 -0400
創建時間:-
[root@manage01 ~]# stat anaconda-ks.cfg
文件:anaconda-ks.cfg
大小:1378 塊:8 IO 塊:4096 普通文件
設備:fd00h/64768d Inode:34973658 硬連結:1
權限:(0600/-rw-------) Uid:( 0/ root) Gid:( 0/ root)
最近訪問:2020-03-16 23:08:34.121427663 -0400
最近更改:2020-02-04 15:01:33.273959663 -0500
最近改動:2020-03-18 16:33:48.873881970 -0400
創建時間:-
[root@manage01 ~]# touch -r anaconda-ks.cfg hello-linux.txt
[root@manage01 ~]# stat hello-linux.txt
文件:hello-linux.txt
大小:12 塊:8 IO 塊:4096 普通文件
設備:fd00h/64768d Inode:34513350 硬連結:1
權限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近訪問:2020-03-16 23:08:34.121427663 -0400
最近更改:2020-02-04 15:01:33.273959663 -0500
最近改動:2020-03-18 18:22:48.694597233 -0400
創建時間:-
rm 刪除文件或目錄
-f 強制刪除。忽略不存在的文件,不提示確認
-i 在刪除前需要確認
-I 超過三個文件或者遞歸刪除前要求確認。比-i提示內容更少
-d 刪除空目錄
-r 遞歸刪除目錄及其內容
這些命令都是初學者可能會經常用到的,大家可以在自己的虛擬機上練習一下
cp 拷貝
-i 覆蓋前詢問(使前面的 -n 選項失效)
-n 不要覆蓋已存在的文件(使前面的 -i 選項失效)
-R, -r, --recursive 遞歸複製目錄及其子目錄內的所有內容
-s 只創建符號連結而不複製文件
-f 強制,將目標文件無法打開則將其移除並重試
mv 移動/改名
-f 覆蓋前不詢問
-i 覆蓋前詢問
-n 不覆蓋已存在文件
#如果您指定了-i、-f、-n 中的多個,僅最後一個生效。
cat 查看文件內容
-A 等價於-vET
-b 對非空輸出行編號
-e 等價於-vE
-E 在每行結束處顯示$
-n 對輸出的所有行編號
-s 不輸出多行空行
-t 與-vT等價
-T 將跳格字符(tab)顯示為 ^I
-v 使用^和M
二、常用符號
* 任意字符串
? 任意字符
/ 路徑間隔符
~ 當前用戶的家目錄 管理員家目錄為/root,其它用戶的家目錄在/home/用戶名