天天看點

Linux 學習記錄一(安裝、基本檔案操作).

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 等等。

Linux 學習記錄一(安裝、基本檔案操作).
底下列出幾個主要的Linux distributions 發行者位址:

  • 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      
Linux 學習記錄一(安裝、基本檔案操作).

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、目錄結構

Linux 學習記錄一(安裝、基本檔案操作).

/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兩種

Linux 學習記錄一(安裝、基本檔案操作).

當 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