Linux 名字的由來,是當時作者将初版的 Linux 釋出在網上,供别人下載下傳完善,而那個核心檔案夾就叫 Linux,就這麼叫着了。而為什麼 Linux 的吉祥物是一隻企鵝呢?是因為當時大家要發行穩定版的 Linux 的時候詢問作者将什麼動物作為吉祥物,而作者對小時候在動物園被企鵝咬了一口印象深刻,竟然就選擇将企鵝作為 Linux 的吉祥物了。Linux 是一套免費使用和自由傳播的的類 Unix 作業系統,是一個基于 POSIX 和 UNIX 的多使用者、多任務、支援多線程和多 CPU 的作業系統;運作主要的 UNIX 工具軟體、應用程式和網絡協定。
Linux 發行版 簡單點就是将Linux核心與應用軟體做一個打包。
Linux distributions主要分為兩大系統,一種是 RPM 方式安裝軟體的系統,包括 Red Hat,Fedora,SuS E等都是這類;一種則是使用 Debian 的 dpkg 方式安裝軟體的系統,包括 Debian、Ubuntu、B2D 等等。

- Red Hat:http://www.redhat.com
- Suse:https://www.suse.com
- Febora:https://getfedora.org/
- CentOS:http://www.centos.org/
- Debian:http:www.debian.org/
- Ubuntu:http://www.ubuntu.com/
- Gentoo:http://www.gentoo.org/
備注:如果是個人學習使用的話,建議使用社群機關發行版的即可。如果是做伺服器使用,推薦使用商業版,比較穩定,比較少bug。
1、系統指令
ifconfig eth0 192.168.109.109 臨時修改IP位址(臨時修改,重新開機網卡或伺服器後又會還原)
arch 顯示機器的處理器架構
uname -m 顯示機器的處理器架構
uname -r 顯示正在使用的核心版本
dmidecode -q 顯示硬體系統部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 羅列一個磁盤的架構特性
hdparm -tT /dev/sda 在磁盤上執行測試性讀取操作
cat /proc/cpuinfo 顯示CPU info的資訊
cat /proc/interrupts 顯示中斷
cat /proc/meminfo 校驗記憶體使用
cat /proc/swaps 顯示哪些swap被使用
cat /proc/version 顯示核心的版本
cat /proc/net/dev 顯示網絡擴充卡及統計
cat /proc/mounts 顯示已加載的檔案系統
lspci -tv 羅列 PCI 裝置
lsusb -tv 顯示 USB 裝置
date 顯示系統日期
cal 2007 顯示2007年的月曆表
date 041217002007.00 設定日期和時間 - 月日時分年.秒
clock -w 将時間修改儲存到 BIOS
uname -a 檢視Linux核心版本指令
lsb_release -a 檢視Linux系統版本的指令
grep 'physical id' /proc/cpuinfo | sort -u : 檢視CPU實體個數
grep 'core id' /proc/cpuinfo | sort -u | wc -l :檢視CPU的核數
grep 'processor' /proc/cpuinfo | sort -u | wc -l :檢視CPU的線程數
2、要讓IP位址永久生效
vim /etc/sysconfig/network-scripts/ifcfg-eth0
3、開啟SSH服務
SSH為Secure Shell 的縮寫,由IETF的網絡工作小組做制定。建立在應用層和傳輸層基礎上的安全協定。
- 檢視SSH是否安裝:rpm -qa | grep ssh
- 安裝SSH:yum install openssh-server
- 啟動服務:service sshd start
- 停止服務:service sshd stop
- 重新開機SSH服務:service sshd restart
- 檢視是否啟動22端口:netstat -antulp | grep ssh
- 設定SSH 服務為開機啟動:chkconfig sshd on
4、Linux系統的7個運作級别
- 運作級别0:系統停機狀态,系統預設運作級别不能設為0,否則不能正常啟動
- 運作級别1:單使用者工作狀态,root權限,用于系統維護,禁止遠端登陸
- 運作級别2:多使用者狀态(沒有NFS)
- 運作級别3:完全的多使用者狀态(有NFS),登陸後進入控制台指令行模式
- 運作級别4:系統未使用,保留
- 運作級别5:X11控制台,登陸後進入圖形GUI模式
- 運作級别6:系統正常關閉并重新開機,預設運作級别不能設為6,否則不能正常啟動
5、Linux關機
- sync 将資料由記憶體同步到硬碟中
- shutdown 關機指令
- shutdown -h 10 '系統将在10分鐘後關機' 系統将在10分鐘後關機,并子頁面上顯示
- shutdown -h now或者halt 立馬關閉系統
- shutdown -h 20:25
- shutdown -r now或者reboot 系統立馬重新開機
6、目錄結構
/bin:常用指令目錄
/dev:連接配接外部裝置的目錄
/boot、/etc:系統中的 配置檔案
/usr:相當于windows中的program files
/root:超級管理者操作目錄
/bin、/sbin、/user/bin、/user/sbin:系統預設的執行檔案的放置目錄
/var:存放日志的目錄
/代表根目錄
./代表目前的目錄
../代表上一層目錄
7、Linux檔案屬性
我們可以用 ll 或者ls -l 來顯示一個檔案的屬性以及檔案所屬的使用者群組
- d 表示目錄
- - 表示檔案
- / 表示連結文檔
- b 表示為裝置檔案中可供儲存的接口裝置(可随機存取裝置)(不了解)
- c 表示為裝置檔案裡面的串行端口裝置 (鍵盤、滑鼠等)
接下來的字元以3個為一組,rwx 的組合,r 代表 read 、w 代表 write、x 代表 execute
9位檔案屬性,第0位确定檔案類型
第1-3位确定該檔案的所有者
第4-5位确定該檔案的所有者的同組使用者
第7-9位确定其他使用者的權限
同時,Linux系統中,使用者是按組分類的,一個使用者屬于一個或者多個組。對于root使用者來說,一般情況下,檔案的權限對其不起作用
- 更改檔案屬組 : chgrp [-R] 屬組名 -R 代表目錄下的所有檔案的屬組都會修改
- 更改檔案屬主: chown [-R] 屬主名 檔案名 chown [-R] 屬主名:屬組名 檔案名
- 更改檔案屬性 chmod 777 檔案
除了普通的 r w x的檔案權限外,Linux作業系統還有 t / s兩種
當 s 這個辨別符出現在 own、group 時,表示執行者在執行二進制檔案時,獲得該own、Group的權限支援。當然,如果執行者沒有 x 的權限,那這個 s 或者 t 也就變成了空權限。t 隻對目錄生效,表示隻有該目錄的擁有者以及root 可以删除該目錄
- 4 為 SUID
- 2 為 SGID
- 1 為 SBIT
加入具有SUID的權限 chmod 4755 test
加入具有SUID/SGID的權限 chmod 6755 test
加入SBIT的權限 chmod 1755 test
具有空的 SUID/SGID權限 chmod 7666 test
8、基礎目錄指令
- 列出目錄: ls [-a/-d/-l] 目錄名稱 不填目錄名稱表示列出目前目錄,-a 表示全部檔案,包括隐藏目錄、-d 表示僅列出目錄本身、-l 長資料串列出(這個也能寫成ll)
- 切換目錄:cd [相對路徑或者絕對路徑]
- 顯示目前所在的目錄 :pwd (Print Working Directory)
- 顯示目前的目錄連接配接檔 :pwd -P
- 建立目錄 :mkdir 目錄名稱
- 同時建立兩個目錄: mkdir dir1 dir2
- 建立一個目錄樹: mkdir -p /tmp/dir1/dir2
- 删除空[級聯删除]目錄: rmdir [-p] 目錄名稱
- 複制檔案或目錄 :cp source(源檔案) destination(目标檔案)
- 複制檔案時,若目标檔案已經存在則詢問是否覆寫:cp -i source(源檔案) destination(目标檔案)
- 連同檔案的屬性(權限、使用者、時間)一起複制過去,而非使用預設屬性(備份常用):cp -p source(源檔案) destination(目标檔案)
- 建立一個快捷方式: cp -s 源檔案 快捷方式名稱
- 強制移除檔案或目錄不管是否是空白目錄: rm -rf 目錄名稱
- 重命名檔案夾(強制/詢問/更新):mv [-fir] 源檔案名 新檔案名
- 由第一行/最後一行開始顯示檔案内容: cat /tac 目錄名稱
- 顯示行号: nl
- 建立空檔案 tough 1.txt(預設更新三個時間) 或者 vim 1.txt
- 系統環境變量 :echo $PATH
- 顯示檔案前面幾行: head [-n number] 檔案
- 不包括後面一百行: head -n -100 檔案
- 取出11到20行: head -n 20 檔案 | tail -n 10 (管線的意思是前面所輸出的資訊交由後面繼續使用)
- 目前使用者在建立檔案或者檔案夾時的預設權限值 umask / umask -S
- 修改umask:umask 002
- locate: 是根據Linux 下的資料庫檔案 /var/lib/mlocate來查詢,該資料庫檔案一天更新一次,可能你查詢的内容因為未及時更新查找不到,可以手動更新資料庫
- updatedb :手動更新資料庫
- find / -name file1 :從 '/' 開始進入根檔案系統搜尋檔案和目錄
- find / -user user1 :搜尋屬于使用者 'user1' 的檔案和目錄
- find /home/user1 -name \*.bin: 在目錄 '/ home/user1' 中搜尋帶有'.bin' 結尾的檔案
- find /usr/bin -type f -atime +100 :搜尋在過去100天内未被使用過的執行檔案
- find /usr/bin -type f -mtime -10 :搜尋在10天内被建立或者修改過的檔案
- find / -name \*.rpm -exec chmod 755 '{}' \: 搜尋以 '.rpm' 結尾的檔案并定義其權限
- find / -xdev -name \*.rpm 搜尋以 '.rpm' :結尾的檔案,忽略光驅、捷盤等可移動裝置
- locate \*.ps 尋找以 '.ps' 結尾的檔案 - 先運作 'updatedb' 指令
9、系統使用者賬号的管理
> 添加新的賬号 :useradd 選項 使用者名
useradd -d /usr/jomoo -m -g jomoo -G root jomoo
-c 添加一段注釋性描述
-d 指定使用者主目錄,如果該使用者目錄不存在,則使用-m選項,建立主目錄
-g 指定使用者組
-G 指定所屬的附加組
-s 指定登入的Shell
-u 指定使用者的使用者号
> 删除賬号:userdel [-r] 使用者名 (-r 作用是把使用者的主目錄一起删除)
> 修改賬号:usermod 選項 使用者名 (修改賬号和添加賬号相似,選項也相同)
> 管理密碼(剛建立的賬号因為沒有密碼,被系統鎖定,無法使用,必須為其制定密碼後方可使用):
passwd 選項 使用者名
-l 鎖定密碼、即禁用賬号
-u 密碼解鎖
-d 使賬号無密碼
-f 強迫使用者下次登入時修改密碼
root 使用者可以管理所有成員的指令,格式如上,個人賬戶僅可以修改自己的密碼,直接輸入 passwd 即可。個人賬号修改密碼的時候需要自己原密碼,而 roo t賬戶不需要知道原來密碼
> 切換使用者:su 使用者名,如果使用者名不填的話預設 root,root 轉普通使用者不需要輸入密碼,普通使用者轉 root 需要輸入密碼 ,如果需要圖形界面的支援需要在切換使用者前執行 xhost +
10、系統使用者組的管理
使用者組可以在/etc/group檔案中檢視
> 新增一個使用者組
groupadd 選項 使用者組
-g 指定新使用者組的組辨別号
-o 一般與 -g 選項同時使用,表示新使用者組的GID可以與系統已有使用者組的GID相同。
> 删除一個已有的使用者組: groupdel 使用者組
> 修改使用者組的屬性
groupmod 選項 使用者組
-g 指定新使用者組的組辨別号
-o 一般與 -g 選項同時使用,表示新使用者組的GID可以與系統已有使用者組的GID相同。
-n 重命名使用者組(groupmod -n group2 group3)
> 切換使用者組:newgrp root
> /etc/passwd 記錄着使用者的一些基本屬性
> /etc/shadow 使用者的密碼資訊
> /etc/group 使用者組的所有資訊
11、Linux磁盤管理
Linux 支援的檔案系統:ls -l /lib/modules/$(uname -r)/kernel/fs
cat /proc/filesystems:檢視已經加載到記憶體中的檔案系統
lsblk :列出本系統所有磁盤和磁盤内的分區資訊
df:列出檔案系統的整體磁盤使用量
df [-ahikHTm] [目錄或檔案名]
-a :列出所有的檔案系統,包括系統特有的 /proc 等檔案系統
-k :以 KBytes 的容量顯示各檔案系統
-m :以 MBytes 的容量顯示各檔案系統
-h :以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示
-H :以 M=1000K 取代 M=1024K 的進位方式
-T :顯示檔案系統類型, 連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出
-i :不用硬碟容量,而以 inode 的數量來顯示
du:列出磁盤空間使用量
du [-ahskm] 檔案或目錄名稱
-a :列出所有的檔案與目錄容量,因為預設僅統計目錄底下的檔案量而已
-h :以人們較易讀的容量格式 (G/M) 顯示
-s :列出總量而已,而不列出每個各别的目錄占用容量
-S :不包括子目錄下的總計,與 -s 有點差别
-k :以 KBytes 列出容量顯示
-m :以 MBytes 列出容量顯示
fdisk:用于磁盤分區
磁盤的挂載:mount [-t 檔案系統] [-L Label名] [-o 額外選項] [-n] 裝置檔案名 挂載點
mkdir /mnt/hdc6
mount /dev/hdc6 /mnt/hdc6
磁盤的解除安裝:
umount [-fn] 裝置檔案名或挂載點
-f :強制删除
-n : 不更新 /etc/mtab 情況下删除
tmpfs:其實這是一個臨時檔案系統,駐留于記憶體中,使用它可以提高檔案通路速度,并能保證重新開機時會自動清除這些檔案。隻不過駐留在這裡的檔案是容易丢失的,也可以認為這裡就是記憶體,這個臨時檔案系統挂載在 /dev/shm 下。
臨時改變虛拟記憶體大小:mount -o remount,size=180M tmpfs /dev/shm
永久改變虛拟記憶體大小:vi /etc/fstab 編輯/etc/fstab, 把tmpfs這一行改為:
tmpfs /dev/shm tmpfs defaults,size=180M 0 0