Linux 學習記錄 一(安裝、基本檔案操作).
Linux distributions主要分為兩大系統,一種是RPM方式安裝軟體的系統,包括Red Hat,Fedora,SuSE等都是這類;一種則是使用Debian的dpkg方式安裝軟體的系統,包括Debian、Ubuntu、B2D等等。
底下列出幾個主要的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:
- Gentoo:http://www.gentoo.org/
備註:如果是個人學習使用的話,建議使用社群單位發行版的即可。如果是做伺服器使用,推薦使用商業版,比較穩定,比較少bug。
1、虛擬機器vmware下載地址:
https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0|PLAYER-1256|product_downloads
遠端檔案使用的是:Xshell 和 Xftp
2、系統命令:
ifconfig eth0 192.168.109.109 臨時修改IP地址(臨時修改,重啟網絡卡或伺服器後又會還原)
arch 顯示機器的處理器架構(1)
uname -m 顯示機器的處理器架構(2)
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系統版本的命令
3、要讓IP地址永久生效: vim /etc/sysconfig/network-scripts/ifcfg-eth0
4、開啟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
5、Linux名字的由來,是當時作者將初版的Linux釋出在網上,供別人下載完善,而那個核心資料夾就叫Linux,就這麼叫著了。而為什麼Linux的吉祥物是一隻企鵝呢?是因為當時大家要發行穩定版的Linux的時候詢問作者將什麼動物作為吉祥物,而作者對小時候在動物園被企鵝咬了一口印象深刻,竟然就選擇將企鵝作為Linux的吉祥物了。Linux是一套免費使用和自由傳播的的類Unix作業系統,是一個基於POSIX和UNIX的多使用者、多工、支援多執行緒和多CPU的作業系統;執行主要的UNIX工具軟體、應用程式和網路協議。
6、Linux發行版簡單點就是將Linux核心與應用軟體做一個打包。
7、Linux系統有7個執行級別(runlevel):
- 執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動
- 執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登陸
- 執行級別2:多使用者狀態(沒有NFS)
- 執行級別3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式
- 執行級別4:系統未使用,保留
- 執行級別5:X11控制檯,登陸後進入圖形GUI模式
- 執行級別6:系統正常關閉並重啟,預設執行級別不能設為6,否則不能正常啟動
8、Linux關機
- sync 將資料由記憶體同步到硬碟中
- shutdown 關機指令
- shutdown -h 10 '系統將在10分鐘後關機' 系統將在10分鐘後關機,並子頁面上顯示
- shutdown -h now或者halt 立馬關閉系統
- shutdown -h 20:25
- shutdown -r now或者reboot 系統立馬重啟
9、目錄結構
/bin 常用命令目錄
/dev:連線外部裝置的目錄
/boot、/etc:系統中的 配置檔案
/usr :相當於windows中的program files
/root 超級管理員操作目錄
/bin,/sbin,/user/bin,/user/sbin:系統預設的執行檔案的放置目錄
/var 存放日誌的目錄
/代表根目錄
./代表當前的目錄
../代表上一層目錄
10、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
11、基礎目錄命令
- 列出目錄: 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
- 建立檔案時:(-rw-rw-rw-)-(-----w--w-)= -rw-r--r--
- 建立的目錄時:(drwxrwxrwx)-(d----w--w-)=drwxr-xr-x
- 修改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' 命令
11、系統使用者賬號的管理
- 新增新的賬號 :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即可。個人賬號修改密碼的時候需要自己原密碼,而root賬戶不需要知道原來密碼
- 切換使用者:su 使用者名稱 如果使用者名稱不填的話預設root,root轉普通使用者不需要輸入密碼,普通使用者轉root需要輸入密碼 ,如果需要圖形介面的支援需要在切換使用者前執行 xhost +
12、系統使用者組的管理(使用者組可以在/etc/group檔案中檢視)
- 新增一個使用者組: groupadd 選項 使用者組
-g 指定新使用者組的組標識號
-o 一般與-g選項同時使用,表示新使用者組的GID可以與系統已有使用者組的GID相同。
- 刪除一個已有的使用者組: groupdel 使用者組
- 修改使用者組的屬性 groupmod 選項 使用者組
-g 指定新使用者組的組標識號
-o 一般與-g選項同時使用,表示新使用者組的GID可以與系統已有使用者組的GID相同。
-n 重新命名使用者組
groupmod -n group2 group3(將group3改名為group2)
- 切換使用者組 newgrp root
- /etc/passwd 記錄著使用者的一些基本屬性
使用者名稱:口令:使用者標識號:組標識號:註釋性描述:主目錄:登入Shell
使用者名稱:大小寫字母 、/、數字組成,不能用 : ,不建議使用連字元- + . 使用者識別符號:一般情況下與使用者一一對應,0為root使用者,1-99為系統保留管理員使用者。預設從0-65535 登入shell :使用者登陸後,要啟動一個程序,負責將使用者的操作傳給核心,這個程序是使用者登入到系統後執行的命令直譯器或某個特定的程式,即Shell。 系統中有一類使用者稱為偽使用者,他們在/etc/passwd 中也佔有一條記錄,但是不能登入,因為他們的登入shell為空,他們的存在主要是方便系統管理,滿足相應的系統程序對檔案宿主的要求,常見的偽使用者如下所示:
bin 擁有可執行的使用者命令檔案
sys 擁有系統檔案
adm 擁有帳戶檔案
uucp UUCP使用
lp lp或lpd子系統使用
nobody NFS使用
- /etc/shadow 使用者的密碼資訊
登入名:加密口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌
最後一次修改時間:最後一次修改口令距離某個時間點的天數。
最小時間間隔:兩次修改口令之間所需要的最小天數
最大時間間隔:口令保持有效的最大天數
警告時間:欄位表示的是從系統開始警告使用者到使用者密碼正式失效之間的天數。
不活動時間:表示的是使用者沒有登入活動但賬號仍能保持有效的最大天數。
失效時間:欄位給出的是一個絕對的天數,如果使用了這個欄位,那麼就給出相應賬號的生存期。期滿後,該賬號就不再是一個合法的賬號,也就不能再用來登入了。
- /etc/group 使用者組的所有資訊
組名:口令:組標識號:組內使用者列表
12、Linux磁碟管理
Linux支援的檔案系統有哪些:ls -l /lib/modules/$(uname -r)/kernel/fs
cat /proc/filesystems:檢視已經載入到記憶體中的檔案系統
lsblk :列出本系統所有磁碟和磁碟內的分割槽資訊
df:列出檔案系統的整體磁碟使用量
du:列出磁碟空間使用量
fdisk:用於磁碟分割槽
- df [-ahikHTm] [目錄或檔名]
-a :列出所有的檔案系統,包括系統特有的 /proc 等檔案系統; -k :以 KBytes 的容量顯示各檔案系統; -m :以 MBytes 的容量顯示各檔案系統; -h :以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示; -H :以 M=1000K 取代 M=1024K 的進位方式; -T :顯示檔案系統型別, 連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出; -i :不用硬碟容量,而以 inode 的數量來顯示
- du [-ahskm] 檔案或目錄名稱
-a :列出所有的檔案與目錄容量,因為預設僅統計目錄底下的檔案量而已。 -h :以人們較易讀的容量格式 (G/M) 顯示; -s :列出總量而已,而不列出每個各別的目錄佔用容量; -S :不包括子目錄下的總計,與 -s 有點差別。 -k :以 KBytes 列出容量顯示; -m :以 MBytes 列出容量顯示;
- 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
- 磁碟的掛載與刪除
掛載:mount [-t 檔案系統] [-L Label名] [-o 額外選項] [-n] 裝置檔名 掛載點
[root@www ~]# mkdir /mnt/hdc6
[root@www ~]# mount /dev/hdc6 /mnt/hdc6
解除安裝:umount [-fn] 裝置檔名或掛載點
-f :強制刪除
-n : 不升級 /etc/mtab 情況下刪除
umount /dev/hdc6