1. 程式人生 > >Linux命令及操作

Linux命令及操作

一、Linux檢視資訊命令

1.Linux 命令幫助

(1)man + 命令 例:man uname (檢視命令手冊)第一種字典

(2)info +命令 例:info clear (線上文件) 第二種字典

(3)命令+ –help 例: Uname –help (可能命令不支援help字典查詢 第三種字典)

2.如何檢視Linux系統資訊

(1)檢視核心版本資訊

uname -a

(2)檢視Linux的當前作業系統版本資訊

cat /proc/version (按tap鍵可以補全)

(3)檢視當前Linux產品發行版本資訊

cat /etc/issue或/etc/redhat-release

二、Linux基礎命令分類

1.目錄、檔案操作

新建:
# mkdir 新建目錄名
# mkdir abc # 在當前工作目錄下建立空abc目錄
# mkdir -p b1/b2 # -p選項如果父目錄不存在則直接建立
修改目錄名稱:
# mv 目錄 目錄
#mv /root/a1 / #mv將/root目錄下a1目錄 剪下到/目錄下
刪除:
#rmdir 目錄
#rm 刪除一個檔案或目錄
#rm -r #遞迴刪除,通常跟d結合,刪除一個完整目錄及其子目錄
-f #不提示刪除

#rmdir -p a1/a2 #-p選項如果父目錄不存在直接刪除​

        [
[email protected]
/]# mkdir -p /a1/a2/a3 [[email protected] /]# mkdir -p /a1/b2/c3 [[email protected] /]# tree /a1 /a1 ├── a2 │ └── a3 └── b2 └── c3

        [[email protected] /]# rmdir -p /a1/a2/a3  
        rmdir: 刪除目錄 "/a1" 失敗: 目錄非空
        [
[email protected]
/]# tree /a1 /a1 └── b2 └── c3

例:同時刪除多個空目錄

            [root@localhost /]# mkdir -p /a1/a2/a3
            [root@localhost /]# mkdir -p /a1/b2/c3
            [root@localhost /]# rmdir -p a1/a2/a3   a1/b2/c3/

改變目錄
# cd/root
區分:linux中相對目錄和絕對目錄區分?
答:絕對目錄指中linux的根目錄出發;其餘都是相對目錄;
但是相對目錄有4個特殊目錄:
. : 當前工作目錄
.. : 上一級目錄
~ : 表示當前使用者的家目錄
- : 回到上一次工作目錄

顯示目錄內容
ls
例:

ls -l 分析
    drwx------   14 student  student      4096 1117 16:58 student

第一個字元表示檔案型別,它可以是下述型別之一:
- 普通檔案 d 目錄 l 符號連結 b 塊裝置檔案 c 字元裝置檔案

後面的9個字元表示檔案的訪問許可權,分為3組,每組3位。
第一組表示檔案屬主的許可權,
第二組表示同組使用者的許可權,
第三組表示其他使用者的許可權。
每一組的三個字 符分別表示對檔案的讀、寫和執行許可權。

各許可權如下所示:
r 讀
w 寫
x 執行。對於目錄,表示進入許可權。

切換工作目錄
cd
cd的特殊用法:進入上一級目錄
cd ..
進入該使用者主目錄(root 使用者進入/root,其餘使用者進入/home相應使用者)
cd ~ 或者是cd

顯示當前目錄
pwd

複製檔案或目錄
cp [選項] 原始檔或目錄 目標檔案或目錄
- f 覆蓋已經存在的目標檔案而不提示。

連線並顯示指定的一個和多個檔案的有關資訊。
cat、tac

more用於在終端按屏顯示文字檔案。less同more,區別是在顯示文字時,允許使用者使用上 下鍵前後翻閱檔案。
more、less

  例: 
    [root @www sung]# more /etc/passwd
    [root @www sung]# less /etc/passwd
    [root @www sung]# cat /etc/passwd | more
    [root @www sung]# cat /etc/passwd | less


head用於顯示文字檔案的前幾行。tail用於顯示文字檔案的後幾行。
head、tail
例:

    [root @www sung]# head -5 /etc/passwd
    [root @www sung]# tail -5 /etc/passwd

touch用於建立一個新檔案。
touch 檔名

為某一個檔案在另外一個位置建立一個符號連線。當需要在不同目錄用到相同檔案時。Linux允許使用者不用拷貝檔案,只需要將其它目錄檔案ln命令連結即可,這樣就不用重複地佔用磁碟空間。
ln [選項] 目標 目錄
使用說明:
“-s”引數表示建立符號連結。
ln的連結分為軟連結和硬連結兩種:軟連結即帶-s引數,它只會在使用者選定的位置生成檔案的映象(特殊的檔案)。硬連結是不帶-s引數的ln,硬連結並不生成新的檔案,而通過索引點進行連結。軟連結和硬連結都不會重複佔用磁碟空間。

grep 定位字元資訊 (對資料集的查詢)
grep 關鍵字 檔案
echo 顯示字串、變數等資訊**

練習
1.用ls > a.txt在/tmp資料夾建立一個檔案a.txt

注意空格 例:ls > /tmp/a.txtchong’ling

2.將a.txt拷貝到當前使用者目錄下

cp a.txt /~

3.在當前使用者目錄下建立sourcecode資料夾

mkdir ~/sourcecode

4.將sourcecode資料夾拷貝到/tmp下刪除/tmp下的資料夾sourcecode

rm -rg /tmp/*

5.使用cat、more、tail命令檢視/etc/passwd檔案的內容
cat與more、less結合應用 (做簡單的查ls a* 對a進行查詢)

cat /etc/passwd more etc/passwd
螢幕顯示/顯示檔案內容 結束程序Crtl+Z
cat| head tail顯示頭和尾| more less 分屏顯示

6.建立一個檔案a.txt, 寫入hello。在其當前目錄分別建立a.txt的軟硬連結r.txt,y.txt,觀察刪除a.txt後, r.txt(失效),y.txt(不變)是否有變化。重新建立一個a.txt,內容寫入world, 觀察兩個連結檔案有什麼變化。

echo ‘hello’ > a.txt
ln -s ./a.txt ./r.txt
ln ./a.txt ./y.txt

​2.程序操作

顯示當前系統中由該使用者執行的程序列表。
ps 顯示當前系統中由該使用者執行的程序列表
-e 顯示所有程序

輸出特定的訊號給指定PID的程序,並根據該訊號完成指定的行為。
kill 輸出特定的訊號給指定的程序,並根據該訊號而完成指定的行為
kill PID程序號
kill PID 終止程序
kill -9 PID 強制終止程序

3.壓縮文件操作

打包/壓縮命令
常用選項
-c 建立tar 檔案

-f 將檔案打包生成到一個檔案裡
tar –cf new.tar ./home/hxy

-x 對tar 進行解包
tar –xf new.tar

常見用法
針對zip格式
打包
tar cvzf soft.tar.gz /home/hxy 將/hoem/hxy目錄下檔案打包並壓縮

解包
tar xvzf abc.tar.gz 解包到當前目錄下
例:
tar jdk-8u144-linux-x64.tar.gz -C /usr/java解包到指定目錄下

針對biz2格式
打包
tar cvjf soft.tar.biz2 /home/hxy 將/hoem/hxy目錄下檔案打包並壓縮
解包
tar xvjf abc.tar.biz2 解包到當前目錄下
tar xvjf abc.tar.biz2 -C /home 解包到指定目錄下

4.網路操作

hostname 檢視當前主機名稱

將修改後主機和IP地址繫結
修改/etc/hosts
在該檔案尾部追加機器名和IP地址,獨立成行
echo IP地址 主機名 >> /etc/hosts
使用reboot重啟系統
以管理命令關閉系統: shutdown -h now
立刻關機 poweroff
立即重啟 shutdown -r now
取消重啟、關機(root使用者)shutdown –c

5.硬碟相關操作

fdisk 檢視硬碟分割槽情況
mount 磁碟掛載命令
umount 磁碟解除安裝命令
which 檢視可執行檔案的位置
whereis 檢視檔案的位置
locate 配合資料庫檢視檔案位置
find 實際搜尋硬碟查詢檔案 (常用)

df -hl 檢視磁碟剩餘空間

在指定目錄中搜索檔案。
find[路徑][選項][描述]
例: #find ./ -name c

6.資訊檢視相關操作命令

顯示開機資訊。
dmesg

關於系統相關的時間資訊。
uptime

hostname 域名
cal 日曆資訊
date 時間及日期資訊

調整時間:
date -s ‘2018/8/8 16:51:00’ #手工調整當前系統日期時間
date “+%Y/%m/%d %H:%M:%S” # 按指定格式顯示當前日期時間

7.其他命令

Shell I/O 重定向
cmd > file 把 stdout 重定向到 file 檔案中
cmd >> file 把 stdout 重定向到 file 檔案中(追加)

cron 定時任務

crontab //迴圈執行任務 (Ctrl+d 結束)

crontab

    -e  新增修改任務
    -r   刪除列表中的任務
    -l   檢視任務列表

檢視配置
cat /etc/crontab
例:
crontab 時間設定說明

45 10 * * 1-5 上午10:45,從週一至週五

0,30 * 13 * 5 星期五每半個小時,以及每月13號每半個 小時

55 23 * * 0-3,6 除了星期四和星期五之外的每天晚上11:55

計劃任務
crontab -e 文字編譯

使用cron執行任務計劃

通過檢視系統提供的crontab檔案,檢視cron命令

cat /etc/crontab
​​
啟動cron服務

systemctl stop crond

停止cron服務

systemctl restart crond

重啟cron服務

systemctl enable crond.service

設定cron開機啟動

檢視當前crontab,輸入 crontab -l

編輯當前crontab,輸入 crontab -e

刪除當前crontab,輸入 crontab -r
crontab檔案的例子:
30 21 * * * systemctl restart httpd.service
表示每晚21:30重啟apache。

45 4 1,10,22 * * systemctl restart httpd.service
表示每月1、10、22日的4 : 45重啟apache。

10 1 * * 6,0 systemctl restart httpd.service
表示每週六、週日的1 : 10重啟apache。

0,30 18-23 * * * systemctl restart httpd.service
表示在每天18 : 00至23 : 00每隔30分鐘重啟apache。

0 23 * * 6 systemctl restart httpd.service
表示星期六晚上11點重啟apache。

* /1 * * systemctl restart httpd.service
每一小時重啟apache

* 23-7/1 * * * systemctl restart httpd.service
晚上11點到早上7點之間,每隔一小時重啟apache

0 11 4 * mon-wed systemctl restart httpd.service
每月的4號與每週一到週三的11點重啟apache

0 4 1 jan * systemctl restart httpd.service
表示一月一號的4點重啟apache


實現每10秒重啟一次
* * * * * /bin/date >>/tmp/date.txt
* * * * * sleep 10; /bin/date >>/tmp/date.txt
* * * * * sleep 20; /bin/date >>/tmp/date.txt
* * * * * sleep 30; /bin/date >>/tmp/date.txt
* * * * * sleep 40; /bin/date >>/tmp/date.txt
注:
linux任務計劃命令cron
A: 編寫shell指令碼,副檔名.sh
B: 修改指令碼的許可權
chmod u+x 指令碼.sh
C: 為cron新增執行命令
crontab -e
進入vi編輯環境
0-59 * * * * 命令
或 執行某個自定義shell指令碼
0-59 * * * * /絕對路徑/xx.sh
D:啟動或重啟crond服務
systemctl start crond
E: 設定cron開機啟動
systemctl enable crond.service

F: 從cron的任務列表中刪除任務
crontab -r

向任務計劃追加命令
at追加任務
at 11:11am 回車

三、Linux下的文字編輯器Vi/Vim

1.移動游標與查詢命令

gg/G                 跳轉至第一行/最後一行
數字0鍵            移動到這一行的第一個字元處
$                       移動到這一行的最後一個字元處
n<enter>           移動到這個檔案的第n行(n為數字)
/word                在游標之後查詢一個名為word的字串
?word               從游標處向前查詢一個名為word的字串
n|N                   查詢下一個|上一個   

2.文字編輯相關指令

插入或新增字元等操作:

i , I       在當前游標所在處插入輸入的文字
a , A       由當前游標所在處的下一個字元開始輸入
o , O       從游標所在處的下一行行首開始輸入字元
r , R       r會替換游標所指的那個字元,R會一直替換                             
            游標所指的文字
cw          替換當前游標到單詞的末尾的內容
c$          替換當前游標到行末的內容

刪除字元操作:

x , X        在當前游標所在處刪除前面的字元      
dw           刪除當前游標處一個單詞
d$           從當前游標刪除至當前行末尾 
dd           刪除一行
d + n + ↑   刪除當前行及上面n行(n為數字)
d + n + ↓   刪除當前行及下面n行(n為數字)

恢復及複製字元相關操作:

u           撤消以前的操作
U           撤消在一行中所做的改動
ctrl + r    反撤消
yy          複製一行
y + n + ↑  複製當前行及上面n行(n為數字)
y + n + ↓  複製當前行及下面n行(n為數字)
v, y        選定內容,複製按鍵
p,P               粘帖剪下板內容於游標處

3.分頁操作指令

命令列狀態下:
按『sp』                分頁顯示
按『close』              關閉當前頁面
按『new』               新建頁面
按『wqall』             退出並儲存所有頁面
按『qall!』             不儲存退出所有頁面
按『ctrl+w』            頁面之間切換
按『e』filename         開啟文字檔案