linux基礎學習筆記
目錄:
1.磁盤分區
2.目錄結構
3.linux命令的分類
4.常見的linux命令
1.命令編輯的幾個輔助操作
2.命令幫助
3.查看文件內容cat,more,less,head,tail
4.統計命令wc
5.檢索和過濾文件內容grep命令
6.壓縮和解壓縮:gzip(gunzip)和bzip2(bunzip2)
7.歸檔及解歸檔:tar
8.vim編輯器
9.防火牆狀態查看以及關閉等
10.查找文件或目錄 find 指定查找路徑 -name 指定查找的文件名及目錄名 例如find /etc -name passwd
11.yum安裝
12.創建用戶
5.linux init進程
一、磁盤分區
linux分區不同於windows,linux下硬盤設備名為(IDE硬盤為hdx(x為從a—d)因為IDE硬盤最多四個,SCSI,SATA,USB硬盤為sdx(x為a—z)),硬盤主分區最多為4個,用fdisk –l查看設備名。
sd:串口,SCSI,SAS,USB存儲
hd:並口
主分區:sdb1-sdb4 主分區存放操作系統 #硬盤主分區最多為4個,這里以sdb硬盤為例
擴展分區:sdb5
邏輯分區:從sdb6開始
硬盤編號:a、b、c、....z
分區編號:1、2、3、...
例如:
sdb3(第2塊SCSI硬盤的第3個主分區)
hda7(第1塊IDE硬盤的第2個邏輯分區)
啟動分區的掛載點是/boot 建議200M(centos6.5)
交換分區沒有掛載點,文件系統類型是swap,虛擬內存至少物理內存的2倍
根分區 存放os,掛載點/
二、目錄結構
linux目錄結構如下圖:
2.根目錄,一般根目錄下只存放目錄,不要存放文件,/etc、/bin、/dev、/lib、/sbin應該和根目錄放置在一個分區中。
/bin 普通用戶執行的命令存放的地方
/sbin 管理員執行的命令存放的地方
/usr應用程序存放的目錄
/usr/bin 存放應用程序
/usr/lib 存放不能直接運行的,卻是許多程序運行所必需的一些函數庫文件
/usr/local 存放軟件升級包
/lib 系統使用的函數庫的目錄
/root 管理員的家目錄(宿主目錄)
/home 普通用戶的家目錄
/var 放置系統執行過程中經常變化的文件,如隨時更改的日志文件
/etc 存放各種配置文件
/srv 服務啟動之后要訪問的目錄
/mnt 光盤默認掛載點
/dev 存放linux系統下的設備文件,訪問該目錄下某個文件,相當於訪問某個設備
/opt 給主機額外安裝軟件所存放的目錄
/tmp 一般用戶或正在執行的程序臨時存放文件的目錄
三、linux命令的分類
linux命令概念:用於實現一類功能的指令或程序,命令的執行依賴於解釋器程序
內部命令:屬於shell解釋器的 一部分,在硬盤上找不到,系統啟動自動加載到內存中
外部命令:獨立於shell解釋器之外的程序文件,一般在硬盤中可以找到
四、常見的linux命令
1.命令編輯的幾個輔助操作(快捷鍵不區分大小寫)
Tab鍵,自動補全
反斜杠"\":強制換行
快捷鍵ctrl+U:清空至行首
快捷鍵ctrl+K:清空至行尾
快捷鍵ctrl+L:清屏
快捷鍵ctrl+C:取消本次命令編輯
2.命令幫助
help 內部命令(例如:help cd)
外部命令 --help (例如:ls --help)
獲取外部命令在線手冊:man 外部命令(例如:man ls)
3.查看文件內容cat,more,less,head,tail
cat /root/lshelp.txt(無分屏瀏覽功能,只適合於文件內容在一屏以內的文件)
cat /etc/resolv.conf /etc/hosts(查看多個文件內容)
more /root/lshelp.txt(有分屏瀏覽功能)
less /root/lshelp.txt(有分屏瀏覽功能)
也可以:cat /root/lshelp.txt | more
或者:cat /root/lshelp.txt | less
head /root/lshelp.txt(默認顯示lshelp.txt文件頭部的前10行內容)
head -5 /root/lshelp.txt(顯示lshelp.txt文件頭部的前5行內容)
tail /root/lshelp.txt(默認顯示lshelp.txt文件尾部的后10行內容)
tail -5 /root/lshelp.txt(顯示lshelp.txt文件尾部的后5行內容)
tail -f /root/lshelp.txt(動態顯示lshelp.txt文件尾部新增加的內容) #測試另開一個終端窗口,用echo "sfdfdds" > lshelp.txt
4.統計命令wc
-l:統計行數 例如:wc -l /root/lshelp.txt(統計lshelp.txt文件中有多少行)
-w:統計單詞數 例如:wc -w /root/lshelp.txt(統計lshelp.txt文件中有多少單詞)
-c:統計字節數 例如:wc -l /root/lshelp.txt(統計lshelp.txt文件的字節數)
還可以:ps -aux | wc -l (統計有多少個進程,一行一個進程)
5.檢索和過濾文件內容grep命令
作用:在文件中查找並顯示指定包含字符串的行
選項:-i(忽略大、小寫) -v(反轉查找)
查找條件:
查找"要查找的字符串": "要查找的字符串" 例如:grep "NAME" /root/lshelp.txt
查找以某字符串為開頭: "^某字符串" 例如:grep "^NAME" /root/lshelp.txt
查找以某字符串為結尾: "某字符串$" 例如:grep "NAME$" /root/lshelp.txt
查找空行: "^$" 例如:grep "^$" /root/lshelp.txt
其它例子:
grep -i "NAME" /root/lshelp.txt(查找包含NAME字符串的行,忽略大小寫)
grep -v "^$" /root/lshelp.txt(不顯示空行)
grep -v "^$" /root/lshelp.txt | grep -v "^#" (不顯示空行和帶#號的行)
6.壓縮和解壓縮:gzip(gunzip)和bzip2(bunzip2)
1)壓縮
cp /etc/yum.conf /root(復制一個文件到root目錄,對該文件進行壓縮操作)
cd /root
gzip yum.conf
ls yum.conf.gz(查看是否有壓縮文件)
cp /etc/yum.conf /root/yum1.conf
cd /root
gzip yum1.conf
ls yum1.conf.bz2(查看是否有壓縮文件)
2)解壓縮
gzip -d yum.conf.gz
gunzip yum.conf.gz
bzip2 -d yum1.conf.bz2
gunbzip2 yum1.conf.bz2
7.歸檔及解歸檔:tar
常見選項:
-c:建立歸檔文件
-x:解歸檔
-v:顯示過程
-f:指定歸檔文件
-p:保留原有權限
-t:查看歸檔包中的文件
-z:啟用gzip壓縮
-j:啟用bzip2壓縮
-C:釋放歸檔時,指定目標路徑
例子:
cd /root
tar -cvf etc.tar /etc/*
(對/etc目錄進行歸檔,存放在當前路徑,歸檔文件名為:etc.tar)
mkdir /backup(在根下創建backup目錄
tar -cvf /backup/etc.tar /etc/*
(對/etc目錄進行歸檔,存放在/backup目錄,歸檔文件名為:etc.tar)
mkdir test1 test2(在當前路徑下創建test1、test2目錄)
tar -xvf etc.tar -C test1
(對當前路徑下的歸檔文件etc.tar,進行解歸檔至當前路徑下的test1目錄中)
tar -zcvf etc.tar.gz /etc/*(創建歸檔並壓縮,壓縮方式為:gzip) #所有的操作都有f選項 必須放在所有選項的最后
tar -jcvf etc.tar.bz2 /etc/*(創建歸檔並壓縮,壓縮方式為:bzip2)
tar -zxvf etc.tar.gz -C /test/ 解壓歸檔
tar -tf etc.tar.gz(查看gzip格式的歸檔文件中的文件列表)
tar -tf etc.tar.bz2(查看bzip2格式的歸檔文件中的文件列表)
8.vim編輯器
1)三種模式:命令模式、輸入模式、末行模式
命令模式----按a、i、o等鍵----->輸入模式
輸入模式----按esc鍵----->返回命令模式
命令模式----輸入冒號:----->末行模式
末行模式----按esc鍵----->返回命令模式
輸入模式和末行模式之間不能直接轉換,只能通過命令模式間接轉換
cd /root
cp /etc/sudo.conf /root
vim /root/sudo.conf(使用vim編輯器打開某文件,直接進入命令模式)
2)光標移動
行內快速跳轉:(命令模式)
跳轉至行首:Home鍵或“^”(shift+6)、數字“0”
跳轉至行尾:End鍵或“$”鍵
行內快速跳轉:(命令模式)
跳轉至文檔的首行:1G或者gg
跳轉至文檔的尾行:G
跳轉到文件中的第#行: #G
行號:(末行模式)
:set nu(顯示行號)
:set nonu (取消顯示行號)
3)復制、粘貼、刪除:(命令模式)
復制:
光標所在行(當前行):yy
從光標所在行開始的#行:#yy
粘貼:
p:粘貼到目標位置的光標前面
P:粘貼到目標位置的光標后面
刪除:
單個字符:x、del、delete、
行:
當前光標所在行:dd
從光標所在行開始的#行:#dd
刪除當前光標之前到行首的所有字符:d^
刪除當前光標之前到行首的所有字符:d$
4)內容查找:(命令模式)
從上到下進行查找:/要查找的字符串
從下到上進行查找:?要查找的字符串
向下定位:n
向上定位:N
5)撤銷及保存:(命令模式)
撤銷一次:u
撤銷多次:多執行幾次u命令
撤銷全部操作:U(大寫)
保存:ZZ(大寫)
6)保存及退出:(末行模式)
:w (保存)
:w /root/test.txt (另存)
:q (退出,未作修改)
:q! (退出,修改內容后,不保存退出)
:wq (保存退出)
7)打開或編輯文件:(末行模式)
:e /root/yum.conf (編輯文件)
:r /root/test.txt (打開文件)
8) 文件內容替換:(末行模式)
:s /old/new (在光標所在行查找第一個old字符串,並替換為new字符串)
:s /old/new/g (在光標所在行查找所有的old字符串,並都替換為new字符串)
:#,# s /old/new/g (在指定的行之間查找所有的old字符串,並都替換為new字符串)
:% s /old/new/g (在全文中查找所有的old字符串,並都替換為new字符串)
:% s /old/new/gc (在全文中查找所有的old字符串,並都替換為new字符串,但要確認)
9.防火牆狀態以及關閉
chkconfig --list iptables(查看iptables防火牆狀態)
chkconfig iptables off(修改iptables服務開機后自動關閉)
service iptables stop(停止iptables防火牆服務)
iptables -F 清除防火牆策略
setenforce 0(臨時關閉selinux) #永久關閉selinux需要在/etc/selinux/config修改SELINUX=enforcing為SELINUX=disabled
10.查找文件或目錄 find 指定查找路徑 -name 指定查找的文件名及目錄名 例如find /etc -name passwd
11.yum
yum erase 軟件名 yum remove 軟件名 卸載軟件
yum install 軟件名 安裝
yum list 軟件名 列出某個軟件的信息
yum info 軟件名 查詢某個軟件的信息
yum search 軟件名 搜索某個軟件
五、linux init進程
所謂的init進程,它是一個由內核啟動的用戶級進程。
init 進程是系統中第一個進程,它的進程ID(pid)是1
init服務的配置文件是/etc/inittab
init服務的配置文件如下:
運行級別:
0:關機
1:單用戶模式
2: 多用戶,沒有 NFS
3:多用戶
4:是不使用的
5:是xwindows,也就是有界面的
6:重啟
如果不小心把init默認運行級別設置為0或6的解決辦法
我們知道init0和6級別分別對應的是關機和重啟,如果把這兩個設為默認運行級別我們是無法進入系統的,所以我們就要借助救援系統了,在開機GRUB界面按e如下:
選擇第二個接着按e
在命令行最后輸入1(進入單用戶模式),回車退后到上個界面
接着按b進入單用戶模式,我們這就進入到單用戶模式了
我們只需要進入/etc/inittab配置文件中把最后的0或6改為3,重啟系統就可以
重啟系統之后就可以
init的運行級別配置是在/etc/init,而這些級別的定義是在/etc/rc.d目錄內,如下圖
這里的rc{0..6}.目錄對應相應的級別里面放的都是要啟動和關閉的進程,查看當前運行的級別,並進入級別配置文件
這里以K開頭的都是要關閉的進程(當前運行級別下),而以S開頭的則是要啟動的進程,我們可以隨便找一個測試下