日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux文件系统及bash基础特性

發布時間:2023/11/29 linux 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux文件系统及bash基础特性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

linux文件系統

? ? 一、根文件系統

  linux被識別的第一個被稱為根之間關聯的文件系統叫做根文件系統(rootfs),其他分區要想被讀到,需要掛載到根目錄的某個掛載點(根的子目錄)上。根文件系統至關重要,整個文件系統統一訪問入口。  

  Linux引導啟動時,默認使用的文件系統是根文件系統。其中一般都包括這樣一些子目錄:

  /boot 系統引導文件存放目錄

  /bin 供所有用戶使用的命令(不能關聯到獨立分支)不能關聯到獨立分區,os啟動即會用到的程序。

  /sbin 管理員使用特權命令。root-only使用的命令。不能關聯到獨立分區,os啟動即會用到的程序。

  /lib 基本共享庫文件(啟動就需要的庫文件),以及內核模塊文件。

  /lib64 專用于64位系統上的輔助庫文件

  /etc 配置文件目錄(大多純文本文件)

? ?   (1)/etc/opt 為opt啟動文件存放配置目錄

? ?   (2)/etc/sgml?/etc/xml兩種標記語言。

  /home用戶主目錄約定俗成在/home/username(普通用戶)管理員家目錄就是/root

  /media 掛載光盤u盤等設備

  /mnt ?掛載臨時文件系統

  /dev 設備文件目錄(特殊文件)

? ?   b block device(可隨機訪問設備,三個電影,想看那個隨機點那個都可以) ?c character device(縣信訪設備,按順序訪問)

  /opt 附件,第三方應用程序安裝目錄系統安裝完,額外安裝的其他程序

  /srv 當前系統某些服務程序運行時,使用的中間數據。

  /tmp 臨時文件存放位置

  注:除了/boot和/home是不能關聯到獨立分區的,必須在根上

  /usr 獨立分區上的目錄(全局共享只讀數據):這可不是user的簡寫呦(擁有獨立的文件系統結構)

   (1)/usr/bin 所有程序可使用

? ?   (2)/usr/sbin 管理員使用

?

   ? ? ? 他的配置文件還是在/etc下

? ?    ? ?include,c語言頭文件的標準庫(頭文件是描述庫文件打開調用接口方式的)

? ?   (3)/usr/share只讀的 ,結構化獨立數據

? ?   (4)/usr/local第三方應用程序安裝位置

  /var 通常獨立分區,可變數據文件

  其中cache:應用程序緩存數據目錄

lib 可變狀態信息數據 local:專用于為/usr/local下應用程序存儲可變數據 lock 鎖文件 log 日志目錄及文件 opt?專用于為/opt下應用程序存儲可變數據 run 運行中進程的相關數據,通常用于存儲進程中的pid spool應用程序緩沖池 tmp 系統重啟過程中的臨時文件 /proc 用于輸出內核,進程相關的虛擬文件系統, /sys 輸出當前系統上硬件設備相關信息的虛擬文件系統 /selinux selinux相關安全策略等信息的存儲位置 二、linux下的文件類型 -(f)普通文件 d目錄文件(存放的是路徑信息,找到目錄下的信息的路徑信息,文件名到文件的路徑信息) b塊設備文件,l軟連接文件,c字符設備,p管道文件,s套接字文件(訪問現有系統的一個專用接口) 三、系統管理類命令 關機或重啟命令: (1)halt,halt調用shutdown來關機,-f選項就是不調用shutdown強制關機,不建議使用 (2)shutdown,shutdown ?[option...] ?time ?[message...] -r 重啟;-h關閉并清電源;-c取消關機選項; time:now:立刻 +m:相對時間表示法,從命令提交后開始計算。 hh:mm:給定具體時間。 (3)power off,關機。 (4)init 0:關機;init6 重啟。 (5)reboot;重啟。 用戶登錄信息查看命令: (1)whoami:顯示當前登錄的用戶; (2)who:當前所有登錄會話; (3)w:系統當前所有登錄會話和操作。

常用管理命令

  1.使用pwd和cd命令來確定和切換目錄

[root@localhost ~]# pwd /root [root@localhost ~]# cd / [root@localhost /]# pwd / [root@localhost /]# pwd / [root@localhost /]# cd [root@localhost ~]# cd

  2.使用ls命令列出目錄中的內容

  -a 顯示所有的文件,包括隱藏文件,.開頭的為隱藏文件

  -all 顯示所有文件的詳細信息,

  -l 顯示文件詳細信息,不包括隱藏文件

[root@localhost ~]# ls -a . anaconda-ks.cfg .bash_logout .bashrc .lesshst Python-3.6.1 .tcshrc .. .bash_history .bash_profile .cshrc .pki Python-3.6.1.tgz .viminfo [root@localhost ~]# ls -all total 22084 dr-xr-x---. 4 root root 223 Aug 28 03:04 . dr-xr-xr-x. 22 root root 4096 Jul 23 06:59 .. -rw-------. 1 root root 1669 May 13 10:16 anaconda-ks.cfg -rw-------. 1 root root 19956 Jul 24 11:01 .bash_history -rw-r--r--. 1 root root 18 Dec 28 2013 .bash_logout -rw-r--r--. 1 root root 176 Dec 28 2013 .bash_profile -rw-r--r--. 1 root root 176 Dec 28 2013 .bashrc -rw-r--r--. 1 root root 100 Dec 28 2013 .cshrc -rw-------. 1 root root 35 May 15 10:53 .lesshst drwxr----- 3 root root 19 May 25 09:38 .pki drwxr-xr-x 18 501 501 4096 Jun 12 09:15 Python-3.6.1 -rw-r--r-- 1 root root 22540566 May 23 11:21 Python-3.6.1.tgz -rw-r--r--. 1 root root 129 Dec 28 2013 .tcshrc -rw------- 1 root root 9062 Aug 28 03:04 .viminfo [root@localhost ~]# ls -l total 22024 -rw-------. 1 root root 1669 May 13 10:16 anaconda-ks.cfg drwxr-xr-x 18 501 501 4096 Jun 12 09:15 Python-3.6.1 -rw-r--r-- 1 root root 22540566 May 23 11:21 Python-3.6.1.tgz

  3.使用cp命令復制文件和目錄

  cp -r 遞歸復制

  cp -p 保留原文件的用戶權限

[root@localhost /]# cp a.txt /tmp/ [root@localhost /]# ls /tmp/ a.txt etc.conf etc.test maxusers.txt test.txt [root@localhost /]# cp -r /dj /tmp/ [root@localhost /]# ls /tmp/ a.txt dj etc.conf etc.test maxusers.txt test.txt [root@localhost /]# cp -rpf /dj /tmp/ [root@localhost /]# ls /tmp/ a.txt dj etc.conf etc.test maxusers.txt test.txt

  4.使用mv命令移動及修改文件和目錄名?

[root@localhost /]# mv a.txt b.t [root@localhost /]# ls bin b.t dj home lib64 mnt oo Packages root sbin sys tt var boot dev etc lib media mylinux opt proc run srv tmp usr [root@localhost /]# mv b.t /tmp/ [root@localhost /]# ls /tmp/ a.txt b.t dj etc.conf etc.test maxusers.txt test.txt

  5.使用mkdir命令創建目錄?

[root@localhost /]# mkdir -p /a/b/c/d [root@localhost /]# ls /a/b/c/ d

? ? [root@localhost /]# mkdir -p /tmp/a/b/c/d
? ? [root@localhost /]# ls /tmp/
? ? a a.txt b.t dj etc.conf etc.test maxusers.txt test.txt

  6.使用touch命令創建文件

[root@localhost /]# touch a.txt [root@localhost /]# ls a bin dev etc lib media mylinux opt proc run srv tmp usr a.txt boot dj home lib64 mnt oo Packages root sbin sys tt var

  7.使用rm命令刪除文件

[root@localhost /]# rm -rf a.txt

?

bash的基礎特性:

  一、命令歷史

  history;history的環境變量:

  (1)HISTSIZE:命令歷史的條數;

[root@localhost ~]# echo $HISTSIZE 1000

  (2)HISTFILE:持久保存命令歷史的文件,當退出登錄的時候,此次的命令歷史才會被寫入到HISTFILE中

[root@localhost ~]# echo $HISTFILE /root/.bash_history

  命令歷史存在~/.bash_history里。

  (3)HISTFILESIZE:命令歷史文件記錄的歷史條數。

[root@localhost ~]# echo $HISTFILESIZE 1000

  二、history常用命令用法 ?

  -c:清空命令歷史 ?

  -d offset:刪除指定命令歷史,offset為指定的行數 ?

  -r:從文件讀取命令歷史至歷史列表中 ?

  -w:把歷史列表中的命令追加至歷史文件中 ?

  history #:顯示最近的#條命令

  -a:手動追加當前會話緩沖區的命令歷史至歷史文件中

  調用命令歷史列表中的命令:

  !#:再次執行歷史列表中第#條命令

  !!:再一次執行上一條命令

  !STRING:再一次執行命令歷史列表中最近一個以STRING開頭的命令

  調用上一條最后一個參數方法:!$;ESC,.;ALT+.。

  控制命令歷史的記錄方式:環境變量:HISTCONTROL;

  ignoredups:忽略重復命令,連續且相同才算重復。

  ignorespace:忽略以空白開頭的命令。

  ignoreboth:以上兩者皆忽略。
  修改環境變量值得方式為export 變量名=‘值’;變量賦值就是把賦值符號后面的數據存儲于變量名指向內存空間。

[root@localhost ~]# echo $HISTCONTROL ignoredups [root@localhost ~]# export HISTCONTROL=ignoreboth [root@localhost ~]# echo $HISTCONTROL ignoreboth

  三、命令、路徑補全

  命令補全:

  shell程序在接受到用戶執行命令的請求時,最左側的字符串會被當做命令

  命令查找機制:根據PATH環境變量中設定的目錄($PATH),自左而右逐個搜索目錄下的文件名

  按Tab可直接補全命令,若給定字符開頭的命令不唯一,再次Tab給出以給定字符作為開頭的文件列表

  路徑補全:?在給定的起始路徑下,以對應路徑下的打頭字符串來逐一匹配起始路徑下每個文件

  四、命令行展開

  ~:展開為用戶家目錄;

  ~username:展開為指定用戶的家目錄

  {}:展開為多個路徑。例:/tmp/{a,b} = /tmp/a,/tmp/b;/tmp/{a,b}/{c,d} =/tmp/a/c,/tmp/a/d,/tmp/b/c,/tmp/b/d。

  五、命令的執行結果

  命令執行的狀態結果有兩種:成功(0),失敗(1-255),可用$?查看最近一條命令的執行狀態結果。

  程序執行有兩類結果:程序返回值和程序執行狀態結果。

  六、命令別名(alias)

  alias:顯示當前shell進程所有可用別名。

[root@localhost tmp]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

  alias name=‘value’:定義別名,使用alias相當于執行value。

  :在命令行定義別名,僅對當前shell有效,永久有效需要定義在配置文件中。

  對當前用戶:~/.bashrc

  對所有用戶:/etc/bashrc

  并且編輯配置不會立即生效。

  撤銷別名(unalias)

  七、glob(bash中用于實現文件通配)

  通配符:*,?,[]

  *任意長度的任意字符

  ?任意單個字符

  []匹配指定范圍的單個字符[0-9],[a-z]:所有字母,不區分大小寫[A-Z]:大寫字母

  [^]取反

  專用字符集:

  ?[[:upper:]]:所有大寫字母

? ? ?[[:lower:]]:所有小寫字母

? ? ?[[:alpha:]]:所有字母

? ?  [[:digit:]]:所有數字

? ?  [[:alnum:]]:所有的字母和數字

? ?  [[:space:]]:所有空白字符

? ?  [[:punct:]]:所有標點符號

  八、bash的I/O重定向及管道

  打開文件都有一個fd:file descriptor(文件描述)

  標準輸入:0

  標準輸出:1

  錯誤輸出:2

  I/O重定向就是改變標準位置。

  輸出重定向:

  > ? ?覆蓋輸出

  >> ? ?追加輸出

  set -C:禁止覆蓋輸出重定向至已存在的文件

  set +C:開啟覆蓋輸出重定向至已存在的文件(默認)

  錯誤輸出重定向:

  2> ? ?覆蓋輸出

  2>> ? ?追加輸出

  合并正常輸出流和錯誤輸出流

  &> ? ?覆蓋輸出

  &>> ? ?追加輸出

  COMMADN > /PATH/TO/somefile ?2>&1 :如果命令執行成功則覆蓋輸出至somefile,執行不成功也覆蓋輸出至somefile

  COMMAND >> /PATH/TO/somefile 2>&1:如果命令執行成功則追加覆蓋至somefile,執行不成功也追加輸出至somefile

  注:特殊設備:當不需要命令的執行結果,只需要知道命令的執行狀態,則可以重定向至/dev/null,/dev/null相當于一個垃圾桶。

  輸入重定向:<

  Here Document:<<,可以作為指定文件的結束符,常用于shell編程

[root@localhost tmp]# cat <<EOF > how are you > EOF how are you

  tr [OPTION]... SET1 [SET2]

  把輸入的數據當中的字符,凡是在SET1定義范圍內出現的,通通對位轉換為SET2出現的字符,不修改原文件

  tr -d SET1 ?< ?/PATH/FROM/SOMEFILE ? ? 刪除SET1中的字符,區分大小寫

  管道

  連接程序,最后一個命令會在當前shell進程的子進程中執行。

  COMMAND1 | COMMAND2 | COMMAND3 ...

[root@localhost tmp]# echo 'abcdefg' | tr 'a-z' 'A-Z' | tr -d 'AD' BCEFG

  tee

  顯示程序的輸出并將其復制到一個或多個文件中。

目錄管理類命令

  一、mkdir

  make directories 創建目錄

  mkdir [OPTION]... DIRECTORY...

  常用選項:

  -p:存在不報錯,逐級生成目錄;

  -v:顯示詳細信息;

  -m:mode,創建目錄時直接指定權限。

  mkdir一次可創建多個目錄:

[root@localhost tmp]# mkdir -v {a,b}/{c,d} mkdir: cannot create directory ‘a/c’: No such file or directory mkdir: cannot create directory ‘a/d’: No such file or directory mkdir: cannot create directory ‘b/c’: No such file or directory mkdir: cannot create directory ‘b/d’: No such file or directory

  

[root@localhost ~]# mkdir -p /mylinux/{bin,boot/grub,dev,etc/{rd.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}} [root@localhost ~]# tree /mylinux /mylinux ├── bin ├── boot │?? └── grub ├── dev ├── etc │?? ├── rd.d │?? │?? └── init.d │?? └── sysconfig │?? └── network-scripts ├── lib │?? └── modules ├── lib64 ├── proc ├── sbin ├── sys ├── tmp ├── usr │?? └── local │?? ├── bin │?? └── sbin └── var├── lock├── log└── run

?

  二、rmdir

  remove empty direcories

  移除空目錄

  常用選項:

  -p:刪除某目錄后,如果其父目錄為空,則一并刪除之

  -v:顯示過程

[root@localhost b]# rmdir -pv /tmp/a/b/c/ rmdir: removing directory, ‘/tmp/a/b/c/’ rmdir: removing directory, ‘/tmp/a/b’ rmdir: removing directory, ‘/tmp/a’ rmdir: removing directory, ‘/tmp’ rmdir: failed to remove directory ‘/tmp’: Device or resource busy

  三、tree:

  -d:只顯示目錄

  -L:level:指定顯示的層級數目

  -P:pattern只顯示由指定pattern匹配到的路徑。

快捷操作

  ctrl+a:跳轉至命令行行首

  ctrl+e:跳轉至命令行行尾

  ctrl+u:刪除行首至光標所在處之間的所有字符

  ctrl+k:刪除光標所在處至行尾的所有字符

  ctrl+l:清屏,相當于clear

文本文件查看類命令

  cat

  cat [OPTION]... [FILE]...

  查看文件內容,直接顯示到文件底部

  常用選項:

  -n:可以顯示行數;

  tac與cat類似,可反向查看文件內容

  head

  與cat類似,常用選項:

  -c #:指定獲取前#字節;

  -n # / -#:指定獲取前#行。

  tail

  與head相似,除了-c與-n以外,-f可跟蹤顯示文件新追加的內容。

文件的時間戳管理工具:

  一、stat

  display file or file system status

  文件:兩類數據

  元數據:metadata,文件的狀態,創建時間,修改時間,大小,權限等

  數據:文件里面的內容

  stat顯示的就是文件的元數據,包含文件路徑,大小,blocks數目,IO block,文件類型,inode號,權限,uid,gid和三個時間戳等

  三個時間戳:

  access:最近一次訪問的時間,即atime

  modify:最近一次修改文件的時間,即mtime

  change:文件最近一次改變的時間,即改變元數據的時間即ctime

  二、touch

  change file timestamps ?修改時間戳

  touch [OPTION]... FILE...

  文件不存在則創建文件,當直接使用命令去touch一個文件的時候,修改的是所有的時間戳

  常用選項:

  -c:指定的文件路徑不存在時不予以創建

  -a:僅修改access time

  -m:僅修改modify time

  -t ? STAMP

? ? ? ?[[CC]YY]MMDDhhmm[.ss]

文件管理工具

  一、cp

  復制文件或者目錄

  cp [OPTION]... [-T] SOURCE DEST

  cp [OPTION]... SOURCE... DIRECTORY

  cp [OPTION]... -t DIRECTORY SOURCE...

  cp SRC DEST

  SRC是文件

    如果DEST不存在,則先創建DEST,并復制源文件的數據流至DEST文件中

    如果DEST存在:DEST是非目錄文件,則覆蓋DEST文件

    DEST是目錄文件,則在DEST目錄下創建一個與源文件同名的文件,并復制其數據

SRC是多個文件時: DEST必須存在,且為目錄,否則就會報錯。 SRC是目錄: DEST不存在,則創建指定目錄,復制SRC目錄中所有文件至DEST。 DEST存在,DEST是文件,報錯,DEST是目錄分別復制每個文件至目標目錄中,并保持原名。

  常用選項:

  -i:交互式復制

  -f:強制覆蓋目標文件

  -r,-R:遞歸復制目錄

  -d:復制符號鏈接文件本身,而非指向的源文件

  -a:-dR --preserve=all, archive,用于實現歸檔;

  --preserv[=ATTR_LIST]? ? ? ?  

    mode:權限??

    ownership:屬主和屬組

?? ? ??  timestamps: 時間戳

?? ? ??  context:安全標簽

?? ? ??  xattr:擴展屬性

?? ? ??  links:符號鏈接

?? ? ??  all:上述所有屬性

  二、mv

  移動文件,可用來重命名文件

? ? ? ?mv [OPTION]... [-T] SOURCE DEST

? ? ? ?mv [OPTION]... SOURCE... DIRECTORY

? ? ? ?mv [OPTION]... -t DIRECTORY SOURCE...

  常用選項:
  -i:交互式

  -f:強制覆蓋文件

  三、rm

  移除文件

  rm [OPTION]... FILE...

  常用選項:

  -i:交互式移除文件

  -f:強制刪除文件

  -r:遞歸刪除

  :所有不用的文件建議不要直接刪除,可以移動至某個專用的目錄(用來做回收站的目錄)

  :還有個無敵bug,rm-rf /*。

?

轉載于:https://www.cnblogs.com/Jeffding/p/7192418.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的linux文件系统及bash基础特性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。