1. 程式人生 > >Linux文件管理

Linux文件管理

命令 做什麽 sco copy file manage CP fstab mes col

Linux文件管理
======================================

(參考於千鋒教育教學筆記)

1,文件管理之:創建/復制/移動/刪除

==創建

文件創建:touch

[root@aminglinux ~]# touch file1 //如果有file1文件,則修改時間;如果沒有,則建立一個新的文件file1

[root@aminglinux ~]# touch file2 file3

[root@aminglinux ~]# touch /root/file10
[root@aminglinux ~]# touch /root/{file5,file6}
[root@aminglinux ~]# touch file{11..20} //創建“file11-file20” 10個文件
[root@aminglinux ~]# touch file{a..h} / /創建“filea-fileh” 7個文件
[root@aminglinux ~]# touch aming{a,b,c,d} //相當於 touch aminga,amingb,amingc,amingd

目錄創建: mkdir(make directories)

[root@aminglinux ~]# mkdir dir1
[root@aminglinux ~]# mkdir dir2 dir3
[root@aminglinux ~]# mkdir /root/dir{4,5}

[root@aminglinux ~]# mkdir -v dir{6..10} //-v

:為每個創建的目錄打印一條消息
mkdir: 已創建目錄 "dir6"
mkdir: 已創建目錄 "dir7"
mkdir: 已創建目錄 "dir8"
mkdir: 已創建目錄 "dir9"
mkdir: 已創建目錄 "dir10"

[root@aminglinux ~]# mkdir -pv dir11/dir1/dir1 //-p:創建一大串級聯目錄
mkdir: 已創建目錄 "dir11"
mkdir: 已創建目錄 "dir11/dir1"
mkdir: 已創建目錄 "dir11/dir1/dir1"

==復制 cp (copy files and directories)
用法:cp [選項]... [-T] 源文件 目標文件
 或:cp [選項]... 源文件... 目錄
 或:cp [選項]... -t 目錄 源文件...

[root@aminglinux ~]# cd
[root@aminglinux ~]# mkdir dir{1,2}
[root@aminglinux ~]# cp -v anaconda-ks.cfg /root/dir1
"anaconda-ks.cfg" -> "/root/dir1/anaconda-ks.cfg"
[root@aminglinux ~]# cp -v anaconda-ks.cfg /root/dir1/aming.txt
"anaconda-ks.cfg" -> "/root/dir1/aming.txt"
[root@aminglinux ~]# ls /root/dir1
aming.txt anaconda-ks.cfg

[root@aminglinux ~]# cp -r /etc /root/dir1 //-r
:遞歸復制目錄
[root@aminglinux ~]# ls dir1
aming.txt anaconda-ks.cfg etc

[root@aminglinux ~]# cp -v anaconda-ks.cfg /root/dir2 //-v:解釋正在做什麽
"anaconda-ks.cfg" -> "/root/dir2/anaconda-ks.cfg"
[root@aminglinux ~]# cp 1.txt !$ //!$ :引用上一命令最後一個參數
cp 1.txt /root/dir2

[root@aminglinux ~]# cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/passwd /etc/hostname /root/dir2
//復制多個文件到目錄

"/etc/sysconfig/network-scripts/ifcfg-ens33" -> "/root/dir2/ifcfg-ens33"
"/etc/passwd" -> "/root/dir2/passwd"
"/etc/hostname" -> "/root/dir2/hostname"

[root@aminglinux ~]# \cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/passwd /etc/hostname /etc/hosts . //復制多個文件到你現在所在這個目錄
"/etc/sysconfig/network-scripts/ifcfg-ens33" -> "./ifcfg-ens33"
"/etc/passwd" -> "./passwd"
"/etc/hostname" -> "./hostname"
"/etc/hosts" -> "./hosts"
[root@aminglinux ~]# pwd . //. 就是你現在所在的目錄
/root

[root@aminglinux ~]# cp -r /etc /tmp
[root@aminglinux ~]# cp -rf /etc /tmp
cp:是否覆蓋"/tmp/etc/fstab"? y
cp:是否覆蓋"/tmp/etc/crypttab"? y
cp:是否覆蓋"/tmp/etc/resolv.conf"? y
[root@aminglinux ~]# \cp -r /etc /tmp // \:轉義字符

[root@aminglinux ~]# cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak
"/etc/sysconfig/network-scripts/ifcfg-ens33" -> "/etc/sysconfig/network-scripts/ifcfg-ens33.bak"
[root@aminglinux ~]# cp -rv /etc/sysconfig/network-scripts/{ifcfg-ens33,ifcfg-ens33.bak}
cp:是否覆蓋"/etc/sysconfig/network-scripts/ifcfg-ens33.bak"? y
"/etc/sysconfig/network-scripts/ifcfg-ens33" -> "/etc/sysconfig/network-scripts/ifcfg-ens33.bak"

[root@aminglinux ~]# cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33{,-org}
"/etc/sysconfig/network-scripts/ifcfg-ens33" -> "/etc/sysconfig/network-scripts/ifcfg-ens33-org"
[root@aminglinux ~]# cp -rv /etc/sysconfig/network-scripts/{ifcfg-ens33,sambo-ens33}
"/etc/sysconfig/network-scripts/ifcfg-ens33" -> "/etc/sysconfig/network-scripts/sambo-ens33"

==移動 mv {move (rename) files}
用法:mv [選項]... [-T] 源文件 目標文件
 或:mv [選項]... 源文件... 目錄
 或:mv [選項]... -t 目錄 源文件...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
示例:
移動文件
[root@aminglinux ~]# mv 1.txt /root/dir3 //將1.txt移動(move)到/root/dir3
[root@aminglinux ~]# mv 2.txt /root/dir3/file1 //將2.txt移動(move)到/root/dir3,並改名為file1
[root@aminglinux ~]# mv 3.txt 5.txt //將3.txt重命名(rename)為5.txt

移動目錄
[root@aminglinux ~]# ls
dir1 dir2 dir3
[root@aminglinux ~]# mv dir1 dir4 //將dir1重命名(rename)為dir4
[root@aminglinux ~]# ls
dir2 dir3 dir4
[root@aminglinux ~]# mv dir2 dir3 //將dir2移動到dir3
[root@aminglinux ~]# ls
dir3 dir4
[root@aminglinux ~]# ls dir3
dir2

==刪除 rm (remove files or directories)
用法:rm [選項]... 文件...
Remove (unlink) the FILE(s)

示例:
[root@aminglinux ~]# mkdir /tmp/test/123
[root@aminglinux ~]# rm -rv /tmp/test/123/ //-r:遞歸地刪除目錄及其內容
rm:是否刪除目錄 "/tmp/test/123/"?y
已刪除目錄:"/tmp/test/123/"

[root@aminglinux ~]# mkdir /tmp/test/123
[root@aminglinux ~]# rm -rfv /tmp/test/123/ //-f:強制刪除
已刪除目錄:"/tmp/test/123/"

[root@aminglinux ~]# mkdir /root/dir10
[root@aminglinux ~]# touch /root/dir10/{file1,file2.file3,.file4}
[root@aminglinux ~]# rm -rf /root/dir10/* //*不包括隱藏項目
[root@aminglinux ~]# ls -a /root/dir10
. .. .file4

[root@aminglinux ~]# rm -rf file*
[root@aminglinux ~]# rm -rf *.txt

註意事項:
rm -rf 命令後面不能加“/",否則它會把你的系統文件全部刪除。

2.文件管理之:查看文件內容
===(cat,tac,more,less,head,tail)
cat : concatenate files and print on the standard output
(連接文件並在標準輸出上打印)
tac: concatenate and print files in reverse
(反向連接並打印文件)

more : 用於查看一個文件的內容,後面直接跟文件名。當看完一屏後按空格鍵繼續看下一屏。
但看完所有內容後就會退出。如果你想提前退出,只需按 ‘q’ 鍵即可。

less :用來查看一個文件的內容,後面直接跟文件名。比more好在可以上翻,下翻。
空格鍵同樣可以翻頁,而按 ‘j’ 鍵可以向下移動(按一下就向下移動一行),
按 ‘k’ 鍵向上移動。
more和less :可以按一下 ‘/’ 鍵,然後輸入一個word回車,這樣就可以查找這個word了。
如果是多個該word可以按 ‘n’ 鍵顯示下一個。另外你也可以不按 ‘/’ 而是按 ‘?’
後邊同樣跟word來搜索這個word,唯一不同的是, ‘/’ 是在當前行向下搜索,
而 ‘?’ 是在當前行向上搜索。

head: 後直接跟文件名,則顯示文件的前十行。如果加 -n 選項則顯示文件前n行。
tail: 後面直接跟文件名,則顯示文件最後十行。如果加-n 選項則顯示文件最後n行。
-f : 動態顯示文件的最後十行,如果文件是不斷增加的,則用-f 選項。一般用於查看動態日誌文件。

示例:
[root@aminglinux test]# cat -n passwd
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
11 games:x:12:100:games:/usr/games:/sbin/nologin
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13 nobody:x:99:99:Nobody:/:/sbin/nologin
14 systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
15 systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

[root@aminglinux test]# tac passwd
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash

[root@aminglinux test]# head -n 5 passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@aminglinux test]# tail -n 2 passwd
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

Linux文件管理