馬哥教育網絡班20期第2周課程練習

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

linux上文件管理命令包括:

ls,cat,pwd,cp,rm,cd,head,tail,more,less,cut,which,whereis,find,mkdir,mv;

1、ls 命令;顯示文件/文件夾清單

  例如:如下顯示列出根目錄下的文件及目錄清單

  [root@localhost ~]# ls /var  列出/var文件夾下的目錄及文件等

 一般通常后加選項:-a -l -h -d等

-a 列出目錄下的所有文件,包括以 . 開頭的隱含文件。
-d 將目錄象文件一樣顯示,而不是顯示其下的文件。
-l  列出文件的詳細信息。
-h 將文件大小自動轉換為容易理解的文件大?。ɡ纾?K 10M 1G等 )

2、cat 命令cat命令是linux下的一個文本輸出命令,通常是用于觀看某個文件的內容的;

cat主要有三大功能:
1.一次顯示整個文件。
 [root@localhost ~]# cat   filename
2.從鍵盤創建一個文件。
 [root@localhost ~]# cat  >  filename
只能創建新文件,不能編輯已有文件.
3.將幾個文件合并為一個文件。
 [root@localhost ~]# cat   file1   file2  > file

3、pwd命令: 用于查看“當前目錄”’的完整路徑

[root@localhost network-scripts]# pwd

/etc/sysconfig/network-scripts

4、cp命令: 用于復制文件或目錄,一般情況下,shell會設置一個別名,在命令行下復制文件時,如果目標文件已經存在,就會詢問是否覆蓋,不管你是否使用-i參數。但是如果是在shell腳本中執行cp時,沒有-i參數時不會詢問是否覆蓋。這說明命令行和shell腳本的執行方式有些不同。如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,則它會把前面指定的所有文件或目錄復制到此目錄中。若同時指定多個文件或目錄,而最后的目的地并非一個已存在的目錄,則會出現錯誤信息。

下面這段為網上摘錄,方便自己也方便有類似問題的朋友。

參數:
     -a 或 –archive     此參數的效果和同時指定"-dpR"參數相同
     -b 或 –backup      刪除、覆蓋目的文件先備份,備份的文件或目錄亦建立為符號鏈接,并指向源文件或目錄鏈接的源文件或目錄。假如沒有加上這個參數,在復制過程中若遇到符號鏈接,則會直接復制源文件或目錄
     -f 或 –force       強行復制文件或目錄, 不論目的文件或目錄是否已經存在
     -i 或 –interactive 覆蓋文件之前先詢問用戶
     -l 或 –link        對源文件建立硬鏈接,而非復制文件
     -p 或 –preserve    保留源文件或目錄的屬性,包括所有者、所屬組、權限與時間
     -P 或 –parents     保留源文件或目錄的路徑,此路徑可以是絕對路徑或相對路徑,且目的目錄必須已經豐在
     -r                  遞歸處理,將指定目錄下的文件與子目錄一并處理。若源文件或目錄的形態,不屬于目錄或符號鏈接,則一律視為普通文件處理
     -R 或 –recursive   遞歸處理,將指定目錄下的文件及子目錄一并處理
     -s 或 –symbolic-link  對源文件建立符號鏈接,而非復制文件
     -S <備份字尾字符串> 或 –suffix=<備份字尾字符串> 用"-b"參數備份目的文件后,備份文件的字尾會被加上一個備份字符串。默認的備份字尾符串是符號"~"
     -u 或 –update      使用這項參數之后,只會在源文件的修改時間(Modification Time)較目的文件更新時,或是名稱相互對應的目的文件并不存在,才復制文件
     -v 或 –verbose     顯示執行過程
     -V <備份方式> 或 –version-control=<備份方式>  指定當備份文件時,備份文件名的命名方式,有以下3種:
                         1.numbered或t, 將使用備份編號,會在字尾加上~1~字符串,其數字編號依次遞增
                         2.simple或never 將使用簡單備份,默認的備份字尾字符串是~, 也可通過-S來指定
                         3.existing或nil將使用當前方式,程序會先檢查是否存在著備份編號,若有則采用備份編號,若無則采用簡單備份
     -x 或 –one-file-system  復制的文件或目錄存放的文件系統,必須與cp指令執行時所處的文件系統相同,否則不復制,亦不處理位于其他分區的文件
     –help              顯示在線幫助
     –sparse=<使用時機>  設置保存希疏文件的時機
     –version           顯示版本

示例:
    .復制文件,只有源文件較目的文件的修改時間新時,才復制文件
     cp -u -v file1 file2

    .將文件file1復制成文件file2
     cp file1 file2

    .采用交互方式將文件file1復制成文件file2
     cp -i file1 file2

    .將文件file1復制成file2,因為目的文件已經存在,所以指定使用強制復制的模式
     cp -f file1 file2

    .將目錄dir1復制成目錄dir2
     cp -R file1 file2

    .同時將文件file1、file2、file3與目錄dir1復制到dir2
   cp -R file1 file2 file3 dir1 dir2

    .復制時保留文件屬性
     cp -p a.txt tmp/

    .復制時保留文件的目錄結構
     cp -P  /var/tmp/a.txt  ./temp/

    .復制時產生備份文件
     cp -b a.txt tmp/

    .復制時產生備份文件,尾標 ~1~格式
     cp -b -V t   a.txt /tmp    
  
    .指定備份文件尾標    
     cp -b -S _bak a.txt /tmp

5、rm命令:刪除一個目錄中一個或多個文件或目錄。

 注意:-r 為將列出的目錄及子目錄和文件遞歸刪除。

  [root@localhost ~]# rm -r test

6、cd命令:從當前目錄切換進入到指定目錄

 [root@localhost ~]# cd 進入用戶主目錄

 [root@localhost ~]# cd – 返回上級目錄


7、head命令:用于顯示輸出指定文件打印開頭10行。參數-n為指定幾行

 [root@localhost ~]#  head -n15 /etc/passwd 查看/etc目錄下的的passwd文件打印開頭15行

8、tail命令:用于顯示輸出指定文件打印結尾10行。參數-n為指定幾行

 [root@localhost ~]#  tail -n 15 /etc/passwd 查看/etc目錄下的passwd文件打印結尾15行

9、more命令: 與cat命令功能類似,都是查看文件內容,但有所不同的是more可以按頁來查看文件的內容。


10、less命令:less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向后移動,而且 11、less 在查看之前不會加載整個文件。


11、cut命令:剪切命令,一般是配合"|"管道來使用的。


12、which命令:查看某個命令的路徑

[root@localhost ~]# which cat

/usr/bin/cat


13、whereis命令:查找文件的路徑位置,可查詢可執行文件,源代碼文件,幫助文件在系統中的位置。

[root@localhost ~]# whereis cat

cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz


14、find命令:文件查找命令 linux下find命令在目錄結構中搜索文件,linux下find命令提供了相當多的查找條件,功能非常強大。


15、mkdir命令:創建指定目錄命令


16、mv命令:移動或重命名文件或目錄命令

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


1、bash使用特殊變量$?保存最近一條命了的執行狀態結果: 0 表示成功  1-255表示失敗

[root@localhost ~]# cd /etc

[root@localhost etc]# echo $?

0

[root@localhost etc]# cdd

-bash: cdd: 未找到命令

[root@localhost etc]# echo $?

127

[root@localhost etc]# 

2、命令行展開: ~:展開為用戶的主目錄  ~username:為展開指定用戶的主目錄

示例演示   

[root@localhost ~]# mkdir /tmp/{a,b}

[root@localhost ~]# mkdir /tmp/{a,b}/c

[root@localhost ~]# cd /tmp/a/c/

[root@localhost c]# pwd

/tmp/a/c

[root@localhost c]# cd /tmp/b/c

[root@localhost c]# pwd

/tmp/b/c



三、請使用命令行展開功能來完成以下練習: (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d (2)、創建/tmp/mylinux目錄下的:

mylinux/

(1) 

[root@localhost ~]# mkdir /tmp/{a,b}_{c,d}

[root@localhost ~]# 

[root@localhost ~]# ls /tmp

a_c  a_d  b_c  b_d  glances.log  ks-script-by5YLu  yum.log

(2) 

[root@localhost ~]# mkdir -pv /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}}

[root@localhost ~]# tree /tmp/mylinux/

/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

24 directories, 0 files

[root@localhost ~]# 

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


元數據:用來描述一個文件的系統特征,如訪問權限,文件數據分布等。

用法:

[root@localhost ~]# ll

-rw——-. 1 root root 955 6月  14 20:33 anaconda-ks.cfg   便是文件anaconda-ks.cfgd的元數據信息

-  :文件類型  (-或f為普通文件,d為目錄文件,b為塊設備,c為字符設備,l為符號鏈接文件,p為管道文件,s為套接字文件socket,)

rw-:屬主權限,r為可讀,w為可寫  (x為可執行文件)

—:屬組權限, -不可讀寫執行

— :其它,不可讀寫執行 

1  :表示硬鏈接數量 

root:第一個root表示屬主 

root:第二個root表示屬組 

955   :為文件大小 

6月 14 20:33:為時間 

anaconda-ks.cfg:最后一位表示文件名




[root@localhost ~]# stat /tmp/a_c

  文件:"/tmp/a_c"

  大?。?               塊:0          IO 塊:4096   目錄

設備:fd00h/64768d      Inode:603870      硬鏈接:2

權限:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)

環境:unconfined_u:object_r:user_tmp_t:s0

最近訪問:2016-06-18 07:05:06.152455323 +0800

最近更改:2016-06-18 07:05:06.152455323 +0800

最近改動:2016-06-18 07:05:06.152455323 +0800

創建時間:-

使用touch命令修改時間戳信息

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



1,用法

[root@localhost ~]# 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'

[root@localhost ~]# 

示例

[root@localhost ~]# alias la=$(ls -a)

2, 命令引用: name='COMMAND'或name=$(COMMAND)

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


[root@localhost ~]# ls -a /var|grep ^l.*[0-9].*[a-z]$

  [root@localhost ~]# ls -a /var|grep "\<l.*[0-9].*[a-z]\>"

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



[root@localhost ~]# ls -a /etc/|grep ^[0-9].*[^0-9]$

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


[root@localhost ~]# ls -a /etc/|grep ^[^[:alpha:]][[:alpha:]

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

touch /tmp/tfile-`date "+%Y-%m-%d-%H-%M-%S"`

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


[root@localhost ~]# mkdir /tmp/mytest1               

[root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1 

[root@localhost ~]# 

[root@localhost ~]# 

[root@localhost ~]# ls /tmp/mytest1                  

pam.d  passwd  passwd-  pki  plymouth  pm  popt.d  postfix  ppp  prelink.conf.d  printcap  profile  profile.d  protocols  python

[root@localhost ~]# 

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


[root@localhost ~]# mkdir /tmp/mytest2

[root@localhost ~]# 

[root@localhost ~]# 

[root@localhost ~]# cp -r /etc/*.d /tmp/mytest2

ls /tmp/mytest2[root@localhost ~]# ls /tmp/mytest2

bash_completion.d  cron.d     dracut.conf.d  ld.so.conf.d  modules-load.d  popt.d          rc0.d  rc3.d  rc6.d      rwtab.d     sysctl.d    yum.repos.d

binfmt.d           depmod.d   grub.d         logrotate.d   my.cnf.d        prelink.conf.d  rc1.d  rc4.d  rc.d       statetab.d  tmpfiles.d

chkconfig.d        dnsmasq.d  init.d         modprobe.d    pam.d           profile.d       rc2.d  rc5.d  rsyslog.d  sudoers.d   xinetd.d

[root@localhost ~]# 

[root@localhost ~]# 

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


[root@localhost ~]# mkdir /tmp/mytest3

[root@localhost ~]# cp /etc/[l,m,n]*.conf /tmp/mytest3

 ls /tmp/mytest3[root@localhost ~]#  ls /tmp/mytest3

ld.so.conf  lftp.conf  libaudit.conf  libuser.conf  locale.conf  logrotate.conf  man_db.conf  mke2fs.conf  nsswitch.conf

[root@localhost ~]# 

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

(0)
huan918huan918
上一篇 2016-06-23
下一篇 2016-06-23

相關推薦

  • 作業——拷貝命令及其鏈接庫

    1),提示用戶輸入一個可執行命令的名稱 2),獲取此命令所依賴額所有庫文件列表 3),復制命令至某目標目錄(/mnt/sysroot,即把此目錄當做根)下的對的路徑中 bash,/bin/bash ===> /mnt/sysroot/bin/bash useradd, /usr/sbin/useradd ===> /mnt/sysroot/usr…

    Linux干貨 2017-02-04
  • vim編輯器

      在linux系統中使用文本編輯器來編輯你的配置文件是一件很重要的事。vim是linux最常用的文本編輯器,具有以下優勢:所有的linux都內置vi文本編輯器。很多軟件都會主動調用vi,如crontab、visudo等. 所以我們必須學好vi,vim分為以下3種模式:   一般模式: 用 vi打開一個文件時,一進入該文件就是一般模式了。…

    Linux干貨 2016-06-09
  • History,Help——Linux基本命令(6)

    1.     history   當你在玩Linux的時候,如果你經常使用命令行來控制你的Linux系統,那么有效地使用命令歷史機制將會使效率獲得極大提升。 history是shell的內置命令,其內容在系統默認的shell的man手冊中。 一些用法: history[-c] [-d offset] [n] …

    2017-07-15
  • Linux系統進程管理

    本章學習內容     ——進程概念     ——進程創建、切換和撤銷     ——進程調度     ——進程分類     ——進程狀態 &n…

    Linux干貨 2016-09-13
  • 馬哥M20-1第一周作業

    作業1:通過echo實現字體閃爍,添加下劃線,改變顏色      (1)添加下劃線    (2)字體閃爍   (3)改變顏色 作業2:顯示前10天的年月日 作業3:screen的使用

    Linux干貨 2016-07-29
  • 三.Linux博客-2016年7月24日幫助、history、別名、tree

    格式說明: 操作 概念 命令 說明及舉例 三-1.幫助、history、別名、tree touch /etc/nologin 使普通用戶不能登錄(創建了一個文件,刪掉就可以登陸)   ll /etc/nologin 查看那個文件 -rm -f /etc/  刪…

    Linux干貨 2016-08-23

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-06-23 14:08

    寫的很棒,可以關注一些排版的技巧,那樣會更完美

欧美性久久久久