linux基礎之bash特性知識點

1、 Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。

    Linux 一切皆文件。個人理解 在linux下的命令操作都算是對文件操作

    那么文件管理命令類命令可以分為下面幾類

    目錄操作:

       特殊目錄解釋: . 代表此層目錄;.. 代表上一層目錄;- 代表前一個目錄;~ 代表當前用戶的主文件夾 也可以稱為家目錄;

     cd (change directory)切換目錄

       例:

[root@localhost ~]# cd ~fool

表示 切換到fool這個用戶的家目錄下 即 /home/fool

[root@localhost fool]# cd ~

切回到自己的主文件夾,/root目錄下

[root@localhost ~]# cd

不加參數,表示切到自己的主目錄下 /root

[root@localhost ~]# cd ..

表示且到目前的上層目錄 即 /root 目錄

[root@localhost /]# cd –

/root

表示回到剛才的目錄  /root

       [root@localhost ~]# cd /usr/share/zoneinfo/

        使用絕對路徑

[root@localhost zoneinfo]# cd ../zsh

使用相對路徑(zsh 與zoneinfo 都是/usr/share/ 目錄下)

 

      

       pwd (print working directory)顯示當前目錄;

       [root@localhost mail]# pwd

 /var/mail

       [root@localhost mail]# pwd -P

/var/spool/mail

       /var

[root@localhost mail]# ls -ld /var/mail

lrwxrwxrwx. 1 root root 10 9月  16 10:09 /var/mail -> spool/mail

     注意 –P參數為大寫的P  大寫P  大寫P  好的,三遍

 

      mkdir (make directory)新建一個新的目錄, -p 表示遞歸創建目錄

       

[root@localhost ~]# mkdir -p study1/study2/study3

[root@localhost ~]# ls

anaconda-ks.cfg  initial-setup-ks.cfg  study1

[root@localhost ~]# ls study1/

study2

[root@localhost ~]# ls study1/study2/

study3

    -m 表示配置文件的權限

[root@localhost ~]# mkdir -m 700 study

                    [root@localhost ~]# ls -l

總用量 8

-rw——-. 1 root root 1851 9月  16 10:24 anaconda-ks.cfg

-rw——-. 1 root root 1899 9月  16 10:35 initial-setup-ks.cfg

drwx——. 2 root root    6 9月  21 22:36 study

drwxr-xr-x. 3 root root   19 9月  21 22:33 study1

       注意:默認創建的文件屬性為755

 

    rmdir 刪除一個”空”的目錄

    這個命令…  有個參數-p 遞歸刪除目錄 必須都是空目錄;不好玩

    介紹個好玩的命令 刪除目錄不管有沒有內容都可以刪除,

    rm –rf  可以試試 溫馨提示 數據無價 提前備份

 

  查看文件目錄

     Ls (list)查看目錄與文件   這個太常用了

    -a 列出全部文件,包括隱藏文件(開頭為.的文件);

    -A列出全部文件,包括隱藏文件(不包括 . .. 這兩目錄)

    -d 列出目錄本身

    -l 列出長數據串,包括文件的屬性與權限等數據

    [root@localhost ~]# ls -d /usr/bin/

    /usr/bin/

    [root@localhost ~]# ls -ld /usr/bin/

    dr-xr-xr-x. 2 root root 45056 9月  16 10:19 /usr/bin/

      

     復制、刪除、移動 操作

     cp (copy) 復制文件或目錄

       -a 保留源文件屬性復制;

       -i 若目標文件已存在,覆蓋時先詢問用戶;

       -r 遞歸持續復制;

       [root@localhost ~]# ls -ld study1/study2/

drwxr-xr-x. 3 root root 19 9月  21 22:33 study1/study2/

[root@localhost ~]# cp -a study1/study2/ study

[root@localhost ~]# ls -ld study/study2

drwxr-xr-x. 3 root root 19 9月  21 22:33 study/study2

 

    rm 移除文件或目錄

     -f:force,忽略不存在的文件,不出現警告信息;

     -i:交互模式,刪除前會詢問用戶是否操作;

     -r:遞歸刪除。常用在目錄刪除;

              [root@localhost /]# rm -i /usr/123.txt

rm:是否刪除普通文件 "/usr/123.txt"?y

[root@localhost /]# ls /usr

bin  etc  games  include  lib  lib64  libexec  local  sbin  share  src  tmp

              [root@localhost /]# rm -f /usr/123.txt

[root@localhost /]# ls

bin   dev  home  lib64  mnt  proc  run   srv  tmp  var

boot  etc  lib   media  opt  root  sbin  sys  usr

    [root@localhost usr]# rm -r test1/test2/test3/

rm:是否刪除目錄 "test1/test2/test3/"?y

 

mv 一段文件與目錄,或更名

-f:force 如果目標文件已經存在,不會詢問而直接覆蓋;

-i:若目標文件存在,就詢問是否覆蓋;

-u:若目標文件存在,且源文件較新才更新;

[root@localhost usr]# mv -f test1/test2/123.txt movefile

[root@localhost usr]# ls movefile/

123.txt

[root@localhost usr]# cat movefile/123.txt

hello world ~!!!

             [root@localhost usr]# mv -u test1/test2/123.txt movefile

mv:是否覆蓋"movefile/123.txt"? y

[root@localhost usr]# cat movefile/123.txt

hello

halo

haha

[root@localhost usr]# mv -i test1/test2/123.txt movefile

mv:是否覆蓋"movefile/123.txt"?

 

獲取路徑的文件名與目錄名稱

basename 獲取最后的文件名

[root@localhost study]# basename /usr/movefile/123.txt

123.txt

dirname 獲取目錄名

[root@localhost study]# dirname /usr/movefile/123.txt

/usr/movefile

 

文件內容查看

cat :concatenate

-n 打印并顯示行號,

[root@localhost study]# cat -n /usr/movefile/123.txt

     1   hello

     2  

     3   halo

     4   haha

tac 反向查看

[root@localhost study]# tac /usr/movefile/123.txt

haha

halo

 

hello

    more 翻頁查看  空格:代表向下翻一頁;enter 向下滾動一行;/字符 查找該字符; :f 離開顯示處文件名以及目前顯示的行數; q 離開離開more,不在顯示該文件內容; b&     ctrl+b 往回翻頁  只對文件有效。

     head 取出前面幾行 默認前10行 head –n 文件

     tail 取出后面幾行 tail [-n number] 文件

 

    touch [OPTION]… FILE…   修改文件時間或創建新文件

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

      -a: 僅修改access time;

      -m:僅修改modify time;

      -t STAMP [[CC]YY]MMDDhhmm[.ss]

    which 尋找“執行文件”

    Which –a command :將所有由path目錄中找到的命令均列出,而不只是列出第一個命令名稱

    Whereis 尋找特定文件

    -b 二進制格式文件

    -m 只找在說明文件路徑下的文件

 

2、 bash 的執行命令狀態

    [root@localhost study]# echo "hello world"

    [root@localhost study]# echo $?

    0

    [root@localhost study]# echoi  hello world

    [root@localhost study]# echo $?

    127

    bash 命令行展開 :把命令行的給定的特殊符號自動替換為相應字符串的機制;

    [root@localhost ~]# cd ~ study

    [root@localhost ~]# pwd

    /root

 

bash 其他特性:

    命令別名: alias alias name=’command’ 生命周期:當前shell進程;

    歷史命令: history 默認1000條 history –c 清空命令歷史

    快捷件:   ctrl+a 調至行首;ctrl+e 調至行尾;ctrl+k 刪除光標所在處到尾部;

                      ctrl+u 刪除行首至光標位置的內容;

    命令補全: 唯一標識:tab補全;不能唯一標識:tab tab 列出; 沒有提示 表示錯誤

    glob :文件名通配

    *匹配任意多個字符;?匹配任意單個字符;[]匹配指定集合內的任意單個字符;

    [^]匹配指定集合外的任意單個字符;

    變量:

    I/O 重定向和管道

 

3、請使用命令行展開功能來完成以下練習:

   (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d

   (2)、創建/tmp/mylinux目錄下的:

    [root@localhost /]# mkdir -p /tmp/{a_c, a_d, b_c, b_d}

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

    

4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。

    每個文件都有兩類數據

        元數據:metadata

        數據: data

    時間戳:access time,modify time,change time

————————————————————————-

    文件的元數據信息:

    文件 大小 塊 IO塊 設備 inode 硬連接 權限 環境

    最近訪問時間、最近更改時間、最近改動時間、創建時間

    以上都為文件的元數據信息

    查看元數據信息:stat file

    修改時間戳:touch [-c,a,m,t]… FILE…

5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?

    alias ls=ls –l

 

    使用管道 | 可以引用上一個命令的執行結果

    用法  COMMAND1 | COMMAND2

    例:cat /etc/issue | tr 'a-z' 'A-Z'

6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。

    ls –d /var/1[0-9]*[lower]

7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。

    ls –d /etc/[[:digit:]][^[:digit:]]

8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。

    ls –d /etc/[^[:alpha:]][a-z]*

9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。

    touch file"$(date +%Y-%M-%H-%M-%S)"

    “”用法  date 參數用法 

10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

    cp -r /etc/p*[^[:digit:]] /tmp/mytest1

11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。

    cp –r /etc/*.d /tmp/mytest2

12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

    cp /etc/[1,m,n]*.conf /tmp/mytest3

 

原創文章,作者:rumor31,如若轉載,請注明出處:http://www.www58058.com/48937

(0)
rumor31rumor31
上一篇 2016-09-24 17:53
下一篇 2016-09-24 18:04

相關推薦

  • linux系統文件的元數據

    linux系統文件的元數據 什么是元數據 文件的數據分兩種: 一種元數據,既屬性數據:metadata 一種就是數據本身:data 如何查看元數據: stat stat命令用于顯示文件的狀態信息 [root@localhost ~]# stat /tmp/mylinux File: ‘/tmp/mylinux’ Size: 143 Blocks: 0 IO …

    Linux干貨 2018-03-11
  • Linux的基本介紹

    1、Linux的發行版分為:Debin,Slackware,Rhel,Redora,CentOS,Gentoo等,其中Rhel(Red Hat Enterprise Linux)使用的是版本比較老的內核,但它的系統比較穩定,一個發行周期是36個月,Fedora使用最新的應用和華麗的節目,但系統比較不穩定,一個發行周期是6個月。 2、Linux的哲學思想是一切…

    Linux干貨 2016-02-14
  • Shell腳本-循環基礎

    Shell腳本-循環基礎 背景: 正在學習Shell腳本之循環,發現Shell的循環和其他編程語言大同小異,邏輯上都是相通的,但在使用格式上卻有點不同,在學習完Shell循環后,將學習的心得體會記錄下來,以備今后復習。 介紹: 什么是Shell腳本:       shell script是利用shell的功能…

    2017-08-26
  • 推薦-Corosync + Pacemaker 搭建高可用Httpd服務

    Corosync + Pacemaker 搭建高可用Httpd服務 實驗描述 1.兩個測試節點,分別為node5.redhat.com和node6.redhat.com地址分別為172.16.100.5和172.16.100.62.集群服務為httpd,利用nfs做共享存儲,NFS地址為172.16.0.254,NFS已經共享出了一個/www/htdocs目…

    系統運維 2016-04-05
  • N21-天天-第八周課程練習

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 主要功能: 網橋將兩個相似的網絡連接起來,并對網絡數據的流通進行管理。它工作于數據鏈路層,不但能擴展網絡的距離或范圍,而且可提高網絡的性能、可靠性和安全性。 集線器的英文稱為“Hub”。主要功能是對接收到的信號進行再生整形放大,以擴大網絡的傳輸距離,同時把所有節點集中在以它為中心…

    Linux干貨 2016-08-29
  • Linux http服務

                               Linux http服務   網絡服務通信基礎:   1、端口號就是進程標識,每個用戶最多只能打開1024個進程。   2、MAC地址僅…

    系統運維 2016-11-18
欧美性久久久久