在通過了一段時間的學習以後,不但對以前較模糊的知識點有了一個比較清晰的認識,還學到了一些沒學到的東西。下面對這些知識點作一個總結,一是想對這一階段畫上一個比較完美的句號,二是想把這篇博客當作之後的一個筆記之用吧,好了,廢話很少說,看看我這段時間都學了些什麼東東吧!node
1、什麼是操做系統
人與計算機硬件之間的中介
2、Linux發展史
1969年一個沒有名字的系統誕生於貝爾實驗室,後來給他取名Unix,後來開始收取版權費,大概在1986年左右 譚寧邦教授根據Unix原型開發出一款名叫minix的操做系統,主要用於教學,可是大多功能實現不了,這時候一個叫斯托曼的人的站了出來,目標是開發一個自由的,開源的操做系統,替代Unix,並創建自由軟件基金會(FSF)爲達成這一目標設立了GNU(優秀軟件:gawk,bash,gcc,emacs)項目並宣告GPL規則(全部人均可以自由傳播和修改開源軟件,可是必須把修改後的內容發佈出來)雖然GNU項目優秀軟件一大堆,可是還少一個內核,這時候在91年時候託瓦茲開發了Linux內核,因此咱們通常說咱們使用的是GNU/Linux
2、Linux經常使用發行版本的區別
1)Fedora是Linux的社區版,說白了就是體驗版,通常新功能會在Fedora中發佈,供你們體驗,同時提出bug或者建議;
2)Red hat是Linux當中一個比較著名的版本,原本有企業版和我的版,後來我的版不在開發改成Fedora,而企業版是要收費的
3)Centos就是redhat的企業版,並且是免費的,去掉紅帽中的收費軟件 去掉紅帽裏面的logo
3、鏡像文件下載
http://mirrors.aliyun.com/ 或 https://www.centos.org/
4、幾種分區方法
1)通用方法
/boot 引導分區 200M
swap 交換分區 內存的1.5倍(內存小於8G) 大於8G 給8G
/ 根分區 剩下多少給多少linux
2)數據很是重要
/boot
swap
/ 50-200G
/data 剩下多少給多少 正則表達式
3)不知道數據是否重要
/boot
swap
/ 50-200G
剩餘的空間 不分配留着。
5、Linux經常使用文件及目錄做用shell
文件及目錄 | 做用 |
---|---|
/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文件的格式給出當前系統所安裝的文件系統信息 |
3、文件及其目錄的權限
1)權限對目錄及文件的意義
對於文件
r讀取文件內容
w修改文件的內容,可是須要r的配合沒有r配合強制修改退出,會清空文件的內容
x權限執行,須要r權限的配合centos
對於目錄
r 查看目錄裏面的內容如ls須要與x配合使用
w 能夠在目錄裏面建立 刪除 重命名文件須要與x配合
x 能夠進入(cd)到這個目錄 bash
2)特殊權限;
suid 4表示--------->當普通用戶運行一個命令的時候可以獲取到root權限並運行比較危險 chmod u+s /sbin/cat
dticky粘志位 1表示--------->每一個人均可以在目錄中建立文件目錄,可是隻能管理本身的文件或目錄
3)隱藏權限
a=====append 只能追加
i=====immutable 無敵的 不可修改的
chattr---設置權限
lsattr----查看權限
4)默認權限
Umask默認權限位,就是咱們在建立一個文件或者目錄的時候默認的權限是多少
5、inode與block
inode存放文件屬性信息每次建立一個文件消耗一個inode
block存放具體數據的地方每建立一個文件至少須要一個block
6、軟硬連接
軟連接也叫符號連接,和Windows的快捷方式差很少,文件塊中存放的是被連接文件的路徑,軟連接能夠連接一個目錄
硬連接就是一個文件有多個別名,它們使用同一個inode號碼,因此在刪除一個文件後對另外一個文件沒有影響,硬連接不能連接目錄
PS:文件被刪除條件一、硬連接數爲0且無程序被佔用可用lsof命令查看
7、正則表達式與統配符
一、通配符特殊符號app
符號 | 做用 | 符號 | 做用 | |
---|---|---|---|---|
' ' | 所見即所得,吃啥吐啥 | ! | 查找並運行歷史命令,find,AWK表示取反 | |
" " | 特殊符號會被解析運行 | $ | 取出變量的內容 | |
$() | 先運行裏面的命令 把結果留下 | * | 全部東西文件 | |
> | 先清空文件的內容 而後追加文件的最後 | \ | 撬棍,轉義字符 | |
>> | 追加劇定向,在文件末尾添加內容 | && | 前一個命令執行成功,執行第二個命令 | |
2> | 錯誤重定向,只有錯誤的纔會被添加到文件 | {} | 生成序列,如{1..10} | |
< | 輸入重定向 | . | 當前目錄 | |
<< | 追加輸入重定向 | .. | 上級目錄 | |
~ | 當前用戶家目錄 | ? | 精確匹配如ll -d /etc/??m | |
ll | 前一個命令執行失敗執行第二個命令 | l | 管道符號 |
2.、正則表達式
(1)、基礎正則 ssh
符號 | 功能 |
---|---|
^ | 以...開頭 |
$ | 以...結尾 |
. | 任意個字符,不包含空行 |
* | 前一個字符重複0次到屢次 |
.* | 全部字符 |
^$ | 空行 |
[] | 匹配方括號內的任意一個字符,其中用-表示連續的幾個字符 |
[^] | 表示不匹配括號內的字符 |
(2)擴展正則ide
符號 | 功能 |
---|---|
l | 或的意思,如aaalbbb表示匹配aaa或者bbb的內容 |
+ | 前一個字符出現一次或者屢次 |
() | 括號內的內容包括一個總體,正向引用(反向引用) |
{} | 匹配在它前面的單個字符重現的次數區別,{n}指重現n次;{n,m}指重現n至m次; |
? | 表示前一個字符連續出現0次或1次 |
三、正則表達試與通配符區別學習
用途 | 匹配的內容 | 支持的命令 |
---|---|---|
用來匹配文件名 | 匹配文件 | 大部分命令都支持 |
在文件中匹配文件的內容 | 匹配文件內容 | Linux三劍客 |
8、正則表達式練習案例
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小夥伴兒,那不如留下你寶貴的意見或建議咱們一塊兒奔跑吧!