RHCSA教程 第三章 从命令行管理文件
1.Linux系统目录结构
/目录下每个目录的作用:
bin 用户可执行目录(命令 root 和 普通)
sbin 系统可执行目录(命令 root)
lib 库文件目录(32位)
lib64 库文件目录(64位)
dev 设备文件目录dev 设备文件目
usr 应用程序目录
var 服务器数据目录(数据 日志)
srv 服务器数据目录
etc 配置文件目录
tmp 临时文件目录
boot 服务器启动目录(内核和启动文件)
media 媒介目录(u盘,cdrom)
mnt 其他挂载点
opt 第三方应用程序目录
proc 伪文件系统(内核参数,进程信息,硬件信息)
sys 伪文件系统(c 配置文件目录 内核参数,进程信息,硬件信息)
run 进程锁目录
root root管理员家目录
home 普通用户家目录
2.文件类型
文件类型:(7种)
- 普通文件 file
d 目录文件 directory
c 字符设备文件 character
b 块设备文件 block
s 套接字文件 socket
p 管道文件 pipe
l 符号链接文件(软链接) symbolic
3.通过文件名定位文件
[root@foundation0 home]# cd /
[root@foundation0 /]# cd /etc/
4.路径的表示
绝对路径 ,通常以/开头 例子: 根开头 cd /etc/sysconfig 相对路径 非根开头 cd ..
5.导航路径
pwd、cd、ls
pwd
[root@foundation0 yum.repos.d]# pwd
/etc/yum.repos.d
cd - 返回之前的目录
cd or cd ~ 家目录
cd . 当前目录
cd .. 上一级目录
ls
ls -a
ls -a /home
ls -a -l
ls -al
[root@foundation0 ~]# ls -a .viminfo
.viminfo
[root@foundation0 ~]# ls -a -l .viminfo
-rw-------. 1 root root 2545 Mar 13 13:12 .viminfo
[root@foundation0 ~]# ls -al .viminfo
-rw-------. 1 root root 2545 Mar 13 13:12 .viminfo
[root@foundation0 /]# ls -l -d /home
drwxr-xr-x. 4 root root 30 Mar 13 11:38 /home
ls -ld /opt
ll -d /opt
alias
6.查看文件内容
cat | cat /etc/passwd | |
---|---|---|
tail | tail /var/log/message ,tail -n -5 /var/log/message | -F (追踪)指定文件不存在时再创建相同名称文件 |
head | head /var/log/message ,head -5 /var/log/message | |
less | less /var/log/message | space。q,page up,page down,ctrl+f,ctrl+b |
more | more /var/log/message | space ,q |
vim | vim /etc/passwd | 文本编辑器 |
7.使用命令行管理文件/目录
file | folder | |
---|---|---|
创建 | touch | mkdir -p |
改名 | mv | mv |
移动 | mv | mv |
拷贝 | cp | cp -r |
删除 | rm | rm -r |
touch、mkdir、rm、cp、mv
touch:
[root@servera ~]# cd /opt/
[root@servera opt]# pwd
/opt
[root@servera opt]# ls
[root@servera opt]# man touch
[root@servera opt]# touch file1
[root@servera opt]# ls
file1
[root@servera opt]# touch file2 file3
[root@servera opt]# ls
file1 file2 file3
[root@servera opt]# touch /file4 /tmp/file5
[root@servera opt]# ls /file4;ls /tmp/file5
/file4
/tmp/file5
[root@servera opt]# touch file{10..20}
[root@servera opt]# ls
file1 file11 file13 file15 file17 file19 file20
file10 file12 file14 file16 file18 file2 file3
a1.txt a2.txt a3.txt b1.txt.....c3.txt
mkdir
选项:
-p:递归创建
-v:显示过程
[root@servera opt]# rm -f file*
[root@servera opt]# ls
[root@servera opt]# man mkdir
[root@servera opt]# mkdir dir1
[root@servera opt]# ls
dir1
[root@servera opt]# mkdir dir2 /dir3
[root@servera opt]# ls
dir1 dir2
[root@servera opt]# ls /
bin dir3 home media proc sbin tmp
boot etc lib mnt root srv usr
dev file4 lib64 opt run sys var
[root@servera opt]# ls
dir1 dir2
[root@servera opt]# mkdir dir3/dir4
mkdir: cannot create directory ‘dir3/dir4’: No such file or directory
[root@servera opt]# mkdir -pv dir3/dir4
mkdir: created directory 'dir3'
mkdir: created directory 'dir3/dir4'
[root@servera opt]# ls -R dir3 #-R递归查看,可以查看多级目录内容
dir3:
dir4
dir3/dir4:
[root@servera opt]# ll -R dir3/dir4
dir3/dir4:
total 0
[root@servera opt]# ll dir3
total 0
drwxr-xr-x. 2 root root 6 Mar 13 22:23 dir4
[root@servera opt]# ll dir3/dir4/
total 0
[root@servera opt]# ll dir3/dir4/ -d
drwxr-xr-x. 2 root root 6 Mar 13 22:23 dir3/dir4/
rm
[root@servera opt]# man rm
[root@servera opt]# ls
dir1 dir2 dir3 file1 file2 file3
[root@servera opt]# rm file1
rm: remove regular empty file 'file1'? y 询问是否删除y删除n不删除
[root@servera opt]# ls
dir1 dir2 dir3 file2 file3
[root@servera opt]# rm file2
rm: remove regular empty file 'file2'? n
[root@servera opt]# rm -f file2 强制删除不询问
[root@servera opt]# ls
dir1 dir2 dir3 file3
[root@servera opt]# rm -f file* *代表一个或多个字符
[root@servera opt]# ls
dir1 dir2 dir3
[root@servera opt]# rm dir1
rm: cannot remove 'dir1': Is a directory
[root@servera opt]# rm -r dir1 删除目录需要-r表示递归
rm: remove directory 'dir1'? y
[root@servera opt]# rm -rf dir2
[root@servera opt]# ls
dir3
copy
[root@servera opt]# ls
dir1 dir2 file1 file2 file3
[root@servera opt]# cp file1 /tmp/
[root@servera opt]# ls /tmp/file1
/tmp/file1
[root@servera opt]# cp file1 /tmp/file10
[root@servera opt]# ls /tmp/file10
/tmp/file10
[root@servera opt]# cp /etc/man_db.conf .
[root@servera opt]# ls
dir1 dir2 file1 file2 file3 man_db.conf
[root@servera opt]# cp file2 file3 /tmp/
[root@servera opt]# ls /tmp/file*
/tmp/file1 /tmp/file2 /tmp/file5
/tmp/file10 /tmp/file3
[root@servera opt]# cp -r dir1 /tmp/
[root@servera opt]# cp -r dir1 /tmp/di10
[root@servera opt]# cp /home/student/.bashrc /opt/
[root@servera opt]# ll -a
[root@servera opt]# cp -p /home/student/.bashrc ./.bashrc1
[root@servera opt]# ll -a
mv
[root@servera opt]# ls
dir1 dir2 file1 file2 file3 man_db.conf
[root@servera opt]# mv file1 /
[root@servera opt]# ls
dir1 dir2 file2 file3 man_db.conf
[root@servera opt]# mv file2 /file20
[root@servera opt]# ls
dir1 dir2 file3 man_db.conf
[root@servera opt]# mv file3 file30
[root@servera opt]# ls
dir1 dir2 file30 man_db.conf
[root@servera opt]# mv dir1 /
[root@servera opt]# ls
dir2 file30 man_db.conf
[root@servera opt]# mv dir2 dir20
[root@servera opt]# ls
dir20 file30 man_db.conf
8.通配符
通配符
-
*匹配0个或多个任意字符 ? 匹配1个任意字符 [ ] 匹配中括号内一个字符 [ - ] 匹配中括号内连续范围的一个字符 [ ^ ] 取反。匹配非中括号内的字符,表示一定有一个字符,但不是中括号内出现的。【^ab】
-
{a,b}或{a..c} 匹配号中的字符,或连续的字符
[root@servera opt]# rm -rf *
[root@servera opt]# touch {a..c}{1..3}.txt
[root@servera opt]# ls
a1.txt a3.txt b2.txt c1.txt c3.txt
a2.txt b1.txt b3.txt c2.txt
[root@servera opt]# ls *.txt
a1.txt a3.txt b2.txt c1.txt c3.txt
a2.txt b1.txt b3.txt c2.txt
[root@servera opt]# ls a*
a1.txt a2.txt a3.txt
[root@servera opt]# ls a?.txt
a1.txt a2.txt a3.txt
[root@servera opt]# ls ?2*
a2.txt b2.txt c2.txt
[root@servera opt]# ls ?[23]*
a2.txt a3.txt b2.txt b3.txt c2.txt c3.txt
[root@servera opt]# ls ?[^23]*
a1.txt b1.txt c1.txt
[root@servera opt]# ls ?[!23]*
a1.txt b1.txt c1.txt
[root@servera opt]# ls {a1,b1}*
a1.txt b1.txt
[root@servera opt]# ls {a..c}*
a1.txt a3.txt b2.txt c1.txt c3.txt
a2.txt b1.txt b3.txt c2.txt
[root@servera opt]# ls [[:alpha:]]*
a1.txt a3.txt b2.txt c1.txt c3.txt
a2.txt b1.txt b3.txt c2.txt
[root@servera opt]# ls [a-z]*
a1.txt a3.txt b2.txt c1.txt c3.txt
a2.txt b1.txt b3.txt c2.txt
[root@servera opt]# ls [A-Z]*
b1.txt b2.txt b3.txt c1.txt c2.txt c3.txt
将hello world 重定向到 testfile文件中 echo 'hello world' > testfile
cat
cat /etc/passwd
tail
tail /var/log/message ,tail -n -5 /var/log/message
-F (追踪)指定文件不存在时再创建相同名称文件
head
head /var/log/message ,head -5 /var/log/message
less
less /var/log/message
space。q,page up,page down
more
more /var/log/message
space ,q
vim
vim /etc/passwd
THE END