每个程序员都应该知道的Linux基础知识!全文4900字,没有耐心的不建议看 ——( Linux文件系统 + 系统管理类命令 + bash基础特性)
文章目錄
- - Linux的文件系統(tǒng)
- - LSB
- - FHS
- - 根文件系統(tǒng)
- - 對(duì)根文件系統(tǒng)下目錄的概述:
- /boot
- /bin
- /sbin
- /lib
- /lib64
- /etc
- /home
- /root
- /media
- /mnt
- /dev
- /opt
- /srv
- /tmp
- /usr
- /var
- /proc
- /sys
- /lost+found
- /selinux
- - Linux上的應(yīng)用程序的組成部分
- 二進(jìn)制程序
- 庫(kù)文件
- 配置文件
- 幫助文件
- - Linux下的文件類型
- - Linux下基本的系統(tǒng)管理類命令
- - 關(guān)機(jī)或重啟命令
- - 用戶信息查看命令
- Others
- - bash基礎(chǔ)特性及基礎(chǔ)命令
- - bash的基礎(chǔ)特性
- 命令歷史
- 命令補(bǔ)全
- - 練習(xí)
- - 擴(kuò)展
- - 寫在最后的話:
這里是一段防爬蟲文本,請(qǐng)讀者忽略。 本文原創(chuàng)首發(fā)于CSDN,作者IDYS 博客首頁(yè):https://blog.csdn.net/weixin_41633902/ 本文鏈接:https://blog.csdn.net/weixin_41633902/article/details/105678252
- Linux的文件系統(tǒng)
首先我們來(lái)了解兩個(gè)Linux的標(biāo)準(zhǔn)規(guī)范
- LSB
LSB: Linux Standard Base (Linux標(biāo)準(zhǔn)規(guī)范)是一個(gè)在Linux基金會(huì)結(jié)構(gòu)下對(duì)Linux發(fā)行版的聯(lián)合項(xiàng)目,其目標(biāo)使Linux操作系統(tǒng)符合軟件系統(tǒng)架構(gòu),或文件系統(tǒng)架構(gòu)標(biāo)準(zhǔn)的規(guī)范及標(biāo)準(zhǔn) —— 簡(jiǎn)單點(diǎn)說(shuō)就是定義Linux文件系統(tǒng)架構(gòu)規(guī)范的一個(gè)標(biāo)準(zhǔn)
- FHS
FHS:Filessystem Heirache Standard(文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn))定義Linux操作系統(tǒng)中的主要目錄及目錄內(nèi)容。
- 根文件系統(tǒng)
下面內(nèi)容主要講解linux根文件系統(tǒng)(linux root filesystem)下的目錄結(jié)構(gòu)
- linux根文件系統(tǒng)下的主要目錄有
/etc,/usr,/var,/root,/home,/dev
# 查看linux根目錄下內(nèi)容的命令 ls /- 查看結(jié)果如下:
- 對(duì)根文件系統(tǒng)下目錄的概述:
/boot
引導(dǎo)文件存放目錄,內(nèi)核文件(vmlinuz)、引導(dǎo)加載器(bootloader,grub)都存放于此目錄
/bin
供所有用戶使用的基本命令:不能關(guān)聯(lián)至獨(dú)立分區(qū),OS啟動(dòng)即會(huì)用到的程序
/sbin
管理類的基本命令:不能關(guān)聯(lián)至獨(dú)立分區(qū),OS啟動(dòng)即會(huì)用到的程序
/lib
基本共享庫(kù)文件,以及內(nèi)核模塊文件(lib/modules)
/lib64
專用于x86_64系統(tǒng)上的輔助共享庫(kù)文件存放位置
/etc
配置文件目錄(存放的配置文件都為純文本文件)
-
/etc/opt
- 存放 /opt 目錄下的配置文件
-
/etc/X11
- 存放 X Windows 系統(tǒng)的配置文件
-
/etc/passwd
- 存放系統(tǒng)用戶信息文件
-
/etc/passwd
- 存放磁盤掛載信息文件
/home
普通用戶的家目錄,當(dāng)使用useradd創(chuàng)建用戶時(shí),默認(rèn)會(huì)在/home下創(chuàng)建一個(gè)與用戶同名的文件夾,同時(shí)會(huì)復(fù)制 /etc/skel/ 下的文件到該目錄下
在CentOS中,當(dāng)創(chuàng)建新用戶時(shí),默認(rèn)會(huì)將/etc/skel下的隱藏文件全部復(fù)制到該用戶的家目錄下。所以在你創(chuàng)建用戶時(shí),你會(huì)在該用戶的家目錄下發(fā)現(xiàn)一些隱藏文件。
# 查看隱藏文件的命令 ls -a/root
管理員的家目錄
- 普通用戶實(shí)現(xiàn)root權(quán)限的方法
對(duì)/etc/sudoers文件,進(jìn)行配置。實(shí)現(xiàn)對(duì)用戶的授權(quán)
執(zhí)行sudo命令,然后輸入該用戶自己的密碼
/media
掛載便捷式移動(dòng)設(shè)備的目錄
-
當(dāng)我們需要掛載一些移動(dòng)設(shè)備時(shí)
比如需要掛載光驅(qū)設(shè)備時(shí),我們可以創(chuàng)建/media/cdrom文件夾,然后將光驅(qū)設(shè)備掛載到該文件夾上。同樣的,掛載usb設(shè)備時(shí),創(chuàng)建 /media/usb文件夾,然后掛載
/mnt
臨時(shí)文件系統(tǒng)的掛載點(diǎn)
/dev
設(shè)備文件及特殊文件存放目錄
-
b:block device 塊設(shè)備(隨機(jī)訪問(wèn)設(shè)備)
-
c:character device 字符設(shè)備(線性訪問(wèn)設(shè)備)
/opt
第三方應(yīng)用程序的安裝位置
/srv
系統(tǒng)上允許的服務(wù)用到的數(shù)據(jù)
/tmp
臨時(shí)文件存放位置
/usr
usr并不是代表user的意思,它的全名是Unix System Resource 即Unix系統(tǒng)資源,它是系統(tǒng)幫助文檔以及源碼包安裝的位置。universal shared,read-only data 全局共享只讀數(shù)據(jù):(一般來(lái)說(shuō)安裝完系統(tǒng)后占用磁盤空間最大目錄)
-
/usr/bin
-
/usr/sbin
-
/usr/lib
-
/usr/include
- C程序的頭文件(header files)
-
/usr/share:結(jié)構(gòu)化的獨(dú)立的數(shù)據(jù)
-
/usr/local:第三方應(yīng)用程序的安裝位置,在此目錄下又有以下這些目錄
- bin,sbin,lib,lib64,etc,share
/var
存放可變數(shù)據(jù)文件(variable data files),此目錄下的子目錄有
-
cache:應(yīng)用程序緩存數(shù)據(jù)目錄
-
lib:應(yīng)用程序狀態(tài)信息
-
local:專用于為/usr/local 下的應(yīng)用程序存儲(chǔ)可變數(shù)據(jù)
-
lock:鎖文件
-
log:日志目錄及文件
-
opt:專用于為/opt下的應(yīng)用程序存儲(chǔ)可變數(shù)據(jù)
-
run:運(yùn)行中的進(jìn)程相關(guān)的數(shù)據(jù),通常用于存儲(chǔ)進(jìn)程PID文件
-
spool:應(yīng)用程序數(shù)據(jù)池
-
tmp:保存系統(tǒng)兩次重啟之間產(chǎn)生的臨時(shí)數(shù)據(jù)
-
mail:用戶郵箱文件
/proc
用于輸出內(nèi)核與進(jìn)程信息相關(guān)的虛擬文件系統(tǒng)
/sys
用于輸出當(dāng)前系統(tǒng)上硬件設(shè)備相關(guān)信息的虛擬文件系統(tǒng)
/lost+found
Linux上ext文件系統(tǒng)格式化后默認(rèn)產(chǎn)生的路徑
/selinux
security enhanced Linux,selinux相關(guān)的安全策略等信息的存儲(chǔ)位置
- Linux上的應(yīng)用程序的組成部分
二進(jìn)制程序
/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
庫(kù)文件
/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
配置文件
/etc,/etc/DIRECTORY,/usr/local/etc
幫助文件
/usr/share/man,/usr/share/doc,/usr/local/share/man,/usr/local/share/doc
- Linux下的文件類型
-
- (f):普通文件
-
d:目錄文件
-
b:塊設(shè)備文件
-
c:字符設(shè)備文件
-
l:符號(hào)鏈接文件(軟連接)
-
p:管道文件:fist in,fist out
-
s:套接字文件:socket
- Linux下基本的系統(tǒng)管理類命令
- 關(guān)機(jī)或重啟命令
-
halt,poweroff 關(guān)機(jī)
-
reboot 重啟
- -f:強(qiáng)制,不調(diào)用shutdown
- -p:切斷電源
-
shutdown:
- shutdown [OPTION] … TIME [MESSAGE]
- -r:reboot(重啟)
- -h:halt(關(guān)機(jī))
- -c:cancel(取消)
- TIME:
- now 立刻
- +m:相對(duì)時(shí)間表示法,從命令提交開(kāi)始多久之后:例如 +3
- hh:mm:絕對(duì)時(shí)間表示,指明具體時(shí)間
- 用戶信息查看命令
- whoami:顯示當(dāng)前登錄有效用戶
- who:系統(tǒng)當(dāng)前所有的登錄會(huì)話
- w:系統(tǒng)當(dāng)前所有的登錄會(huì)話及所做的操作
Others
- Macos(unix)資源回收能力好,節(jié)省電源,幾年不關(guān)機(jī)都沒(méi)事。然而Microsoft的系統(tǒng)資源回收能力弱,用幾天就必須重啟。
- bash基礎(chǔ)特性及基礎(chǔ)命令
- bash的基礎(chǔ)特性
命令歷史
-
history
- 環(huán)境變量:
- HISTSIZE:命令歷史記錄
- HISTFILE:~/.bash_history
- HISTFILESIZE:命令歷史文件記錄歷史的條數(shù)
- 環(huán)境變量:
-
history -d OFFSET 刪除某天歷史命令,OFFSET代表偏移位
- history -c 清空緩存中的歷史命令
- history #:顯示歷史中最近的#條命令
- -a:手動(dòng)追加 —— 將緩存區(qū)中的歷史命令手動(dòng)追加到 ~/.bash_history中
- 調(diào)用歷史中的命令:
-
!#重復(fù)執(zhí)行第#條命令
-
!!:執(zhí)行上一條命令
-
!string:最近一條以string開(kāi)頭的命令
-
- 調(diào)用上一條命令的最后一個(gè)參數(shù)
- !$
- ESC,.
- Alt + .
先按 ESC 然后再按 . 就會(huì)出現(xiàn)上一條命令的最后一個(gè)參數(shù),比如:
先執(zhí)行 touch ABC.TXT
后在鍵盤上進(jìn)入 echo “call” > ESC .
就會(huì)顯示 echo “call” > ABC.TXT的結(jié)果
-
控制命令歷史的記錄方式
設(shè)置環(huán)境變量:HISTCONTROL 來(lái)選擇命令歷史的記錄方式,其參數(shù)分別有下列三種
-
修改環(huán)境變量的方式:export 變量名=“值”
- 變量賦值:把賦值符號(hào)后面的數(shù)據(jù)存儲(chǔ)于變量名指向的內(nèi)存空間
說(shuō)明:export 方式修改變量的值只對(duì)當(dāng)前的shell及其子shell起作用。換個(gè)終端開(kāi)啟另外一個(gè)shell之后就不起作用了。
命令補(bǔ)全
- bash執(zhí)行命令:
-
直接補(bǔ)全:Tab,用戶給定的字符串只有一條唯一對(duì)應(yīng)的命令,如果以用戶給定的字符串為開(kāi)頭的命令不唯一,則再次按Tab鍵會(huì)給出列表
- 路徑補(bǔ)全:把用戶給出的字符串當(dāng)作路徑開(kāi)頭,并在其指定的上級(jí)目錄下搜索以指定的字符串開(kāi)頭的文件名
- 如果唯一:則直接補(bǔ)全- 如果不唯一:再次按Tab鍵,給出列表
-
命令行展開(kāi)
- ~:展開(kāi)為用戶的主目錄
- ~USERNAME:展開(kāi)為指定用戶的主目錄
- ~:展開(kāi)為用戶的主目錄
- 路徑補(bǔ)全:把用戶給出的字符串當(dāng)作路徑開(kāi)頭,并在其指定的上級(jí)目錄下搜索以指定的字符串開(kāi)頭的文件名
-
{}可承載一個(gè)以逗號(hào)分隔的列表,并將其展開(kāi)為多個(gè)路徑
-
命令的執(zhí)行結(jié)果狀態(tài)
成功
失敗
bash使用特殊變量$?保存一條命令的執(zhí)行狀態(tài)結(jié)果:
0:成功
1-255:失敗
- cd、pwd、ls
- mkdir,rmdir
- mkdir /etc/a/b/c/d;mkdir [OPTIONS] /path/to/somethere
- 對(duì)于mkdir 來(lái)說(shuō)目錄和文件是一類東西,是不可以重名的。所以在Linux的同一目錄下目錄名和文件名不能重名
- - p 創(chuàng)建目錄,如果重名不會(huì)報(bào)錯(cuò),同時(shí)可以遞歸創(chuàng)建目錄
- -v 可以顯示目錄的創(chuàng)建詳細(xì)過(guò)程
- - m MORE:創(chuàng)建目錄時(shí)直接指定權(quán)限
- rmdir 刪除空目錄
- rmdir [OPTION]… [DIRECTORY]
- -p 遞歸刪除空目錄
- tree 顯示樹(shù)狀文件結(jié)構(gòu)
- -d 僅顯示目錄
- -L 顯示樹(shù)狀結(jié)構(gòu)可達(dá)到的層級(jí)
cat,tac,more,less,tail,head
- more [OPTION] FILE…
- -d:顯示翻頁(yè)及退出提示
- -num 一次顯示的行數(shù)
- +num 從第num行開(kāi)始顯示
-
less
- less [OPTIONS…] FILE…
- head
- head [OPTION]… [FILE]…
- -c #:獲取前#字節(jié)
- -n #:指定獲取前#行
- head [OPTION]… [FILE]…
- tail
- tail [OPTION]… [FILE]…
- -c #:指定獲取后#字節(jié)
- -n #:指定獲取后#行
- -#:指定獲取后#行
- -f:跟蹤顯示文件新追加的內(nèi)容
- touch
- 文件:metadata,data
- 查看文件狀態(tài):stat
- 三個(gè)時(shí)間戳:
- access time:訪問(wèn)時(shí)間,簡(jiǎn)寫atime
- modify time:修改時(shí)間,mtime
- change time:改變時(shí)間,ctime
- touch命令
- touch [OPTION]… FILE…
- -a:only atime(修改了atime也修改了ctime)
- -m:only mtime(修改了mtime也修改了ctime)
- -t STAMP:
- [[CC]YY]MMDDhhmm[.ss]
- -c:如果文件不存在,則不予創(chuàng)建
- touch -r a b 將b的時(shí)間戳更新為和a一樣的時(shí)間戳
- touch [OPTION]… FILE…
- 練習(xí)
- 擴(kuò)展
執(zhí)行history命令查看歷史命令時(shí),讓其顯示時(shí)間
- 方法一:臨時(shí)生效
- 方法二:永久生效
編輯 ~/.bashrc文件
在文件末尾加入 export HISTTIMEFORMAT=’%F %T’
執(zhí)行 source ~/.bashrc ,即可永久生效
- 取消命令前顯示時(shí)間戳的方法
- 寫在最后的話:
- 無(wú)論每個(gè)知識(shí)點(diǎn)的難易程度如何,我都會(huì)盡力將它描繪得足夠細(xì)致
- 歡迎關(guān)注我的CSDN博客,IDYS’BLOG
- 持續(xù)更新內(nèi)容:運(yùn)維 | 網(wǎng)工 | 軟件技巧
- 對(duì)于我文章的不足之處,歡迎您能批評(píng)指正!謝謝!
- 如果你有什么疑問(wèn),或者是難題。歡迎評(píng)論或者私信我。你若留言,我必回復(fù)!
- 雖然我現(xiàn)在還很渺小,但我會(huì)做好每一篇內(nèi)容。謝謝關(guān)注!
總結(jié)
以上是生活随笔為你收集整理的每个程序员都应该知道的Linux基础知识!全文4900字,没有耐心的不建议看 ——( Linux文件系统 + 系统管理类命令 + bash基础特性)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python实验数据处理
- 下一篇: 含抽水蓄能电站系统的调峰经济调度研究ma