N31期-第二周作業

Linux基礎文件管理

1、文件管理類命令

mkdir:創建目錄

使用格式:mkdir ?[OPTION]… ?DIRECTORY…

選項:

-p 創建父目錄

-v 顯示信息

 

示例:

直接使用,指定目錄名稱,就會在當前目錄下創建該目錄,也可以使用絕對路徑在指定目錄創建

[root@localhost tmp]# mkdir test
[root@localhost tmp]# ls
test

[root@localhost tmp]# mkdir /home/test
[root@localhost tmp]# ls -d /home/test/
/home/test/

 

使用-p選項,可以創建父目錄,在創建多層目錄時使用,不加-p會報錯的

[root@localhost tmp]# mkdir ops/opt/home
mkdir: 無法創建目錄”ops/opt/home”: 沒有那個文件或目錄
[root@localhost tmp]# mkdir -p ops/opt/home
[root@localhost tmp]# tree /tmp/
/tmp/
├── ops
│?? └── opt
│ ? ? ? ? └── home
└── test

4 directories, 0 files

 

-v選項,可以顯示創建目錄的過程

[root@localhost tmp]# mkdir -pv test/user/dawang
mkdir: 已創建目錄 “test/user”
mkdir: 已創建目錄 “test/user/dawang”
[root@localhost tmp]# tree /tmp/
/tmp/
├── ops
│?? └── opt
│ ? ? ? ?└── home
└── test
└── user
└── dawang

6 directories, 0 files

 

rmdir:刪除目錄,只能刪除空目錄,比如上述示例演示創建的目錄,里面沒有任何文件

使用格式:rmdir ? [OPTION]… ? DIRECTORY…

選項:

-p 刪除指定目錄,如果刪除目錄的上級目錄也為空,就一并刪除

-v 顯示過程信息

 

示例:

直接使用,刪除指定目錄

[root@localhost tmp]# tree /tmp/
/tmp/
├── ops
│?? └── opt
│ ? ? ? ? ?└── home
└── test
└── user
└── dawang

6 directories, 0 files
[root@localhost tmp]# rmdir ops/opt/home
[root@localhost tmp]# tree /tmp/
/tmp/
├── ops
│?? └── opt
└── test
└── user
└── dawang

5 directories, 0 files

 

使用-p選項,刪除空的父目錄

使用-v選項,顯示過程信息

[root@localhost tmp]# rmdir -pv test/user/dawang/
rmdir: 正在刪除目錄 “test/user/dawang/”
rmdir: 正在刪除目錄 “test/user”
rmdir: 正在刪除目錄 “test”
[root@localhost tmp]# tree /tmp/
/tmp/
└── ops
└── opt

2 directories, 0 files

 

name:簡單的文本編輯器,可以修改文本文件的內容,如果文件不存在,即直接創建空文件并進入編輯

[root@localhost tmp]# nano user.txt
[root@localhost tmp]# ls
ops user.txt

 

rm:刪除文件

格式:rm ? [options]… ? file…

選項:

-f 不提示確認信息

-r 刪除目錄

 

示例:

使用-r刪除目錄

[root@localhost tmp]# rm -r ops/opt
rm:是否刪除目錄 “ops/opt”?y
[root@localhost tmp]# tree /tmp/
/tmp/
├── ops
└── user.txt

1 directory, 1 file

 

使用-f 忽略提示信息,直接進行刪除,危險操作,可能會誤刪除重要文件

[root@localhost tmp]# rm -rf ops user.txt
[root@localhost tmp]# tree /tmp/
/tmp/

0 directories, 0 files

 

cp :復制多個文件或者目錄到指定位置

cp [OPTION]… ? SOURCE ? DEST

選項:

-f 如果有重名的文件,將強制覆蓋原文件

-p 復制的文件保留屬性信息,比如文件屬主,屬組,權限,時間戳等

-r 遞歸復制目錄,即復制的對象為目錄時,必須使用-r

 

示例:

復制多個文件到同一個目錄

[root@localhost tmp]# cp /etc/passwd /etc/fstab /tmp
[root@localhost tmp]# ls
fstab passwd

 

復制多個目錄到同一個目錄

[root@localhost tmp]# cp -r /root /home /tmp/
[root@localhost tmp]# ls
fstab home passwd root

 

復制文件到指定目錄并改名

[root@localhost tmp]# cp /etc/passwd /tmp/text
[root@localhost tmp]# ls
fstab home passwd root text

 

mv:移動文件或者目錄,也可以進行重命名,用法與cp類似

mv ? [選項]… ? 源文件 ? 目標文件
mv ? [選項]… ? 源文件… ? 目錄

可以同時移動多個文件或者目錄,但是只能一起移動到某個目錄中

選項:

-f 重名文件,直接覆蓋,不提示信息

 

示例:

移動多個目錄到當前目錄

[root@localhost tmp]# mv /root/direct/ /root/tables/ /tmp/
[root@localhost tmp]# ls /tmp/
direct fstab home passwd root tables text

 

重命名文件或者目錄

[root@localhost tmp]# ls /tmp/
direct fstab home passwd root tables text
[root@localhost tmp]# mv home viewhouse
[root@localhost tmp]# ls
direct fstab passwd root tables text viewhouse

 

2、bash特性之命令的執行狀態返回值和命令行展開

在bash中每一跳命令執行結束后都會有一個執行結果的狀態碼,標識了命令是否執行成功,如果失敗還可以根據定義的狀態碼進行排錯

命令執行成功,沒有報錯,狀態碼為 0

如果執行失敗,狀態碼為 1-255

只要狀態碼不為0,即命令執行失敗

命令的執行狀態碼是保存在$? 變量中,可以通過echo命令查看狀態碼

[root@localhost tmp]# ls
direct fstab passwd root tables text viewhouse
[root@localhost tmp]# echo “$?”
0
[root@localhost tmp]# ls /rot
ls: 無法訪問/rot: 沒有那個文件或目錄
[root@localhost tmp]# echo “$?”
2

 

命令行展開

在命令行中需要輸入多個,近似位置的目錄時,可以使用花括號 { } 將目錄簡寫,然后在命令執行的過程中,會自動展開,代表相對不同的路徑

比如:/etc/{passwd,rc.d/init.d}

代表/etc/passwd ? 和 ?/etc/rc.d/init.d ?兩個文件

主要就是將重復的路徑只用寫一次,在路徑分支的地方使用花括號,簡寫在一起即可

 

3、命令演示

創建/tmp目錄下 a_c,a_d,b_c,b_d目錄

[root@localhost tmp]# mkdir /tmp/{a,b}_{c,d}
[root@localhost tmp]# ls
a_c a_d b_c b_d

 

創建多層目錄:

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}}

QQ截圖2528

 

4、元數據

在Linux的文件系統中,一般文件是分為兩部分進行存放的

一部分是文件的屬性信息,包括創建時間,權限,屬主屬組,文件大小等,即文件的元數據

另一部分是文件的實際內容,比如一個文本文件,那保存的就是用戶輸入的文本信息

 

元數據可以使用stat命令查看

[root@localhost ~]# stat /root
File: “/root”
Size: 4096 Blocks: 8 IO Block: 4096 目錄
Device: fd00h/64768d Inode: 654081 Links: 22
Access: (0550/dr-xr-x—) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-06-26 14:41:20.269487642 +0800
Modify: 2018-06-25 20:21:06.533516263 +0800
Change: 2018-06-25 20:21:06.533516263 +0800

上述是一個目錄的元數據信息

常用的數據信息:

file:文件名

size:文件大小

Inode:元數據存放的節點位置

access:訪問權限 ? ? uid:屬主用戶id ? ? gid:屬組id

access:最近一次的訪問時間

modify:最近一個文件內容被修改的時間

change:文件元數據最近一次被修改的時間,默認上面任何數據只要變動了,這個時間都會更新

 

可以使用 touch 命令修改文件 的時間戳,即文件元數據的訪問時間,修改時間,改變時間

常用選項:

-a 修改訪問時間,不指定時間,默認修改為現在的系統時間

-m 指定修改時間,不指定時間,默認修改為現在的系統時間

-r 可以參考其他文件的時間進行修改

-t 將時間戳修改為指定的時間

-c 默認touch的是新文件,會自動創建的,使用-c選項即不會創建新文件

 

修改訪問時間

[root@localhost ~]# touch -a -t 201806201433.23 install.log

[root@localhost ~]# stat install.log
File: “install.log”
Size: 27156 Blocks: 64 IO Block: 4096 普通文件
Device: fd00h/64768d Inode: 654082 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-06-20 14:33:23.000000000 +0800
Modify: 2018-06-12 21:18:02.415230207 +0800
Change: 2018-06-26 14:58:43.785373347 +0800

 

5、命令別名及引用

可以將經常使用的復雜的命令,定義一個別名,在命令行直接使用別名即可調用原命令

查看當前定義的所用命令別名

[root@localhost ~]# alias
alias cp=’cp -i’
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也可以自己定義別名

[root@localhost ~]# alias c=’clear’
[root@localhost ~]# alias
alias c=’clear’

不過這種方法只是在當前的登錄shell有效,如果想永久有效,需要將別名寫在配置文件中

/etc/bashrc ?全局有效,即所有用戶登錄后都會生效

~/.bashrc ?在用戶家目錄下的文件,只對所屬用戶生效

 

命令引用:命令在執行的時候會將引用的命令替換成命令的執行結果

touch $(date +%y-%m-%d)

創建一個文件,文件名為date命令的執行結果

命令引用有兩種方式

$( ) ? ? ? dollar符號開頭,命令放在小括號里頭

“ ? ? ? ? 命令用反引號括起來

 

6、命令演示

[root@localhost ~]# ls -d /var/l*[0-9]*[a-z]
/var/ld39z

顯示/var目錄下,所有以l開頭,中間至少一個數字,最后小寫字母結尾的文件或者目錄

 

7、命令演示

[root@localhost ~]# ls -d /etc/[0-9]*[^0-9]
/etc/38764aegc

顯示/etc目錄下,所有數字開頭,非數字結尾的文件或者目錄

 

8、命令演示

[root@localhost ~]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
/etc/6anoiegalj9

顯示/etc目錄下,非字母開頭,后面跟了一個字母的所有文件或者目錄

 

9、命令演示

touch /tmp/tfile-$(date “+%Y-%m-%d-%H-%M-%S”)

在/tmp目錄下創建一個tfile開頭后面是年月日小時分鐘秒的文件

 

10、命令演示

[root@localhost ~]# mkdir /tmp/mytest1
[root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1
[root@localhost ~]# ls /tmp/mytest1
pam.d passwd- pki pm postfix prelink.conf.d profile protocols
passwd pinforc plymouth popt.d ppp printcap profile.d python

將/etc目錄下p開頭非數字結尾的文件和目錄復制到/tmp/mytest1目錄下

 

11、命令演示

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

復制/etc目錄下所有以.d結尾的文件和目錄至/tmp/mytest2目錄下

 

12、命令演示

[root@localhost ~]# mkdir /tmp/mytest3
[root@localhost ~]# cp -r /etc/[lmn]*.conf /tmp/mytest3
[root@localhost ~]# ls /tmp/mytest3
ld.so.conf libuser.conf logrotate.conf mke2fs.conf nsswitch.conf
libaudit.conf locale.conf man_db.conf named.conf

復制/etc目錄下以 l或m或n 開頭 .conf結尾的文件至/tmp/mytest3目錄下

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/101754

(0)
貴上蔣貴上蔣
上一篇 2018-06-26 11:38
下一篇 2018-06-26

相關推薦

  • 文件查找和壓縮

    locate查詢系統上預建的文件索引數據庫索引數據庫:/var/lib/mlocate/mlocate.db工作特點:查找速度快模糊查找非實時查找搜索的式文件的全路徑,不僅僅是文件名可能只搜索用戶具備讀取和執行權限的目錄參數:-i:不區分大小寫-n:只列舉前n行-r:使用正則表達式find:實時查找工具工作特點:查找速度慢,非常消耗資源精確查找實時查找可能只…

    2018-04-16
  • 軟件包管理 {C語言源代碼編譯安裝三步驟}

    本文主要記錄 centos7 編譯安裝 httpd2.4.25 過程,加深記憶及備忘

    2018-04-22
  • Linux系統啟動相關

    Linux系統啟動相關

    2018-04-13
  • 二進制編譯MariaDB

    安裝環境 iptables selinux mariadb-server 卸載 創建賬號 useradd -r -d /data/mysqldb -s /sbin/nologin mysql 解壓縮 tar xvf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local/ 創建軟鏈接 cd /usr/local l…

    Linux筆記 2018-06-10
  • SSH協議及基于SSH集群key認證實驗

    本節索引: 一、SSH協議相關概念 二、實驗:實現基于key登錄認證 三、實驗:實現多臺機器間互相基于key登錄認證 四、實驗:實現100臺機器基于key登錄驗證 五、實驗:利用pssh工具實現集群操作 一、SSH協議相關概念 SSH:secure shell,protocal,22/tcp,安全的遠程登錄; 利用 SSH 協議可以有效防止遠程管理過程中的信…

    2018-05-19
欧美性久久久久