[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 環境安裝