1、Linux上的文件管理類命令都有那些,其常用的使用方法及其相關示例演示。
文件管理工具:cp, mv, rm
cp命令:copy復制命令
SOURCE:源文件;DEST:目標文件;
單源復制:cp [OPTION]… [-T] SOURCE DEST
多源復制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
單源復制:cp [OPTION]… [-T] SOURCE DEST
如果DEST不存在:則事先創建此文件,并復制源文件的數據流至DEST中;
? 示例:[root@localhost ~]# cp /etc/inittab /tmp
? ? ? ? ? ? ? [root@localhost ~]# ls /tmp
? ? ? ? ? ? ? ?inittab ?
如果DEST存在:
如果DEST是非目錄文件:則覆蓋目標文件;
如果DEST是目錄文件:則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流;
?示例: ?[root@localhost ~]# cp /etc/inittab /tmp
? ? ? ? ? ? ? ? cp:是否覆蓋”/tmp/inittab”? y
? ? ? ? ? ? ? ? [root@localhost ~]# ls /tmp
? ? ? ? ? ? ? ? ?inittab??????
多源復制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
如果DEST不存在:錯誤;
如果DEST存在:
如果DEST是非目錄文件:錯誤;
如果DEST是目錄文件:分別復制每個文件至目標目錄中,并保持原名;
? 示例:[root@localhost tmp]# ls test
? ? ? ? ? ? ? ?123? 234,345
? ? ? ? ? ? ? [root@localhost tmp]# cp /tmp/test/123 /tmp/test/234,345 /tmp/test2
? ? ? ? ? ? ? [root@localhost tmp]# ls /tmp/test2
? ? ? ? ? ? ? 123? 234,345
常用選項:
-i:交互式復制,即覆蓋之前提醒用戶確認;
-f:強制覆蓋目標文件;
-r, -R:遞歸復制目錄;
-d:復制符號鏈接文件本身,而非其指向的源文件;
-a:-dR –preserve=all, archive,用于實現歸檔;
–preserv=
mode:權限
ownership:屬主和屬組
timestamps: 時間戳
context:安全標簽
xattr:擴展屬性
links:符號鏈接
all:上述所有屬性
mv命令:move
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE..
常用選項:
-i:交互式;
-f:force
示例:[root@localhost tmp]# ls ?123.txt
? ? ? ? ? ? ?[root@localhost ~]# mv /tmp/123.txt /tmp/test/
? ? ? ? ? ? ?[root@localhost ~]# ls /tmp/test
? ? ? ? ? ? ?123? 123.txt? 234,345
rm命令:remove
rm [OPTION]… FILE…
?示例:[root@localhost ~]# ls /tmp/test
? ? ? ? ? ? ? 123? 123.txt? 234,345
? ? ? ? ? ? ?[root@localhost ~]# rm /tmp/test/123
? ? ? ? ? ? ? rm:是否刪除普通空文件 “/tmp/test/123″?y
? ? ? ? ? ? ?[root@localhost ~]# ls /tmp/test
? ? ? ? ? ? ? ?123.txt? 234,345
常用選項:
-i:interactive
-f:force
-r: recursive
刪除目錄:rm -rf /PATH/TO/DIR
危險操作:rm -rf /*
注意:所有不用的文件建議不要直接刪除,而是移動至某個專用目錄;(模擬回收站)
2、Bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
bash的基礎特性:命令的執行狀態結果
命令執行的狀態結果:
bash通過狀態返回值來輸出此結果:
成功:0
失敗:1-255
命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;?命令正常執行時,有的還回有 ? ? ? ? ? ? ? ? 命令返回值:根據命令及其功能不同,結果各不相同;
?示例:
[root@localhost ~]# ls
[root@localhost ~]# echo $?
0
[root@localhost ~]# asdf
-bash: asdf: command not found
[root@localhost ~]# echo $?
127
命令行展開;
以某些bash能夠解釋的符號來代替命令中的某些參數。
~:展開為用戶的家目錄;
例:切換至家目錄
cd ~;pwd
/root
{}:可承載一個以逗號分隔的列表,并將其展開為多個路徑;
例:在/tmp/d目錄下創建f1,f2,f3三個文件
ttouch /tmp/d/f{1,2,3}
? ? ? ? 示例: [root@localhost ~]# touch /tmp/d/f{1,2,3}
? ? ? ? ? ? ? ? ? ? ?[root@localhost ~]# tree
. ? ? ? ? ? ? ? ? ? └── d
? ? ? ? ? ? ? ? ? ?├── f1
? ? ? ? ? ? ? ? ? ?├── f2
? ? ? ? ? ? ? ? ? ?└── f3
? ? ? ? ? ? ? ? ?1 directory, 3 files
? ? ? ? ? ? ? ? ?[root@localhost tmp]#
3、請使用命令行展開功能來完成以下的練習
? ? ? ? ? ?(1)、創建/tmp目錄下的:a_c,a-_d,b_c,b_d
示例: ? [root@localhost ~]# mkdir -v /tmp/{a,b}_{c,d}
? ? ? ? ? ? ? ? ? ?mkdir: 已創建目錄 “/tmp/a_c”
? ? ? ? ? ? ? ? ? mkdir: 已創建目錄 “/tmp/a_d”
? ? ? ? ? ? ? ? ? mkdir: 已創建目錄 “/tmp/b_c”
? ? ? ? ? ? ? ? ? mkdir: 已創建目錄 “/tmp/b_d”
? ? ? ? ? ? ? ? ? [root@localhost ~]# tree /tmp
? ? ? ? ? ? ? ? ? /tmp
? ? ? ? ? ? ? ?├── a_c
? ? ? ? ? ? ? ?├── a_d
? ? ? ? ? ? ? ├── b_c
? ? ? ? ? ? ?├── b_d
? (2) ?創建/tmp/mylinux目錄下的:
示例: ?[root@localhost ~]# mkdir -p ? ? ? ? ? ? ? ? ? /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network- ? ? ? ?soripts},lib/modiles,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{look,log,run}}
[root@localhost ~]# tree /tmp/mylinux
/tmp/mylinux
├── bin
├── boot
│?? └── grub
├── dev
├── etc
│?? ├── rc.d
│?? │ ? ? ? ? ?└── init.d
│?? └── sysconfig
│ ? ? ? ? ? ? ?└── network-soripts
├── lib
│ ? ? ? ? └── modiles
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│?? └── local
│ ? ? ? ? ? ? ├── bin
│ ? ? ? ? ? ? ?└── sbin
└── var
├── log
├── look
└── run
24 directories, 0 files
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
? ? ? ? ? (1)文件的元數據信息及查看
文件的數據分兩種:一種元數據,既屬性數據;一種就是數據本身;可使用stat命令查看文件的元數據:
例如:
]# stat /etc/passwd
文件:”/etc/passwd”
大小:2483 塊:8 IO 塊:4096 普通文件
設備:fd00h/64768d Inode:136755684 硬鏈接:1
權限:(0644/-rw-r–r–) Uid:( 0/ root) Gid:( 0/ root)
環境systemu:objectr:passwdfilet:s0
最近訪問:2016-09-22 22:07:14.897045766 +0800
最近更改:2016-09-20 18:10:23.223086880 +0800
最近改動:2016-09-20 18:10:23.227086888 +0800
創建時間:-
其中:file:文件名;
size:文件大小
block:文件占了多少個數據塊
IO Block:文件所占數據塊的塊大小
Device:硬件,既說明該文件在硬盤的那個柱面
Inode:節點號
links:鏈接
Access(第一個):權限
Uid:該文件所屬的屬
Gid:該文件所屬的屬組
context:安全上下文
Access(第二個):文件上一次的訪問時間
Modify:文件上一次修改的時間
Change:文件上一次屬性更改的時間
修改文件的時間戳信息:
可以使用touch命令更改文件的時間戳:
語法:touch [OPTION]… FILE…
常用選項:
-c: 指定的文件路徑不存在時不予創建;
-a: 僅修改access time;
-m:僅修改modify time;
-t:使用指定的日期時間,而非現在的時間;[[CC]YY]MMDDhhmm[.ss];
5.如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
命令別名(alias)
通過alias命令實現:
(1) alias
顯示當前shell進程所有可用的命令別名;
(2) alias NAME=’VALUE’
定義別名NAME,其相當于執行命令VALUE;
注意:在命令行中定義的別名,僅對當前shell進程有效;如果想永久有效,要定義在配置文件中;
僅對當前用戶:~/.bashrc
對所有用戶有效:/etc/bashrc
編輯配置給出的新配置不會立即生效;
bash進程重新讀取配置文件:
路徑:source /path/to/config_file
相對路徑:. /path/to/config_file
撤消別名:unalias? 格式:unalias [-a] name [name …]
如果別名同原命令的名稱,則如果要執行原命令,可使用”\COMMAND”;
引用另一個命令的執行結果——管道:COMMAND1 | COMMAND2 | COMMAND3 |…
最后一個命令會在當前shell進程的子shell進程中執行;
6.顯示/var目錄下所有以1開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其他字符)的文件或目錄。
示例:
[root@localhos]#? ls /var/1*[0-9]*[a-z]
7.顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
示例:
[root@localhos]# ls /etc/[0-9]*[^0-9]
8.顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其他任意長度任意字符的文件或目錄。
示例:
[root@localhos]# ls /etc/[^[:alpha:]][:alpha:]*
9.在/tmp目錄下創建以tgile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
示例:
[root@localhost tmp]# touch tfile-`date +%F-%H-%M-%S`
[root@localhost tmp]# ls
tfile-2018-03-23-00-29-40
10.復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
示例:
[root@localhost ~]# mkdir /tmp/mytest1
[root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1
[root@localhost ~]# ls /tmp/mytest1
pam.d ??passwd-?????? pinforc?? pm??????????????????????????? popt.d?????? ppp???????????? printcap??
-
復制/etc目錄下所有以.d結尾的文件或目錄到/tmp/mytest2目錄中。
示例:
[root@localhost ~]# mkdir /tmp/mytest2
[root@localhost ~]# cp -r /etc/*.d /tmp/mytest2
[root@localhost ~]# ls /tmp/mytest2
ant.d????????????? cron.d???????? event.d?????? logrotate.d??? oddjobd.conf.d? profile.d? rc3.d? rc.d??????????
12.復制/etc目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
示例:? ??
[root@localhost ~]# mkdir /tmp/mytest3
?[root@localhost ~]# cp -r /etc/[l,m,n]*\.conf /tmp/mytest3
[root@localhost ~]# ls /tmp/mytest3
latrace.conf? libaudit.conf? logrotate.conf? mke2fs
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92838