1 Linux 系統啟動過程
Linux系統的啟動過程并不是大家想象中的那么復雜,其過程可以分為5個階段:
內核的引導。:操作系統---> /boot
運行 init。:操作系統---> /boot---> init進程
-
系統初始化。操作系統---> /boot---> init進程--->運行級別(7個級別)--->/etc/init.d
作用:激活交換分區,檢查磁盤,加載硬件模塊以及其它一些需要優先執行任務。
建立終端 。操作系統---> /boot---> init進程--->運行級別--->/etc/init.d
用戶登錄系統。操作系統---> /boot---> init進程--->運行級別--->/etc/init.d--->用戶登錄--->Login shell
2 Linux 文件基本屬性
更改文件屬性
2.1、chgrp:更改文件屬組
語法:
chgrp [-R] 屬組名文件名
參數選項
- -R:遞歸更改文件屬組,就是在更改某個目錄文件的屬組時,如果加上-R的參數,那么該目錄下的所有文件的屬組都會更改。
2.2、chown:更改文件屬主
chown:更改文件屬主,也可以同時更改文件屬組
語法:
chown [–R] 屬主名 文件名
chown [-R] 屬主名:屬組名 文件名
進入 /root 目錄(~)將install.log的擁有者改為bin這個賬號:
[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
將install.log的擁有者與群組改回為root:
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
2.3、chmod:更改文件9個屬性
Linux文件屬性有兩種設置方法,一種是數字,一種是符號。
Linux文件的基本權限就有九個,分別是owner/group/others三種身份各有自己的read/write/execute權限。
先復習一下剛剛上面提到的數據:文件的權限字符為:『-rwxrwxrwx』, 這九個權限是三個三個一組的!其中,我們可以使用數字來代表各個權限,各權限的分數對照表如下:
- r:4
- w:2
- x:1
每種身份(owner/group/others)各自的三個權限(r/w/x)分數是需要累加的,例如當權限為: [-rwxrwx---] 分數則是:
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others= --- = 0+0+0 = 0
所以等一下我們設定權限的變更時,該文件的權限數字就是770啦!變更權限的指令chmod的語法是這樣的:
chmod [-R] xyz 文件或目錄
選項與參數:
- xyz : 就是剛剛提到的數字類型的權限屬性,為 rwx 屬性數值的相加。
- -R : 進行遞歸(recursive)的持續變更,亦即連同次目錄下的所有文件都會變更
舉例來說,如果要將.bashrc這個文件所有的權限都設定啟用,那么命令如下:
[root@www ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
那如果要將權限變成 -rwxr-xr-- 呢?那么權限的分數就成為 [4+2+1][4+0+1][4+0+0]=754。
2.4、符號類型改變文件權限
還有一個改變權限的方法呦!從之前的介紹中我們可以發現,基本上就九個權限分別是(1)user (2)group (3)others三種身份啦! 那么我們就可以藉由u, g, o來代表三種身份的權限!
此外, a 則代表 all 亦即全部的身份!那么讀寫的權限就可以寫成r, w, x!也就是可以使用底下的方式來看:
chmod | ugoa | +(加入)-(除去)=(設定) | rwx | 文件或目錄 |
---|---|---|---|---|
如果我們需要將文件權限設置為 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 來設定:
[root@www ~]# ls -al .bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod a+w .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
而如果是要將權限去掉而不改變其他已存在的權限呢?例如要拿掉全部人的可執行權限,則:
[root@www ~]# chmod a-x .bashrc
[root@www ~]# ls -al .bashrc
-rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc
3 Linux 文件與目錄管理
3.1、 處理目錄的常用命令
- ls: 列出目錄
- cd:切換目錄
- pwd:顯示目前的目錄
- mkdir:創建一個新的目錄
- rmdir:刪除一個空的目錄
- cp: 復制文件或目錄
- rm: 移除文件或目錄
你可以使用 man [命令] 來查看各個命令的使用文檔,如 :man cp。
3.2、 Linux 文件內容查看
- cat 由第一行開始顯示文件內容
- tac 從最后一行開始顯示,可以看出 tac 是 cat 的倒著寫!
- nl 顯示的時候,順道輸出行號!
- more 一頁一頁的顯示文件內容
- less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!
- head 只看頭幾行
- tail 只看尾巴幾行
4 Linux 用戶和用戶組管理
Linux系統用戶賬號的管理
用戶賬號的管理工作主要涉及到用戶賬號的添加、修改和刪除。
添加用戶賬號就是在系統中創建一個新賬號,然后為新賬號分配用戶號、用戶組、主目錄和登錄Shell等資源。剛添加的賬號是被鎖定的,無法使用。
4.1、添加新的工作組
添加:groupadd 組名 #groupadd group
刪除:groupdel 用戶組
修改:groupmod 選項 用戶組
4.2、添加新的用戶
添加:useradd 選項 用戶名
刪除:userdel 選項 用戶名
修改:usermod 選項 用戶名
用戶口令的管理
passwd 選項 用戶名
5 Linux 磁盤管理
Linux磁盤管理常用三個命令為df、du和fdisk。
- df:列出文件系統的整體磁盤使用量 -h -aT
- du:檢查磁盤空間使用量
- fdisk:用于磁盤分區
- mkfs:磁盤格式化
- mount:磁盤掛載
- umount:磁盤卸除
5 Linux vi/vim
6 Linux yum命令
yum( Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。
基於RPM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令,而且命令簡潔而又好記。
6.1、yum 語法
yum [options] [command] [package ...]
- options:可選,選項包括-h(幫助),-y(當安裝過程提示選擇全部為"yes"),-q(不顯示安裝的過程)等等。
- command:要進行的操作。
- package操作的對象。
6.2、yum常用命令
- 1.列出所有可更新的軟件清單命令:yum check-update
- 2.更新所有軟件命令:yum update
- 3.僅安裝指定的軟件命令:yum install <package_name>
- 4.僅更新指定的軟件命令:yum update <package_name>
- 5.列出所有可安裝的軟件清單命令:yum list
- 6.刪除軟件包命令:yum remove <package_name>
- 7.查找軟件包 命令:yum search <keyword>
- 8.清除緩存命令:
- yum clean packages: 清除緩存目錄下的軟件包
- yum clean headers: 清除緩存目錄下的 headers
- yum clean oldheaders: 清除緩存目錄下舊的 headers
- yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除緩存目錄下的軟件包及舊的headers
備注:配置本地Yum倉庫
7 Linux scp命令
#scp local_file remote_username@remote_ip:remote_folder
$scp testHadoop-0.0.1-SNAPSHOT.jar hadoop@115.159.192.111:/home/hadoop/
8 nohup和&的區別
nohup: 永久執行
&: 指在后臺運行
運行 nohup --help
Run COMMAND, ignoring hangup signals. 可以看到是“運行命令,忽略掛起信號”
就是指,用nohup運行命令可以使命令永久的執行下去,和用戶終端沒有關系,例如我們斷開SSH連接都不會影響他的運行,注意了nohup沒有后臺運行的意思;&才是后臺運行
&是指在后臺運行,但當用戶推出(掛起)的時候,命令自動也跟著退出
那么,我們可以巧妙的吧他們結合起來用就是
nohup COMMAND &
這樣就能使命令永久的在后臺執行
#舉個例子nohup tail -f nohup.out
#然后退出登錄,再連接,用ps -ef 你會還能看到在運行
$ps -ef
$root 3457 1 0 18:20 ? 00:00:00 tail -f nohup.out
另外,nohup執行后,會產生日子文件,把命令的執行中的消息保存到這個文件中,一般在當前目錄下,如果當前目錄不可寫,那么自動保存到執行這個命令的用戶的`home`目錄下,例如`root`的話就保存在`/root/`下
9 >和>>
小于號:命令默認從鍵盤獲得的輸入,改成從文件,或者其它打開文件以及設備輸入
>> 是追加內容
> 是覆蓋原有內容
10 2>&1
0表示標準輸入
1表示標準輸出
2表示標準錯誤輸出
默認為標準輸出重定向,與 1> 相同
2>&1 意思是把 標準錯誤輸出 重定向到 標準輸出.
&>file 意思是把 標準輸出 和 標準錯誤輸出 都重定向到文件file中
11 搜索命令
find:
linux下最強大的搜索命令為”find“。它的格式為”find <指定目錄> <指定條件> <指定動作>“;比如使用find命令搜索在根目錄下的所有interfaces文件所在位置,命令格式為”find / -name 'interfaces'“
locate
使用locate搜索linux系統中的文件,它比find命令快。因為它查詢的是數據庫(/var/lib/locatedb),數據庫包含本地所有的文件信息。使用locate命令在根目錄下搜索interfaces文件的命令為”locate interfaces“
whereis name
使用”whereis“命令可以搜索linux系統中的所有可執行文件即二進制文件。使用whereis命令搜索grep二進制文件的命令為”whereis grep“。
which
使用which命令查看系統命令是否存在,并返回系統命令所在的位置。使用which命令查看grep命令是否存在以及存在的目錄的命令為”which grep“。
type
使用type命令查看系統中的某個命令是否為系統自帶的命令。使用type命令查看cd命令是否為系統自帶的命令;查看grep 是否為系統自帶的命令。
12 shell 和bash
shell:
1)是一個交互性命令解釋器。shell獨立于操作系統,這種設計讓用戶可以靈活選擇適合自己的shell。shell讓你在命令行鍵入命令,經過shell解釋后傳送給操作系統(內核)執行。
2)shell是一個程序,它在用戶和操作系統之間提供了一個面向行的可交互接口。
bash: bash是borne again shell的縮寫,它是shell的一種,Linux上默認采用的是bash。當你在命令行中敲入bash命令時,相當于進入bash環境,如果本身就是bash環境,那么就是進入一個子bash環境(相當于開了一個子進程)。