1. 程式人生 > >學習總結之Linux基礎知識

學習總結之Linux基礎知識

基礎 bug 引用 hosts 個人版 boot -s 發布 分配

在經過了一段時間的學習之後,不但對之前較模糊的知識點有了一個比較清晰的認識,還學到了一些沒學到的東西。下面對這些知識點做一個總結,一是想對這一階段畫上一個比較完美的句號,二是想把這篇博客當做以後的一個筆記之用吧,好了,廢話不多說,看看我這段時間都學了些什麽東東吧!

一、什麽是操作系統
人與計算機硬件之間的中介
二、Linux發展史
1969年一個沒有名字的系統誕生於貝爾實驗室,後來給他取名Unix,後來開始收取版權費,大概在1986年左右 譚寧邦教授根據Unix原型開發出一款名叫minix的操作系統,主要用於教學,但是大多功能實現不了,這時候一個叫斯托曼的人的站了出來,目標是開發一個自由的,開源的操作系統,替代Unix,並建立自由軟件基金會(FSF)為達成這一目標設立了GNU(優秀軟件:gawk,bash,gcc,emacs)項目並宣告GPL規則(所有人都可以自由傳播和修改開源軟件,但是必須把修改後的內容發布出來)雖然GNU項目優秀軟件一大堆,但是還少一個內核,這時候在91年時候托瓦茲開發了Linux內核,所以我們一般說我們使用的是GNU/Linux

二、Linux常用發行版本的區別
1)Fedora是Linux的社區版,說白了就是體驗版,一般新功能會在Fedora中發布,供大家體驗,同時提出bug或者建議;
2)Red hat是Linux當中一個比較著名的版本,本來有企業版和個人版,後來個人版不在開發改為Fedora,而企業版是要收費的
3)Centos就是redhat的企業版,而且是免費的,去掉紅帽中的收費軟件 去掉紅帽裏面的logo
三、鏡像文件下載
http://mirrors.aliyun.com/ 或 https://www.centos.org/
四、幾種分區方法
1)通用方法
/boot 引導分區 200M
swap 交換分區 內存的1.5倍(內存小於8G) 大於8G 給8G
/ 根分區 剩下多少給多少

2)數據非常重要
/boot
swap
/ 50-200G
/data 剩下多少給多少

3)不知道數據是否重要
/boot
swap
/ 50-200G
剩余的空間 不分配留著。
五、Linux常用文件及目錄作用

文件及目錄 作用
/etc/sysconfig/network-scripts/ifcfg-eth0 網卡配置文件
/etc/resolv.conf DNS配置文件
/etc/sysconfig/network 主機名稱( HOSTNAME )與啟動 Network 與否
/etc/hosts IP和域名的解析文件
/etc/fstab 開機自動掛載文件系統的文件
/etc/inittab Linux完成內核引導以後需要讀取的文件,Linux運行級別可以在這個文件中設置
/etc/init.d 服務啟動腳本所在的目錄
/etc/profile 這是每個用戶在登錄時都會運行的環境變量
/etc/bashrc 為每一個運行bash shell的用戶執行此文件,當bash shell被打開時,該文件被讀取
/etc/rc.local 開機啟動文件
/etc/issue linux本地終端登錄的歡迎語句存儲文件.net是遠程終端登錄顯示
/etc/motd 布告欄信息,每次用戶登錄時,/etc/motd文件的內容會顯示在用戶的終端
/usr/local 第三方軟件安裝的目錄
/var/log/messages 記錄系統信息,幾乎所有的開機系統發生的錯誤都會在此記錄
/var/log/secure 記錄登錄系統存取數據的文件;例如:pop3,ssh,telnet,ftp等都會記錄在此.
/var/spool/cron/ 以賬號來區分每個用戶自己的執行計劃
/proc/cpuinfo 提供了有關系統CPU的多種信息
/proc/meminfo 這個文件給出了內存狀態的信息
/proc/loadavg 這個文件給出以幾個不同的時間間隔計算的系統平均負載
/proc/mounts 這個文件以/etc/mtab文件的格式給出當前系統所安裝的文件系統信息

三、文件及其目錄的權限
1)權限對目錄及文件的意義
對於文件
r讀取文件內容
w修改文件的內容,但是需要r的配合沒有r配合強制修改退出,會清空文件的內容
x權限執行,需要r權限的配合

對於目錄
r 查看目錄裏面的內容如ls需要與x配合使用
w 可以在目錄裏面創建 刪除 重命名文件需要與x配合
x 可以進入(cd)到這個目錄

2)特殊權限;
suid 4表示--------->當普通用戶運行一個命令的時候能夠獲取到root權限並運行比較危險 chmod u+s /sbin/cat
dticky粘誌位 1表示--------->每個人都可以在目錄中創建文件目錄,但是只能管理自己的文件或目錄
3)隱藏權限
a=====append 只能追加
i=====immutable 無敵的 不可修改的
chattr---設置權限
lsattr----查看權限
4)默認權限
Umask默認權限位,就是我們在創建一個文件或者目錄的時候默認的權限是多少
五、inode與block
inode存放文件屬性信息每次創建一個文件消耗一個inode
block存放具體數據的地方每創建一個文件至少需要一個block
六、軟硬鏈接
軟鏈接也叫符號鏈接,和Windows的快捷方式差不多,文件塊中存放的是被鏈接文件的路徑,軟鏈接可以鏈接一個目錄
硬鏈接就是一個文件有多個別名,它們使用同一個inode號碼,所以在刪除一個文件後對另一個文件沒有影響,硬鏈接不能鏈接目錄
PS:文件被刪除條件1、硬鏈接數為0且無程序被占用可用lsof命令查看
七、正則表達式與統配符
1、通配符特殊符號

符號 作用 符號 作用
‘ ‘ 所見即所得,吃啥吐啥 ! 查找並運行歷史命令,find,AWK表示取反
" " 特殊符號會被解析運行 $ 取出變量的內容
$() 先運行裏面的命令 把結果留下 * 所有東西文件
> 先清空文件的內容 然後追加文件的最後 \ 撬棍,轉義字符
>> 追加重定向,在文件末尾添加內容 && 前一個命令執行成功,執行第二個命令
2> 錯誤重定向,只有錯誤的才會被添加到文件 {} 生成序列,如{1..10}
< 輸入重定向 . 當前目錄
<< 追加輸入重定向 .. 上級目錄
~ 當前用戶家目錄 ? 精確匹配如ll -d /etc/??m
ll 前一個命令執行失敗執行第二個命令 l 管道符號

2.、正則表達式
(1)、基礎正則

符號 功能
^ 以...開頭
$ 以...結尾
. 任意個字符,不包含空行
* 前一個字符重復0次到多次
.* 所有字符
^$ 空行
[] 匹配方括號內的任意一個字符,其中用-表示連續的幾個字符
[^] 表示不匹配括號內的字符

(2)擴展正則

符號 功能
l 或的意思,如aaalbbb表示匹配aaa或者bbb的內容
+ 前一個字符出現一次或者多次
() 括號內的內容包括一個整體,正向引用(反向引用)
{} 匹配在它前面的單個字符重現的次數區別,{n}指重現n次;{n,m}指重現n至m次;
? 表示前一個字符連續出現0次或1次

3、正則表達試與通配符區別

用途 匹配的內容 支持的命令
用來匹配文件名 匹配文件 大部分命令都支持
在文件中匹配文件的內容 匹配文件內容 Linux三劍客

八、正則表達式練習案例
1)、提取IP的n種方法

root@jiangjunwang ~]# ifconfig eth0|egrep -o ‘inet addr:[0-9.]+‘|egrep -o ‘[0-9.]+‘
192.168.52.130
[root@jiangjunwang ~]# ifconfig eth0|awk -F ‘[ :]+‘ ‘NR==2{print $4}‘
192.168.52.130
[root@jiangjunwang ~]# ifconfig eth0|sed -nr ‘2s#.addr:(.) B.*$#\1#gp‘
192.168.52.130

(2)、提取權限的幾種方法

root@jiangjunwang ~]# stat bb.txt|awk -F "[(/]" ‘NR==4{print $2}‘
0644
[root@jiangjunwang ~]# stat bb.txt |sed -nr ‘4s#^.(([0-9]+).$#\1#gp‘
0644
[root@jiangjunwang ~]# stat bb.txt |sed -n ‘4p‘|egrep -o "[1-9]+"
644

(3)、排除以#開頭的行和空行
創建測試文檔

[root@jiangjunwang ~]# cat >>name.txt <<EOF
aaa

#bb
cc
EOF

方法:

root@jiangjunwang ~]# egrep -v "^#|^$" name.txt
aaa
cc
@jiangjunwang ~]# grep -v "#" name.txt |awk ‘{if($0!="")print}‘
aaa
cc
[root@jiangjunwang ~]# awk ‘!/^#/&&/./{print} ‘ name.txt
aaa
cc
[root@jiangjunwang ~]# awk {‘if($0!=""&&!/^#/)print}‘ name.txt
aaa
cc

好了!以上差不多就是我這段時間所學到的知識了,看到這篇文章的朋友如果你也和我一樣是一個正在拼搏的IT小夥伴兒,那不如留下你寶貴的意見或建議我們一起奔跑吧!

學習總結之Linux基礎知識