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