1. 程式人生 > 其它 >[Linux 01] linux基本概念和簡單使用

[Linux 01] linux基本概念和簡單使用

Linux


linux開機啟動的程式叫daemon守護程序,windows叫服務service

1. 目錄結構

sync # 關機前資料同步
shutdown # 關機
shutdown -h 10 # 10min關機
reboot # 重啟
halt  # 關機並power off

1.1 樹狀目錄

系統檔案(不要動):

/bin:  binary, 目錄存放常用的命令
/boot: 存放啟動linux時使用的核心檔案,包括一些連線檔案和映象檔案
/lib 存放基本的動態連線庫,如windows 的DLL檔案
/lost+found : 存放突然非法關機的檔案
/proc: 虛擬目錄,是系統記憶體的對映,可以通過訪問目錄來獲取系統資訊(不用管)
/srv : 存放一些服務啟動之後需要提取的資料(不用管)、
/sys: 檔案系統sysfs的存放地方
/user/src: 核心原始碼預設的放置位置(不要動)
/run: 是一個臨時檔案,儲存系統啟動以來的資訊,當重啟時目錄被刪除(不要動)

掛載:

/dev device, 掛載linux外部裝置,如u盤,和訪問檔案是一樣的
/mnt 系統為了讓使用者臨時掛載別的檔案系統,可以將光碟機等掛載,也可以掛載本地檔案
/media 自動識別裝置,u盤,光碟機等,識別後會掛載在這個目錄下

使用者目錄:

/root 為系統管理員目錄, #用 ls -al 可以檢視隱藏檔案
	                   #進入root許可權: sudo -i , 然後輸入密碼,切換到myuser,用exit就可
/sbin: super user, 存放系統管理員使用的系統管理程式
/usr: 使用者的很多應用程式和檔案都在這個目錄下,類似於windows下的program files目錄
	/user/bin : 系統使用者使用的應用程式
	/user/sbin: 超級使用者使用的比較高階的管理程式和系統守護程式

常用目錄:

/etc  目錄用來存放所有系統管理所需要的配置檔案和子目錄(各種redis、等的配置檔案位置)
/home 和windows的user一樣,裡面的目錄一般以使用者的賬號命名
/opt 用來安裝軟體的專案,比如資料庫等。
/tmp : 用來存放臨時檔案,安裝包等/var: 用來存放不斷擴充的東西,習慣將經常被修改的目錄放在這裡,如日誌檔案
如果是遠端,/www 放置伺服器相關的資源、環境、專案。

2. 常用基本命令

2.1 目錄管理

所有linux引數都可以組合使用

./ #表示當前目錄
ls # 引數
-a #列出所有檔案,包括隱藏檔案
-l #列出詳細資訊,包括屬性和許可權等
cd #切換目錄,其中,以/ 開頭的都是絕對路徑,其他都是相對與本路徑的相對路徑

# 建立mkdir, 刪除 rmdir
# 對於多層目錄的建立和刪除:
mkdir -p test1/test2/test3
rmdir -p test1/test2/test3 #如果不加-p不報錯,因為語法沒有問題,但刪不掉多層目錄;

# cp 檔名 要複製到的位置
cp install.sh /home/roy  # 如果檔案重複,linux將詢問是否覆蓋

# 移除 檔案、或者目錄
rm 
-f 忽略不存在的檔案,不會出現警告,強制刪除
-r 遞迴刪除目錄
-i 互動,詢問是否刪除

# 移動、 重新命名 mv
mv 
-f # 強制移動
-u # 只替換已經更新過的檔案
mv 檔案/資料夾  目的地
mv 檔名 新檔名 # 對資料夾重新命名

2.1 檔案屬性

十位數的屬性, eg: drwxr-xr-x

第一位字母:

  • d: 表示一個目錄
  • -:表示一個檔案
  • l:表示一個連結文件link, 如windows中的快捷方式,並且用ls -l列出之後,會顯示指向的檔案地址
  • b:表示裝置檔案中可供儲存的介面裝置(可隨機儲存裝置)
  • c:表示裝置檔案裡面的串列埠裝置,如滑鼠和鍵盤

後9位:三個為一組, r read, w write, x execute。可讀可寫可執行

屬主許可權(屬主必須存在於這個系統中)

屬組許可權(檔案擁有者的同組人員,管理、遊客,這個組必須存在於系統中),

其他使用者許可權(和這個文件沒有關係的使用者)

2.3 修改檔案屬性:

  • 更改檔案屬組: chgrp -R 屬組名 檔名 # -R 遞迴修改此檔案下的所有屬性
  • 更改檔案屬主: chown -R 屬主名 檔名 # 前兩個一般不修改
  • chmod : 用來修改檔案的許可權

方式一: r-4, w-2, x-1 , 分別計算三個組的分數,然後進行修改

​ eg: chmod 777 filename 表示把許可權設定為 -rwxrwxrwx;

方式二:使用符號

...不會

2.4 檢視檔案內容

cat # 從第一行開始顯示內容
tac # 從最後一行開始顯示內容
nl # 顯示的時候顯示行號,使用: nl 檔名, 就是cat,但有行號資訊
more # 檢視檔案時,只顯示一部分,(可以使用space鍵進行翻頁,enter為顯示下一行,:f 可以顯示當前的行號, q 退出)
less # 可以往前翻頁, more只可以往下翻頁,	(
	space翻頁,
	上下鍵進行上下一行,
     q 退出, 
     /要查詢的字串 查詢下一個字串
     ?要查詢的字串 向上查詢
     n   查詢下一個
     N   向上查詢
     )
     
head -n 20 檔名 # 只看前幾行
tail -n 20 檔名 # 只看後幾行
# 可以使用 man 命令, 來看幫助:
eg; man cat

網路配置: /etc/systemd/networkd.conf

2.5 硬連結和軟連結 :

硬連結: A檔案 的硬連結 B, A、B都是引用,刪除任意一個,另一個都可以繼續訪問檔案

軟連結: A檔案 的軟連結B(實際就是win的快捷方式), 刪除A,則快捷方式B不可以訪問A了

資料夾test:

touch f1
ln f1 f2
ln -s f1 f3
ll
--------------------------顯示: 
-rw-r--r-- 2 roy  roy     0 Feb 17 11:33 f1  #檔案
-rw-r--r-- 2 roy  roy     0 Feb 17 11:33 f2	 #檔案
lrwxrwxrwx 1 roy  roy     2 Feb 17 11:34 f3 -> f1 #l連結
------------------------
echo "linux learning">> f1
cat f1
#開始刪除f1
rm -rf f1
#此時可以訪問f2, 顯示內容,但f3不存在
#f1, f2可以理解為指標指向檔案
#f3 是指向f1指標的指標

3. Vim編輯器

三種模式: 命令模式(Command Mode), 輸入模式(Insert Mode),底線模式(Last Line Mode)

命令模式

  • vim newfile.txt 新建一個檔案,進入命令模式;如果檔案存在,則修改檔案;
  • i 進入輸入模式;按ESC 從輸入模式退出到命令模式
  • 命令模式中,按: 進入底線模式
  • u 撤銷

輸入模式

底線模式

:q! #強制退出
ZZ #如果文件沒有動過,則直接離開; 如果文件被修改過,則儲存後離開
:set nu  #顯示行號
:set nonu # 不顯示行號

4. Linux賬號管理

linux是一個多使用者多工分時作業系統,任何一個要使用系統資源的使用者,都需要像管理員申請一個賬戶

賬戶管理工作:

  • 使用者賬戶的新增、刪除和修改、
  • 使用者口令管理
  • 使用者組管理

4.1 使用者管理

本質: 對etc/passwd 檔案進行修改

# 新增使用者,本質: 在etc/passwd 檔案中寫如一個使用者,可以cat檢視
useradd -選項 使用者名稱
-m: 自動建立這個使用者的主目錄在/home下
-G: 給使用者分配組
# 刪除使用者
userdel -選項 使用者名稱
-r: 刪除使用者的同時刪除使用者的資料夾
# 修改使用者
usermod -選項 修改的內容 使用者名稱
-d: 修改使用者的目錄為/home/233, 但修改的是etc/passwd檔案中的地址,需要自己先在/home下建立一個資料夾
usermod -d /home/233 test_user
# 切換使用者
# 每一行最後是# 表示是超級使用者; $表示普通使用者
su 使用者名稱 # 從root切換到普通使用者時
sudo su   # 從普通切換到root使用者時, 需要輸入密碼;從普通使用者退出到root使用:exit
root@DESKTOP-3I1DQUG:/home# hostname 檢視主機名,
hostname otherName #修改為其他的名字,是臨時的;永久修改在配置檔案 etc/hostname 中修改

#使用者密碼問題
passwd 使用者名稱 #root使用者可以修改密碼
passwd #普通使用者直接輸入可以修改密碼
passwd -l 使用者名稱 #root使用者凍結其他賬號
passwd -u 使用者名稱 #解鎖賬戶

4.2 使用者組管理

本質: 對etc/group 檔案進行修改

系統可以對一個使用者組中的所用使用者集中管理,如(開發、測試、運維、root組等)

groupadd 使用者組名 #建立使用者組,預設id開始於1000, -g 可以指定id
groupdel 使用者組名 #刪除使用者組
# 修改
groupmod -引數 修改的內容 [-引數 修改的內容] 使用者組名 #可以有多組引數和修改內容
groupmod -g 600 -n newName oldName
#普通使用者切換組:
$時, newgrp 組名 # 如果有許可權就切過去了

passwd檔案解釋:
使用者名稱: 登入密碼(看不到,用x代替):使用者id: 使用者組id: 註釋性描述: 主目錄: 登入shell

密碼在etc/shadow 中儲存

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin

5. Linux磁碟程序管理

5.1 磁碟管理

usr : Unix software resource

df -h # 列出磁碟的使用量情況,-h為用human readable表示
du -a -h # 列出某個資料夾中的所有檔名和檔案大小,包括某個子資料夾中的子子資料夾資訊
du -sm /* # 檢視目錄下每個檔案的佔用情況
mount /dev/my_device /mnt/my_device #可以掛載格式不相容的外部裝置等裝置到本地,來實現訪問
umount -f 掛載位置  # 強制解除安裝

5.2 程序管理

每個程序都有一個父程序,程序的存在方式: 前臺、後臺;

ps -引數  # 工作管理員
-a 顯示當前終端執行的所有程序資訊(一個)
-A 顯示所有的程序資訊
-u 以使用者的資訊顯示程序
-x 顯示後臺執行程序的引數

#
ps -aux | grep 字串
| # 在linux中叫做管道符 eg: A|B, 把A引數查出來的結果通過B引數
grep #查詢檔案中符合條件的字串

#
ps -ef | grep 某個程序 #顯示某個程序的父程序(一般不使用,而是通過目錄樹來檢視)
pstree -pu #顯示程序樹
-p 顯示父id
-u 使用者組

# 結束程序
kill -9 id #結束某個程序(死迴圈時使用)

p15-p18 環境安裝