文件的寻址


绝对路径:
文件在系统的真实位置,文件名字以“/”开头
相对路径:
文件相对与当前所在位置的一个名字的简写,这个名字不会以/开头,而且名字会自动添加pwd显示的值
注:pwd        ##显示当前工作目录##


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////




文件的管理


查看文件与目录:ls


Usage: ls [OPTION]... [FILE]...            ##用法:ls    [参数]    [对象]##


ls命令的参数:

-a:列出全部文件,包括隐藏文件(以.开头的文件);

-A:列出全部文件,包括隐藏文件(以.开头的文件),但不包括.与..这两个目录;

-d:只列出目录本身,目录内的文件数据不列出;

-f:不进行排序,直接列出结果(ls命令默认是以文件名排序的);

-F:根据文件、目录等信息给予附加数据结构,例如:

        *:代表可执行文件;    /:代表目录;    =:代表socket文件;    |:代表FIFO文件;

-h:将文件容量以人类较易读懂的方式(例如:GB、KB等)列出来;

-i:列出inode号码;

-l:列出长数据串,包含文件的属性与权限等数据;

-n:列出UID与GID,而非用户与用户组名称;

-r:将排序结果反向输出,即与原本的排序结果相反;

-R:连同子目录内容一起列出来,即第归显示该目录下的文件;

-S:以文件容量大小排序,列出结果;

-t:以时间排序,列出结果;

--color=never:不依据文件特性给予颜色显示;

--color=always:依据文件特性给予颜色显示;

--color=auto:使系统自行依据设置判断是否给予颜色显示;

--full-time:以完整时间模式(年 月 日 时 分)输出;

--time={atime,ctime}:输出访问时间(atime)或改变属性时间(ctime),而非内容更改时间(modification time)。


常用ls命令示例:

[root@localhost ~]# cd /mnt/    
[root@localhost mnt]# touch file{1..3}    
[root@localhost mnt]# touch .file    
[root@localhost mnt]# mkdir westos    
[root@localhost mnt]# touch westos/file{6..9}    
[root@localhost mnt]# ls    ##列出当前工作目录下的内容##
file1  file2  file3  westos
[root@localhost mnt]# cd westos/
[root@localhost westos]# ls
file6  file7  file8  file9
[root@localhost westos]# cd ..
[root@localhost mnt]# echo hello>file1
[root@localhost mnt]# cat file1
hello
[root@localhost mnt]# ls westos/    ##列出目录/mnt/westos/下的内容##
file6  file7  file8  file9
[root@localhost mnt]# ls file1    
file1
[root@localhost mnt]# ls -l /mnt/    ##列出目录/mnt/下内容的属性##
total 4
-rw-r--r--. 1 root root  6 Feb 26 04:43 file1
-rw-r--r--. 1 root root  0 Feb 26 04:42 file2
-rw-r--r--. 1 root root  0 Feb 26 04:42 file3
drwxr-xr-x. 2 root root 54 Feb 26 01:25 westos
[root@localhost mnt]# ls -d /mnt/    ##列出目录/mnt/本身##
/mnt
[root@localhost mnt]# ls -ld /mnt/    ##列出目录/mnt/本身的属性##
drwxr-xr-x. 3 root root 55 Feb 26 04:42 /mnt
[root@localhost mnt]# ls -R /mnt/    ##第归显示目录/mnt/下的内容##
/mnt/:
file1  file2  file3  westos

/mnt/westos:
file6  file7  file8  file9
[root@localhost mnt]# ls -a    ##列出当前工作目录下的全部内容##
.  ..  .file  file1  file2  file3  westos
[root@localhost mnt]# ls -A    ##同上,但不包括.和..两个目录##
.file  file1  file2  file3  westos


复制:cp


Usage: cp [OPTION]... [-T] SOURCE DEST        
  or:  cp [OPTION]... SOURCE... DIRECTORY            ##用法:cp    [参数]    源文件    目标文件##
  or:  cp [OPTION]... -t DIRECTORY SOURCE...

cp命令的参数:

-a:即-pdr;

-d:若源文件为连接文件的属性(link file),则复制连接文件属性而非文件本身;

-f:即force,若目标文件已经存在且无法开启,则删除后在尝试一次;

-i:若目标文件(destination)已经存在时,在覆盖时会先询问操作的进行;

-l:进行硬连接(hard link)的连接文件创建,而非复制文件本身;

-p:连同文件的属性一起复制,而非使用默认属性,一般用于文件备份

-r:第归持续复制,用于目录的复制行为;

-s:复制成为符号连接文件(aymbolic link),即“快捷方式”文件;

-u:若destination比source旧才会更新destination。


常用cp命令的示例:

[root@localhost mnt]# ls -lR        ##第归显示当前工作目录下的内容##
.:
total 4
-rw-r--r--. 1 root root  6 Feb 27 06:07 file1
-rwxrwxrwx. 1 root root  0 Feb 27 06:06 file2
-rwxrwxrwx. 1 root root  0 Feb 27 06:13 file3
drwxr-xr-x. 2 root root 18 Feb 27 06:11 westos

./westos:
total 0
-rw-r--r--. 1 root root 0 Feb 27 06:11 class
[root@localhost mnt]# cp file1 westos/
[root@localhost mnt]# cp -p file2 westos/        ##连同权限一起复制##
[root@localhost mnt]# cp file3 westos/
[root@localhost mnt]# ls -lR
.:
total 4
-rw-r--r--. 1 root root  6 Feb 27 06:07 file1
-rwxrwxrwx. 1 root root  0 Feb 27 06:06 file2
-rwxrwxrwx. 1 root root  0 Feb 27 06:13 file3
drwxr-xr-x. 2 root root 54 Feb 27 06:18 westos

./westos:
total 4
-rw-r--r--. 1 root root 0 Feb 27 06:11 class
-rw-r--r--. 1 root root 6 Feb 27 06:12 file1
-rwxrwxrwx. 1 root root 0 Feb 27 06:06 file2
-rwxr-xr-x. 1 root root 0 Feb 27 06:18 file3


删除:rm


Usage: rm [OPTION]... FILE...        ##用法:rm    [参数]    对象##


rm命令的参数:

-f:即--force,忽略不存在的文件,且不出现警告信息;

-i:互动模式,删除前会询问用户是否执行该命令;

-r:第归删除,常用于目录删除,该参数较为危险。


常用rm命令示例:

[root@localhost mnt]# ls -R
.:
file1  file2  file3  westos

./westos:
class1  class2  class3
[root@localhost mnt]# rm file{2..5}
rm: remove regular empty file ‘file2’? y
rm: remove regular empty file ‘file3’? y
rm: cannot remove ‘file4’: No such file or directory    ##file4不存在##
rm: cannot remove ‘file5’: No such file or directory
[root@localhost mnt]# ls -R
.:
file1  westos

./westos:
class1  class2  class3
[root@localhost mnt]# rm -f file{1..3}        ##执行rm命令无提示##
[root@localhost mnt]# ls
westos
[root@localhost mnt]# rm westos/
rm: cannot remove ‘westos/’: Is a directory        ##westos/是一个目录##
[root@localhost mnt]# rm -r westos/
rm: descend into directory ‘westos/’? y
rm: remove regular empty file ‘westos/class1’? y
rm: remove regular empty file ‘westos/class2’? y
rm: remove regular empty file ‘westos/class3’? y
rm: remove directory ‘westos/’? y
[root@localhost mnt]# ls -R
.:


移动:mv


mv    file1    file2    dir        ##移动文件file1 file2到目录dir下##
mv    存在的文件    不存在的文件        ##把存在的文件重命名为不存在的文件##

注:相同磁盘的mv是重命名,不同磁盘的mv是复制删除过程


mv命令的参数:

-f:即--force,若目标文件已经存在,则不询问直接覆盖;

-i:若目标文件已经存在,则询问是否覆盖;

-u:若目标文件已经存在,且source(源文件)比较新,才会更新。


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////





文件内容的查阅


cat:由第一行开始显示文件内容;

tac:由最后一行开始显示文件内容;

nl:显示的时候,顺便输出行号;

more:一页一页地显示文件内容;

less:用途与more类似,但是可以往前翻页;

head:只看文件头几行的内容;

tail:只看文件结尾几行的内容;

od:以二进制的方式读取文件的内容。


常用查看文件内容命令的示例

[root@localhost etc]# cat passwd        ##显示文件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
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
ovirtagent:x:175:175:RHEV-M Guest Agent:/usr/share/ovirt-guest-agent:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
student:x:1000:1000:Student User:/home/student:/bin/bash
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
libstoragemgmt:x:996:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
unbound:x:995:993:Unbound DNS resolver:/etc/unbound:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
saslauth:x:994:76:"Saslauthd user":/run/saslauthd:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
[root@localhost etc]# head -n 5 passwd        ##显示文件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@localhost etc]# tail -n 5 passwd        ##显示文件passwd的后五行##
radvd:x:75:75:radvd user:/:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin

注:head命令和tail命令默认情况下显示十行


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////






创建文件和目录


touch
touch    file            ####创建文件####

[root@localhost Desktop]# touch file    ##在当前目录下创建file文件##
[root@localhost Desktop]# touch /mnt/file    ##在/mnt目录下创建file文件##

注:touch还可以修改文件的时间戳


mkdir
mkdir directory        ####在当前工作目录下创建目录#####
mkdir -p directory    ####上级目录不存在自动建立####

[root@localhost Desktop]# ls
[root@localhost Desktop]# mkdir westos
[root@localhost Desktop]# ls
westos
[root@localhost Desktop]# mkdir -p linux/student
[root@localhost Desktop]# ls -R
.:
linux  westos

./linux:
student

./linux/student:

./westos:


补:touch命令修改文件时间戳


用法:touch    [参数]    文件


参数:

-a:仅修改访问时间;

-c:仅修改文件的时间,若该文件不存在则不会创建新的文件;

-d:后面可以接欲修改的日期而不是当前日期;

-m:仅修改mtime;

-t:后面可以接欲修改的时间而不是当前时间,格式为[YYMMDDHHMM]。


三个主要的变动时间:

  • modification time (mtime)-----更改文件内容数据的时间

  • status time (ctime)-----更改文件状态(权限或属性)的时间

  • access time (atime)-----文件内容被读取的时间(例如:使用cat命令查看该文件)