1. 程式人生 > >第二章 Linux基礎之常用操作

第二章 Linux基礎之常用操作

這裡介紹的是一些非常基本的命令,在linux管理中經常用到,包括使用者建立、檔案操作、目錄操作、vim文字編輯等等。

使用者切換與建立

whoami命令:用於顯示自身使用者名稱稱

[[email protected] ~]# whoami
root

su命令:用於切換使用者

管理員登入(#)普通使用者登入($)
管理員切換到普通使用者不需要密碼,普通使用者切換到管理員需要密碼,普通使用者之間切換同樣需要密碼。

[[email protected] ~]# su – linux00
Last login: Mon Apr 16 09:54:49 EDT 2018 on :0
[

[email protected] ~]$ su
Password: 輸入密碼
[[email protected] linux00]#

useradd命令:用於新增一個使用者,只有管理員能夠操作。
passwd命令:設定使用者的登入密碼,只有管理員能夠操作。

[[email protected] ~]# useradd raoxiuyuan
[[email protected] ~]# passwd raoxiuyuan
Changing password for user raoxiuyuan.
New password: 輸入密碼
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 重新輸入密碼


passwd: all authentication tokens updated successfully.
[[email protected] ~]#

Shell快捷鍵

● Ctrl+a:調到命令列的開頭
● Ctrl+e:調到命令列的末尾
● Ctrl+u:將游標處到命令列開頭的內容清除
● Ctrl+k:將游標處到命令列末尾的內容清除
● Ctrl+r:在歷史記錄列表中搜索某一命令
● Ctrl+l:清屏

● history //顯示歷史命令(![number] 直接執行曾經執行過的命令)

目錄結構

pwd命令:檢視當前所在的路徑

[[email protected]

~]# pwd
/root

ls命令:檢視當前路徑下的檔案

-d:只看當前目錄的資訊
-l:檢視詳細資訊
-a:顯示所有檔案
-h:將檔案大小以易讀的方式顯示

[[email protected] /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[[email protected] /]# ls -alh
total 48K
drwxr-xr-x.  17 root root 4.0K Apr 17 05:23 .
drwxr-xr-x.  17 root root 4.0K Apr 17 05:23 ..
lrwxrwxrwx.   1 root root    7 Nov 17 04:05 bin -> usr/bin
dr-xr-xr-x.   3 root root 4.0K Nov 19 20:12 boot
drwxr-xr-x.  19 root root 3.1K Apr 17 05:25 dev
drwxr-xr-x. 133 root root 8.0K Apr 17 05:23 etc
drwxr-xr-x.   4 root root   37 Mar 20 02:50 home
lrwxrwxrwx.   1 root root    7 Nov 17 04:05 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Nov 17 04:05 lib64 -> usr/lib64
drwxr-xr-x.   3 root root   18 Nov 16 21:32 media
drwxr-xr-x.   2 root root    6 Mar 13  2014 mnt
drwxr-xr-x.   3 root root   15 Nov 17 04:13 opt
dr-xr-xr-x. 509 root root    0 Apr 17 05:23 proc
dr-xr-x---.  20 root root 4.0K Apr 17 05:25 root
drwxr-xr-x.  37 root root 1.2K Apr 17 05:25 run
lrwxrwxrwx.   1 root root    8 Nov 17 04:05 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 Mar 13  2014 srv
dr-xr-xr-x.  13 root root    0 Apr 17 05:23 sys
drwxrwxrwt. 125 root root 8.0K Apr 17 05:28 tmp
drwxr-xr-x.  13 root root 4.0K Nov 17 04:05 usr
drwxr-xr-x.  24 root root 4.0K Apr 17 05:23 var
[[email protected] /]# 

cd命令:使用者切換路徑

cd -:返回到之前的目錄
cd ..:返回到上一級目錄 “.”指當前目錄 “..”指上一級目錄
cd ~:到使用者所在的家目錄

[[email protected] ~]# cd ..
[[email protected] /]# cd ~
[[email protected] ~]# cd /tmp/
[[email protected] tmp]#

系統中檔案系統路徑(絕對路徑和相對路徑)

1.絕對路徑

在Linux中,絕對路徑是從/(也被稱為根目錄)開始的,比如/usr、/etc/X11.如果一個路徑是從/開始的,它一定是絕對路徑,這樣就好理解了。

[[email protected] ~]# pwd     //判斷使用者當前所處的位置,也就是說他到底位於哪?
/root                       //使用者當前位於/root.
[[email protected] ~]# cd /usr/share/doc/     //我們以絕對路徑方式進入/usr/share/doc目錄下。
[[email protected] doc]# pwd          //判斷使用者當前所處的位置。
/usr/share/doc               //使用者位於/usr/share/doc,看來已經達到我們的目的了。

2. 相對路徑

相對路徑是以 . 或 .. 開始的,. 表示使用者當前操作所處的位置,而.. 表示上級目錄;在路徑中,. 表示使用者當前所處的目錄,而.. 上級目錄,要把. 和.. 當做目錄來看。

[[email protected] ~]# pwd            //通過pwd來判斷當前使用者所在的位置。
/root                              //得出目錄處於/root目錄中。
[[email protected] ~]# cd .           //我們進入。
[[email protected] ~]# pwd            //判斷當前使用者所處的位置。
/root                              //得出在/root 目錄中 .
[[email protected] ~]# cd ..          //我們切入/root的上級目錄。
[[email protected] /]# pwd            //判斷當前使用者所處的位置。
/                                  //使用者當前位於/(根目錄)中。

touch命令:建立新的空檔案

[[email protected] test]# touch log2012.log log2013.log
[[email protected] test]# ll
-rw-r–r– 1 root root 0 10-28 16:01 log2012.log
-rw-r–r– 1 root root 0 10-28 16:01 log2013.log

目錄結構(目錄的含義)

1、/- 根
每一個檔案和目錄從根目錄開始。
只有root使用者具有該目錄下的寫許可權。請注意,/root是root使用者的主目錄,這與/.不一樣

2、/bin中 – 使用者二進位制檔案
包含二進位制可執行檔案。
在單使用者模式下,你需要使用的常見Linux命令都位於此目錄下。系統的所有使用者使用的命令都設在這裡。
例如:ps、ls、ping、grep、cp

3、/sbin目錄 – 系統二進位制檔案
就像/bin,/sbin同樣也包含二進位制可執行檔案。
但是,在這個目錄下的linux命令通常由系統管理員使用,對系統進行維護。例如:iptables、reboot、fdisk、ifconfig、swapon命令

4、/etc – 配置檔案
包含所有程式所需的配置檔案。
也包含了用於啟動/停止單個程式的啟動和關閉shell指令碼。例如:/etc/resolv.conf、/etc/logrotate.conf

hosts:裝置名稱(或域名)到ip地址的解析,相當於本地存在的dns功能。

5、/dev – 裝置檔案
包含裝置檔案。
這些包括終端裝置、USB或連線到系統的任何裝置。例如:/dev/tty1、/dev/usbmon0

6、/proc – 程序資訊
包含系統程序的相關資訊。
這是一個虛擬的檔案系統,包含有關正在執行的程序的資訊。例如:/proc/{pid}目錄中包含的與特定pid相關的資訊。
這是一個虛擬的檔案系統,系統資源以文字資訊形式存在。例如:/proc/uptime

7、/var – 變數檔案
var代表變數檔案。
這個目錄下可以找到內容可能增長的檔案。
這包括 – 系統日誌檔案(/var/log);包和資料庫檔案(/var/lib);電子郵件(/var/mail);列印佇列(/var/spool);鎖檔案(/var/lock);多次重新啟動需要的臨時檔案(/var/tmp);

8、/tmp – 臨時檔案
包含系統和使用者建立的臨時檔案。
當系統重新啟動時,這個目錄下的檔案都將被刪除。

9、/usr – 使用者程式
包含二進位制檔案、庫檔案、文件和二級程式的原始碼。
/usr/bin中包含使用者程式的二進位制檔案。如果你在/bin中找不到使用者二進位制檔案,到/usr/bin目錄看看。例如:at、awk、cc、less、scp。
/usr/sbin中包含系統管理員的二進位制檔案。如果你在/sbin中找不到系統二進位制檔案,到/usr/sbin目錄看看。例如:atd、cron、sshd、useradd、userdel。
/usr/lib中包含了/usr/bin和/usr/sbin用到的庫。
/usr/local中包含了從源安裝的使用者程式。例如,當你從源安裝Apache,它會在/usr/local/apache2中。

10、/home – HOME目錄
所有使用者用home目錄來儲存他們的個人檔案。
例如:/home/john、/home/nikita

11、/boot – 引導載入程式檔案
包含引導載入程式相關的檔案。
核心的initrd、vmlinux、grub檔案位於/boot下。
例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic

12、/lib – 系統庫
包含支援位於/bin和/sbin下的二進位制檔案的庫檔案.
庫檔名為 ld*或lib*.so.*
例如:ld-2.11.1.so,libncurses.so.5.7

13、/opt – 可選的附加應用程式
opt代表可選的。
包含從個別廠商的附加應用程式。
附加應用程式應該安裝在/opt/或者/opt/的子目錄下。

14、/mnt – 掛載目錄
臨時安裝目錄,系統管理員可以掛載檔案系統。

15、/media – 可移動媒體裝置
用於掛載可移動裝置的臨時目錄。
舉例來說,掛載CD-ROM的/media/cdrom,掛載軟盤驅動器的/media/floppy;

16、/srv – 服務資料
srv代表服務。
包含伺服器特定服務相關的資料。
例如,/srv/cvs包含cvs相關的資料。

[[email protected] ~]# ll /
total 40
lrwxrwxrwx.   1 root root    7 Nov 10 16:35 bin -> usr/bin
dr-xr-xr-x.   3 root root 4096 Nov 10 08:48 boot
drwxr-xr-x.  19 root root 3160 Apr 18 04:07 dev
drwxr-xr-x. 134 root root 8192 Apr 17 20:06 etc
drwxr-xr-x.   5 root root   54 Apr 16 11:33 home
lrwxrwxrwx.   1 root root    7 Nov 10 16:35 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Nov 10 16:35 lib64 -> usr/lib64
drwxr-xr-x.   3 root root   18 Feb  9 09:14 media
drwxr-xr-x.   4 root root   34 Feb  8 11:20 mnt
drwxr-xr-x.   3 root root   15 Nov 10 16:42 opt
dr-xr-xr-x. 554 root root    0 Apr 17 20:05 proc
dr-xr-x---.  15 root root 4096 Apr 18 04:08 root
drwxr-xr-x.  37 root root 1200 Apr 18 04:07 run
lrwxrwxrwx.   1 root root    8 Nov 10 16:35 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 Mar 13  2014 srv
dr-xr-xr-x.  13 root root    0 Apr 17 20:05 sys
drwxrwxrwt.  87 root root 8192 Apr 18 04:08 tmp
drwxr-xr-x.  14 root root 4096 Nov 30 06:56 usr
drwxr-xr-x.  24 root root 4096 Apr 17 20:05 var
[[email protected] ~]#

檔案操作

檔案型別 描述
d 表示目錄
表示檔案
l 連結檔案
b 裝置檔案,提供儲存的介面裝置
c 裝置檔案,提供序列的介面裝置(滑鼠、鍵盤)
檔案操作 單一來源 多來源
建立檔案 touch file1 touch file1 file2 file3
複製檔案 cp file1 file2 cp file1 file2 file3 dir ⑤
移動檔案 mv file1 file2 ① mv file1 file2 file3 dir ④
刪除檔案 rm file1 rm -f file1 file2 file3 ⑤
建立目錄 mkdir dir mkdir -p par1/par2/dir ⑥
複製目錄 cp -r dir1 dir2 ② cp -r dir1 dir2 dir3 dir4 ④
移動目錄 mv dir1 dir2 ③ mv dir1 dir2 dir3 dir4 ④
刪除目錄 rm -r dir1 ② rm -rf dir1 dir2 dir3 ⑤
注: 備註:
① 結果為重新命名
② 需要使用“遞迴”選項處理來源目錄
③ 如果dir2存在,則結果為移動。如果dir2不存在,則結果為重新命名。
④ 最後一個引數必須是目錄
⑤ 請謹慎使用“force”選項,系統將不會提示您確認操作
⑥ 使用“建立父級”選項時應小心;無法捕獲鍵入錯誤。

檔案檢視

命令 描述
cat 檢視檔案內容
nl 顯示內容的時候,順便顯示行號
tac 從最後一行開始顯示
head 顯示檔案前10行 -n:設定行數
tail 顯示檔案尾10行 -n:設定行數
wc 顯示檔案的行數,數字,位元組

cat命令:顯示檔案內容(內容較少的檔案)
-A:整合命令-vET
-b:列出行號,但是空白行不標誌行號
-E:將結尾的斷行字元($)顯示出來
-n:列出行號,空白行也會標誌行號
-T:將tab按鍵以^I顯示
-v:列出一些看不來的特殊字元

[[email protected] ~]# cat -Ab /etc/passwd
     1	root:x:0:0:root:/root:/bin/bash$
     2	bin:x:1:1:bin:/bin:/sbin/nologin$
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin$
     4	adm:x:3:4:adm:/var/adm:/sbin/nologin$
     5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin$
     6	sync:x:5:0:sync:/sbin:/bin/sync$
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown$
     8	halt:x:7:0:halt:/sbin:/sbin/halt$
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin$
    10	operator:x:11:0:operator:/root:/sbin/nologin$
    11	games:x:12:100:games:/usr/games:/sbin/nologin$
    12	ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin$
    .........省略.........
    32	pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin$
    33	gdm:x:42:42::/var/lib/gdm:/sbin/nologin$
    34	gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin$
    35	postfix:x:89:89::/var/spool/postfix:/sbin/nologin$
    36	sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin$
    37	tcpdump:x:72:72::/:/sbin/nologin$
[[email protected] ~]# 

more命令:檢視檔案內容(內容較多的檔案,一頁一頁的翻動)

是將檔案從第一行開始,根據輸出視窗的大小,適當的輸出檔案內容。當一頁無法全部輸出時,可以用“回車鍵”向下翻行,用“空格鍵”向下翻頁。退出檢視頁面,請按“q”鍵。另外,more還可以配合管道符“|”(pipe)使用,例如:ls -al | more

空格:向下翻一頁
回車:向下翻一頁
/字串:查詢字串
:f:立即顯示檔名和行數
b:翻到第一頁
q:離開

less命令:檢視檔案內容

less的功能和more相似,但是使用more無法向前翻頁,只能向後翻,而less可以任意切換

空格:向下翻一頁
pagedown:向下翻一頁
pageup:向上翻一頁
?:搜尋字串
n:重複前一個搜尋
N:反方向重複前一個搜尋
q:離開

head命令:顯示檔案頭幾行
tail命令:顯示檔案尾幾行
-n:指定顯示幾行,預設是10行

日誌檔案:/var/log/message 我們只需要看尾部的最新的幾行即可。

檢視使用者檔案前十行

[[email protected] ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[[email protected] ~]#

檢視日誌檔案後5行

[[email protected] ~]# tail -5 /var/log/messages
Apr 18 19:52:03 localhost fprintd: ** (fprintd:3826): WARNING **: fprint init failed with error -99
Apr 18 19:52:03 localhost systemd: Started Fingerprint Authentication Daemon.
Apr 18 19:52:03 localhost systemd: fprintd.service: main process exited, code=exited, status=157/n/a
Apr 18 19:52:03 localhost systemd: Unit fprintd.service entered failed state.
Apr 18 19:52:06 localhost su: (to root) raohenglei on pts/0
[[email protected] ~]#

wc命令:顯示檔案的行數,字數,位元組

-c:只顯示位元組
-w:只顯示字數
-l:只顯示行

[[email protected] ~]# wc /var/log/messages
  4349  49307 376145 /var/log/messages
[[email protected] ~]# 

vim編輯器

Vim是一個類似於Vi的著名的功能強大、高度可定製的文字編輯器,在Vi的基礎上改進和增加了很多特性。 VIM是自由軟體。Vim編輯器中設定了三種模式—命令模式、末行模式和編輯模式,每種模式分別又支援多種不同的命令快捷鍵,這大大提高了工作效率。

命令模式:控制游標移動,可對文字進行復制、貼上、刪除和查詢等工作。
輸入模式:正常的文字錄入。
末行模式:儲存或退出文件,以及設定編輯環境。

在每次執行Vim編輯器時,預設進入命令模式,此時需要先切換到輸入模式後再進行文件編寫工作,而每次在編寫完文件後需要先返回命令模式,然後再進入末行模式,執行文件的儲存或退出操作。在Vim中,無法直接從輸入模式切換到末行模式。

Vim編輯器中內建的命令有成百上千種用法,為了能夠幫助讀者更快地掌握Vim編輯器,在命令模式中最常用的一些命令。

命令 作用
dd 刪除(剪下)游標所在整行
5dd 刪除(剪下)從游標處開始的5行
yy 複製游標所在整行
5yy 複製從游標處開始的5行
n 顯示搜尋命令定位到的下一個字串
N 顯示搜尋命令定位到的上一個字串
u 撤銷上一步的操作
p 將之前刪除(dd)或複製(yy)過的資料貼上到游標後面

末行模式主要用於儲存或退出檔案,以及設定Vim編輯器的工作環境,還可以讓使用者執行外部的Linux命令或跳轉到所編寫文件的特定行數。要想切換到末行模式,在命令模式中輸入一個冒號就可以了。

命令 作用
:w 儲存
:q 退出
:q! 強制退出(放棄對文件的修改內容)
:wq! 強制儲存退出
:set nu 顯示行號
:set nonu 不顯示行號
:命令 執行該命令
:整數 跳轉到該行
:s/one/two 將當前游標所在行的第一個one替換成two
:s/one/two/g 將當前游標所在行的所有one替換成two
:%s/one/two/g 將全文中的所有one替換成two
?字串 在文字中從下至上搜索該字串
/字串 在文字中從上至下搜尋該字串

軟連結和硬連結

簡而言之:
軟連結相當於windows中的快捷方式
硬連結相當於一個災備系統,資料存放在兩處,與複製不同的是兩處之間存在同步機制,一處資料的改變會實時同步到另一處,另外一處資料如果被刪除了,不會影響到另一處的資料.

軟連結:
1.軟連結,以路徑的形式存在。類似於Windows作業系統中的快捷方式
2.軟連結可以 跨檔案系統 ,硬連結不可以
3.軟連結可以對一個不存在的檔名進行連結
4.軟連結可以對目錄進行連結

硬連結:
1.硬連結,以檔案副本的形式存在。但不佔用實際空間。
2.不允許給目錄建立硬連結
3.硬連結只有在同一個檔案系統中才能建立

硬連結的原理:在儲存器中只儲存了一份資料,而被連結檔案和連結檔案其實都是對這一份資料的引用,所以這份資料就會有最小為2的引用計數,所以才會刪除兩個檔案中的任意一個,刪除的都是引用計數,不會影響這一份資料,而另外的一個引用照樣可以訪問這份資料。如果另外一個引用也被刪除了,那麼引用計數就為0,在Linux中,一旦引用計數為0,則認為該資料被刪除了,這時資料就會被徹底清空,從這一點看和cp命令還是有點區別的。

[[email protected] ~]$ touch f1 #建立一個測試檔案f1
[[email protected] ~]$ ln f1 f2 #建立f1的一個硬連線檔案f2
[[email protected] ~]$ ln -s f1 f3 #建立f1的一個符號連線檔案f3

關機操作

關機需要注意的事項:
– 觀察系統的使用狀態
– 通知線上使用者關機的時間
– 正確的關機指令使用

關機指令
– 資料同步寫入磁碟-sync
– 常用的關機指令:shutdown
– 重啟、關機:reboot,halt,poweroff

shutdown命令:關機
-t 新增秒數,幾秒後關機
-k 不是真關機,而是發出告警資訊
-r 在系統服務都停止後,重啟
-h 在系統服務都停止後,關機
-f 關閉並且開機以後,強行略過磁碟檢查
-F 重啟後,強制進行磁碟檢查
-c 取消已經在進行的shutdown指令內容

指定現在立即關機:

[[email protected] ~]$ shutdown -h now

指定5分鐘後關機,同時送出警告資訊給登入使用者:

[[email protected] ~]$ shutdown +5 “System will shutdown after 5 minutes”

常用關機操作:

[[email protected] ~]$ shutdown -h now //立即關機
[[email protected] ~]$ shutdown -h 12:00 //12:00關機
[[email protected] ~]$ shutdown -h +10 //在10分鐘以後進行關機
[[email protected] ~]$ shutdown -r now //馬上重啟
[[email protected] ~]$ shutdown -r +30 ‘the system will reboot’ //告訴使用者30分鐘以後重啟
[[email protected] ~]$ shutdown -k now ‘this system will reboot’ //馬上告訴使用者馬上重啟,但是不會重啟
[[email protected] ~]$ shutdown -c //取消關機

幫助命令(man)

在命令列終端中輸入man man命令來檢視man命令自身的幫助資訊,敲擊回車鍵後即可看到的幫助資訊。

man命令中常用按鍵以及用途

按鍵 用處
空格鍵 向下翻一頁
PaGe down 向下翻一頁
PaGe up 向上翻一頁
home 直接前往首頁
end 直接前往尾頁
/ 從上至下搜尋某個關鍵詞,如“/linux”
? 從下至上搜索某個關鍵詞,如“?linux”
n 定位到下一個搜尋到的關鍵詞
N 定位到上一個搜尋到的關鍵詞
q 退出幫助文件

一般來講,使用man命令檢視到的幫助內容資訊都會很長很多,如果讀者不瞭解幫助文件資訊的目錄結構和操作方法,乍一看到這麼多資訊可能會感到相當困惑。man命令的幫助資訊的結構如下所示。

man命令幫助資訊的結構以及意義

結構名稱 代表意義
NAME 命令的名稱
SYNOPSIS 引數的大致使用方法
DESCRIPTION 介紹說明
EXAMPLES 演示(附帶簡單說明)
OVERVIEW 概述
DEFAULTS 預設的功能
OPTIONS 具體的可用選項(帶介紹)
ENVIRONMENT 環境變數
FILES 用到的檔案
SEE ALSO 相關的資料
HISTORY 維護歷史與聯絡方式