2020-11-05

linux

Linux 是一個多用戶多任務的操作系統,也是一款自由軟件,擁有良好的用戶界面,
支持多種處理器架構,移植方便。
嚴格的來講,Linux 並不算是一個操作系統,只是一個 Linux 系統中的內核,即計算
機軟件與硬件通訊之間的平臺;
大量的服務器部署在linux上。
免費,開源,穩定,安全,方便,免移植,可定製,直觀的操作。新老皆宜,大小通吃。
設計原則:1)所有的東西都是文件,所以管理簡單
2)所有操作系統配置數據都存儲在正文文件中
3)每個操作系統命令或應用程序很小,只完成單一功能
4)避免使用俘獲用戶的接口,很少交互命令,應用程序由vi編輯器等完成交互
5)多個程序串接在一起完成複雜任務

linux系統目錄結構

/bin:bin是Binary的縮寫,此目錄中存放着經常使用的命令
/boot:存放啓動Linux時使用的一些核心文件。包括連接文件以及鏡像文件
/dev:dev是Device(設備)的縮寫,該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的
/etc:存放所有的系統管理所需要的配置文件和子目錄
/home:用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的
/lib:存放着系統最基本的動態連接共享庫,幾乎所有的應用程序都需要用到這些共享庫 /lost+found:這個目錄一般情況下是空的,當系統非法關機後,這裏就存放了一些文件
/media:linux系統會自動識別一些設備,例如U盤、光驅等等,當識別後,linux會把識別的設備掛載到這個目錄下
/mnt:讓用戶臨時掛載別的文件系統,我們可以將光驅掛載在/mnt/上,然後進入該目錄就可以查看光驅裏的內容了
/opt:給主機額外安裝軟件所擺放的目錄,比如安裝Oracle數據庫在此目錄下,默認是空的
/proc:是一個虛擬的目錄,它是系統內存的映射,可以通過直接訪問這個目錄來獲取系統信息,這個目錄的內容不在硬盤上而是在內存裏
/root:該目錄爲系統管理員,也稱作超級權限者的用戶主目錄
/sbin:s就是Super User的意思,這裏存放的是系統管理員使用的系統管理程序
/selinux:這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似於windows的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的文件的
/srv:存放一些服務啓動之後需要提取的數據
/sys:該目錄下安裝了2.6內核中新出現的一個文件系統sysfs,sysfs文件系統集成了:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對僞終端的devpts文件系統
/tmp:存放一些臨時文件
/usr:用戶的很多應用程序和文件都放在這個目錄下,類似於windows下的program files目錄 /usr/bin:系統用戶使用的應用程序
/usr/sbin:超級用戶使用的比較高級的管理程序和系統守護程序
/usr/src:內核源代碼默認的放置目錄
/var:存放着在不斷擴充着的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。主要存放各種日誌文件
/run:是一個臨時文件系統,存儲系統啓動以來的信息。當系統重啓時,這個目錄下的文件應該被刪掉或清除,如果你的系統上有 /var/run 目錄,應該讓它指向 run

Linux文件屬性

通過命令 ll或 ls-l可以查看某個目錄下所有的文件以及文件類型、權限、屬組等
[[email protected] /]# ll
total 64
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
……
每個文件的屬性從左到右由10個字符確定
第0位確定文件類型,其字符意義如下:
d:目錄 -:文件
l:鏈接文檔(link file)
b:裝置文件裏面的可供儲存的接口設備
c:裝置文件裏面的串行端口設備,例如鍵盤、鼠標
第1-3位確定屬主(該文件的所有者)擁有該文件的權限
第4-6位確定屬組(所有者的同組用戶)擁有該文件的權限,
第7-9位確定其他用戶擁有該文件的權限。
第1、4、7表示讀權限:如果用"r"字符表示,則有讀權限,如果用"-「字符表示,則沒有讀權限
第2、5、8表示寫權限:如果用"w"字符表示,則有寫權限,如果用」-「字符表示沒有寫權限
第3、6、9表示執行權限:如果用"x"字符表示,則有執行權限,如果用」-"字符表示,則沒有執行權限
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin:表示bin是一個目錄,屬主、屬組以及其他用戶具有讀權限,沒有寫權限,具有執行權限;dr-xr-xr-x表示文件屬性,第一個root表示屬主(該文件的所有者),第二個root表示屬組(所有者用戶所在的組)

Linux常用命令

ls: 列出目錄
cd:切換目錄
pwd:Print Working Directory,顯示目前的目錄
mkdir:創建一個新的目錄
rmdir:刪除一個空的目錄
cp: 複製文件或目錄,命令 cp/usr/text.txt/tmp/text1.txt將usr目錄下的text.txt複製到tmp目錄下,並重命名爲text1.txt
rm: 移除文件或目錄,命令 rm-f text.txt強制刪除文件
mv:移動文件與目錄,或修改名稱,命令 mv/tmp/test.txt/usr將tmp目錄下的test.txt文件移動到/usr目錄下
cat:由第一行開始顯示文件內容
tac:從最後一行開始顯示,可以看出 tac 是 cat 的倒着寫
nl:顯示的時候,順道輸出行號
more:一頁一頁的顯示文件內容
less:與 more 類似,但是比 more 更好的是,他可以往前翻頁
head:只看頭幾行
tail:只看尾巴幾行
vim或vi:編輯文件

Linux用戶管理

添加賬號
命令: useradd[option]用戶名:系統管理員添加賬號,並未新賬號分配用戶號、用戶組、主目錄和登陸Shell等資源,剛添加的賬號是被鎖定的,無法使用
useradd[option]用戶名:如 useradd-d/usr/jack-m jack表示創建一個用戶jack,其中-d和-m選項用來爲登錄名jack產生一個主目錄/usr/jack
option:
-c comment:指定一段註釋性描述。
-d 目錄:指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,可以創建主目錄。
-g 用戶組:指定用戶所屬的用戶組。
-G 用戶組,用戶組:指定用戶所屬的附加組。
-s Shell文件:指定用戶的登錄Shell。
-u 用戶號:指定用戶的用戶號,如果同時有-o選項,則可以重複使用其他用戶的標識號
useradd-s/bin/sh-ggroup–G adm,root gem:此命令新建了一個用戶gem,該用戶的登錄Shell是 /bin/sh,它屬於group用戶組,同時又屬於adm和root用戶組,其中group用戶組是其主組,adm、root是附加組
刪除賬號
命令: userdel選項用戶名
userdel-r jack:刪除用戶jack,-r的作用是把用戶jack的主目錄一起刪除
修改賬號
命令: usermod選項用戶名,可以修改用戶的用戶號、主目錄、用戶組、登錄Shell

usermod-s/bin/ksh-d/home/z–g developer sam:此命令將用戶sam的登錄Shell修改爲ksh,主目錄改爲/home/z,用戶組改爲developer
用戶口令(密碼)管理
命令: passwd選項用戶名
選項: -l 鎖定口令,即禁用賬號 -u 口令解鎖 -d 使賬號無口令 -f 強迫用戶下次登錄時修改口令
當前登錄賬號修改口令
輸入命令 passwd:需輸入舊口令和新口令
Old password:xxxxxx
New password:xxxxxx
Re-enter new password:xxxxxx
超級管理員修改用戶口令
命令 passwd jack:修改jack的口令,只需輸入新口令即可
New password:xxxxxx
Re-enter new password:xxxxxx

每個用戶都有一個或多個用戶組,系統可以對一個用戶組中的所有用戶進行集中管理
添加用戶組
命令 groupadd選項用戶組
選項:
-g GID:指定新用戶組的組標識號(GID)。
-o:一般與-g選項同時使用,表示新用戶組的GID可以與系統已有用戶組的GID相同。
groupadd group1:向系統中增加了一個新組group1,新組的組標識號是在當前已有的最大組標識號的基礎上加1
groupadd-g101group2:向系統中增加了一個新組group2,同時指定新組的組標識號是101
刪除用戶組
命令 groupdel用戶組
groupdel group1:從系統中刪除用戶組group1
修改用戶組
命令 groupmod選項用戶組
選項:
-g GID: 爲用戶組指定新的組標識號。
-o:與-g選項同時使用,用戶組的新GID可以與系統已有用戶組的GID相同。
-n 新用戶組 :將用戶組的名字改爲新名字
groupmod-g102group2:將組group2的組標識號修改爲102
groupmod–g10000-n group3 group2:將組group2的標識號改爲10000,組名修改爲group3
/etc/passwd文件
Linux系統中每個用戶都在/etc/passwd文件中有一個對應的記錄行,用於記錄此用戶的一些基本屬性;/etc/passwd文件所有賬戶都是可讀的
執行命令:cat /etc/passwd
root❌0:0:Superuser:/:
daemon❌1:1:System daemons:/etc:
bin❌2:2:Owner of system commands:/bin:
sys❌3:3:Owner of system files:/usr/sys:
adm❌4:4:System accounting:/usr/adm:
uucp❌5:5:UUCP administrator:/usr/lib/uucp:
auth❌7:21:Authentication administrator:/tcb/files/auth:
cron❌9:16:Cron daemon:/usr/spool/cron:
listen❌37:4:Network daemon:/usr/net/nls:
lp❌71:18:Printer administrator:/usr/spool/lp:
jack❌200:50:jack san:/usr/jack:/bin/sh

用戶名:口令:用戶標識號:組標識號:註釋性描述:主目錄:登錄Shell

口令:用戶加密的口令是存放在/etc/shadow文件中,/etc/passwd文件中的口令之存放一個特殊字符「x」,
用戶標識號:用戶標識號和用戶名是一一對應的,幾個用戶名對應一個用戶標誌號,表示是同一用戶,但可以有不同的口令、不同的主目錄以及不同的登錄Shell
組標誌號:對應着/etc/group文件中的一條記錄
主目錄:用戶的起始工作目錄,創建用戶時可以指定用戶的主目錄
登錄Shell:用戶登錄後,要啓動一個進程,負責將用戶的操作傳給內核,這個進程是用戶登錄到系統後運行的命令解釋器或某個特定的程序,即Shell
/etc/group文件
用戶組的所有信息都存放在/etc/group文件中
輸入命令 cat /etc/group
root❌0:
bin❌1:bin,daemon
daemon❌2:bin,daemon
sys❌3:bin
tty❌5:
disk❌6:
mem❌8:
組名:口令:組標識號:組內用戶列表
組名:是用戶組的名稱,由字母或數字構成。與/etc/passwd中的登錄名一樣,組名不應重複。
口令:字段存放的是用戶組加密後的口令字。一般Linux 系統的用戶組都沒有口令,即這個字段一般爲空,或者是x。
組標識號:與用戶標識號類似,也是一個整數,被系統內部用來標識組。
組內用戶列表:是屬於這個組的所有用戶的列表,不同用戶之間用逗號(,)分隔。這個用戶組可能是用戶的主組,也可能是附加組。

Linux磁盤管理

Linux磁盤管理好壞直接關係到整個系統的性能問題,磁盤管理常用命令:df、du、fdisk
df:列出文件系統的整體磁盤使用量
du:檢查磁盤空間使用量
fdisk:用於磁盤分區
命令 df選項目錄或文件名
選項:
-a:列出所有的文件系統,包括系統特有的 /proc 等文件系統;
-k:以 KBytes 的容量顯示各文件系統;
-m:以 MBytes 的容量顯示各文件系統;
-h:以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示;
-H:以 M=1000K 取代 M=1024K 的進位方式;
-T:顯示文件系統類型, 連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出;
-i:不用硬盤容量,而以 inode 的數量來顯示
輸入命令: df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 26G 12G 14G 47% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
/dev/sda1 477M 52M 400M 12% /boot
/dev/sdb1 99G 66G 28G 71% /data1

Linux yum 命令

yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令 語法: yum[options][command][package…]
options:可選,選項包括-h(幫助),-y(當安裝過程提示選擇全部爲"yes"),-q(不顯示安裝的過程)等等
command:要進行的操作
package:操作的對象
yum常用命令 yum check-update:列出所有可更新的軟件清單命令
yum update:更新所有軟件
yum install<package_name>:安裝指定的軟件
yum update<package_name>:更新指定的軟件
yum list:列出所有可安裝的軟件清單
yum remove<package_name>:刪除軟件包
yum search:查找軟件包
yum clean packages: 清除緩存目錄下的軟件包
yum clean headers: 清除緩存目錄下的 headers
yum clean oldheaders: 清除緩存目錄下舊的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders):清除緩存目錄下的軟件包及舊的headers

linux七個運行等級

0關機 3文本界面 5圖形界面 6重新啓動

在這裏插入圖片描述
chgrp user install //更改文件的組
chown user.group file //修改文件的羣組和擁有着
chmod 777 file //修改文件權限
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述

  • root不一定是擁有權限最高用戶,uid爲0的纔是
  • 禁用一個賬戶就是在它的密碼字段前加個 !(usermod -L test1)
  • 解鎖 :去掉 !(usermod -U test1,tail -l /etc/shadow)