馬哥教育第20期-第二周課程練習

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

cp:復制命令

用法: cp [源文件] [目標地址] 

         cp  vimrc /tmp/

 

      cp [源文件1] [源文件2] … [目標地址]

    cp yum.conf  who.out  sudo-ldap.conf /tmp/

 

 cp  -r [文件夾] … [目標地址]

    r:實現文件夾的遞歸復制 

cp -r sysconfig/ /tmp/

 

 cp -a [文件夾] [目標文件]

    cp -a sysconfig/ /tmp/

 

 cp -p [源文件] [目標文件]

    -p 保留文件原有屬性

源文件屬性

cp -p /home/java/java/ /tmp/

 

 

mv:移動(剪切、復制到)文件 

   -i:交互式選項

   -f:強制執行

    mv -f java/ /tmp/

   

     

rm:刪除命令

   -i:交互式選項

   -f:強制刪除

   -r:遞歸選項

   

   rm -f java.*

   rm -rf javas

   

cd :進入指定文件夾 

  cd /path/to/somefile

  .. :返回上一層級目錄

  ~ :返回家目錄

  

  

ll :顯示指定目錄中的文件,默認顯示當前目錄中的文件

   ll /path.to/somefolder

   

pwd:顯示當前所在位置的絕對路徑

mkdir :創建文件夾

      mkdir [option]… diretory…

 -p:多層級創建

 -v:顯示創建過程

 -m:指定權限

 

 [root@localhost tmp]# mkdir -pv a/b/c

       mkdir: 已創建目錄 "a"

       mkdir: 已創建目錄 "a/b"

       mkdir: 已創建目錄 "a/b/c"

  

  [root@localhost tmp]# mkdir -pv -m 777 1/2/3

        mkdir: 已創建目錄 "1"

mkdir: 已創建目錄 "1/2"

mkdir: 已創建目錄 "1/2/3"

  [root@localhost tmp]# ll 1/2/

總用量 4

drwxrwxrwx. 2 root root 4096 6月  27 00:39 3

rmdir:刪除文件夾

     rmdir [option]… dirctory…

只能刪除空目錄

-v:顯示詳細信息

 

[root@localhost tmp]# rmdir -v 1

rmdir: 正在刪除目錄 "1"

 

 

 

2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。

bash中使用$?,來保存最近一次命令的執行狀態結果。

[root@localhost tmp]# ls 

a  java  java.conf  java.exe  sudo-ldap.conf  sysconfig  test  vimrc  who.out  yum.conf

[root@localhost tmp]# echo $?

0

命令或腳本執行成功,狀態返回值為0;否則,為執行出錯:范圍:1-255

錯誤返回值,可在腳本中自行定義錯誤原因

命令行展開:

{}:展開命令行

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

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

    [root@localhost test]# mkdir {a,b}{c,d}

[root@localhost test]# ll

總用量 16

drwxr-xr-x. 2 root root 4096 6月  27 01:32 ac

drwxr-xr-x. 2 root root 4096 6月  27 01:32 ad

drwxr-xr-x. 2 root root 4096 6月  27 01:32 bc

drwxr-xr-x. 2 root root 4096 6月  27 01:32 bd

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

   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

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

[root@localhost mylinux]# ll

總用量 48

drwxr-xr-x. 2 root root 4096 6月  27 01:45 bin

drwxr-xr-x. 3 root root 4096 6月  27 01:45 boot

drwxr-xr-x. 2 root root 4096 6月  27 01:45 dev

drwxr-xr-x. 4 root root 4096 6月  27 01:45 etc

drwxr-xr-x. 3 root root 4096 6月  27 01:45 lib

drwxr-xr-x. 2 root root 4096 6月  27 01:45 lib64

drwxr-xr-x. 2 root root 4096 6月  27 01:45 proc

drwxr-xr-x. 2 root root 4096 6月  27 01:45 sbin

drwxr-xr-x. 2 root root 4096 6月  27 01:45 sys

drwxr-xr-x. 2 root root 4096 6月  27 01:45 tmp

drwxr-xr-x. 4 root root 4096 6月  27 01:45 user

drwxr-xr-x. 5 root root 4096 6月  27 01:45 var

[root@localhost mylinux]# tree

.

├── bin

├── boot

│   └── grub

├── dev

├── etc

│   ├── rc.d

│   │   └── init.d

│   └── sysconfig

│       └── network-scripts

├── lib

│   └── modules

├── lib64

├── proc

├── sbin

├── sys

├── tmp

├── user

│   ├── localbin

│   └── localsbin

└── var

├── lock

├── log

└── run

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

文件大小

創建時間

文件的權限

文件的屬主屬組

atime

mtime

ctime

文件類型

文件被硬鏈接的次數

[root@localhost etc]# stat exports 

 File: "exports"

 Size: 0               Blocks: 0          IO Block: 4096   普通空文件

Device: fd00h/64768d    Inode: 915736      Links: 1

Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2010-01-12 21:28:22.000000000 +0800

Modify: 2010-01-12 21:28:22.000000000 +0800

Change: 2016-05-29 18:47:02.827999962 +0800

使用touch命令修改時間戳

touch [OPTION]… FILE…

-a: only atime

-m: only mtime

-t STAMP:

[[CC]YY]MMDDhhmm[.ss]

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

命令別名使用alias

alias:顯示當前shell進程所有可用的命令別名

alias NAME='VALUE'

[root@localhost tmp]# alias ip='ifconfig'

[root@localhost tmp]# ip

eth0      Link encap:Ethernet  HWaddr 00:0C:29:F9:21:60  

          inet addr:192.168.99.28  Bcast:192.168.99.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fef9:2160/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:19382 errors:0 dropped:0 overruns:0 frame:0

          TX packets:11931 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:7274136 (6.9 MiB)  TX bytes:2814802 (2.6 MiB)

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

命令中引用另一個命令的執行結果

管道命令

COMMAND1 | COMMAND2 | COMMAND3…

cat /etc/passwd | cut -d: -f1,3,5 | sort -t: -k2 -n

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

ls  /var/l*[0-9]*[[:lower:]]

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

ll /etc/[0-9]*[^[:digit:]]

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

ls -ld /etc/[^a-z][a-z]*

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

touch tfile-$(date +'%F-%H-%M-%S')

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

 cp -r /etc/p*[^0-9] /tmp/mylinux/

 

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

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

 

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

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

原創文章,作者:N20_丁木晨,如若轉載,請注明出處:http://www.www58058.com/20522

(0)
N20_丁木晨N20_丁木晨
上一篇 2016-06-26 22:53
下一篇 2016-06-27 13:40

相關推薦

  • centos 6.5下搭建svn服務端

    1、先配置好yum源,svn的包在系統光盤里就有 2、yum install subversion #安裝svn的服務端程序 3、mkdir -p /application/svndata #創建svn的數據存儲目錄,名字可以隨便取 4、svnserve -d -r /application/svndata/ #指定svn的數據存儲目錄,就是剛才創建的 5、…

    Linux干貨 2015-10-08
  • nginx狀態監控

    通過查看Nginx的并發連接,我們可以更清除的知道網站的負載情況。Nginx并發查看有兩種方法(之所以這么說,是因為筆者只知道兩種),一種是通過web界面,一種是通過命令,web查看要比命令查看顯示的結果精確一些。下面介紹這兩種查看方法 No1、通過瀏覽器查看 通過web界面查看時Nginx需要開啟status模塊,也就是安裝Nginx時加上 &n…

    Linux干貨 2016-10-19
  • 宣言

    我是一個新手  但是我想認真努力學好linux     有朝一日能成為別人眼中的大牛再回頭看看現在 不會后悔  付出必然會有回報  雖千萬人吾往矣!

    Linux干貨 2016-10-24
  • Linux Sysadmin–part3

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現 #!/bin/bash for i in `cut -d’:’ -f7 /etc/passwd`;do if [ $i == “/sbin/nologin…

    2017-09-19
  • VPS服務器的購買使用

    ? ? ? ?Virtual Host Server(虛擬主機)是一個云計算服務,相比于傳統的購買服務器硬件方式搭建服務器,有著價格便宜,個性化定制配置,使用靈活等特點。按需求購買計算資源,只需要幾分鐘時間就可以在公網配置一個屬于自己的服務器。 ? ? ? ? 最著名的云計算服務提供商國外有Amazon,Google,vultr等等,國內有阿里云,騰訊云等等…

    2018-03-26
  • rpm包管理

    rpm包管理 rpm(RedHat Package Manager) 是RedHat公司發展的一種將軟件安裝到Linux系統的管理機制,也是一種數據庫記錄方法。 Linux系統上軟件的安裝主要分兩種方式,從廠商發布的tarball通過編譯來安裝;或者使用廠商已經在相應平臺上編譯好的二進制文件。 從源碼編譯安裝的程序,在漏洞修補以及軟件功能升級時太過麻煩,并且…

    Linux干貨 2016-11-18

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-06-29 15:11

    寫的很好,可以多注意一下排版問題,加油

欧美性久久久久