绝对路径和相对路径
绝对路径:路径的写法一定由根目录/写起;
[root@CentOS6 ~]#cat /data/dir1/dir2/test.txt
hello world!
相对路径:路径的写法不是由/写起。相对路径意指相对于当前工作目录的路径;
[root@CentOS6 dir1]#cat dir2/test.txt
hello world!
相对路径的用途:方便切换路径等;
绝对路径的用途:对于文件名的正确性来说,绝对路径的正确度要比较好。
目录相关命令
特殊目录:
. :代表此层目录
.. :代表上一层目录
- :代表前一个工作目录
~ :代表“目前用户身份”所在的主文件夹
~[用户]:代表account这个用户的主文件夹(account是个账户名称)
所有目录下面都会存在的两个目录,分别是“.”与“..”,分别代表此层与上层目录的意思。根目录中的上一层目录与根目录自己是同一个目录。
常用命令:
cp命令主要用于复制文件或目录。
语法:cp [选项] 文件 [文件]
[root@contos7 ~]#cp -a /etc/profile.d/env.sh /data
[root@contos7 ~]#ls /data
env.sh
cp命令在CentOS中被默认设置为“cp -i”的别名,以避免误操作的发生。
选项:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
file命令用于辨识文件类型。
语法:file [选项] [文件]
[root@contos7 ~]#file /data/env.sh
/data/env.sh: ASCII text
选项:
-b:列出辨识结果时,不显示文件名称。
-c:详细显示指令执行过程,便于排错或分析程序执行的情形。
-f[名称文件]:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格 式为每列一个文件名称。
-L:直接显示符号连接所指向的文件的类别。
id命令用于显示用户的ID,以及所属群组的ID。
语法:id [选项] [用户]
[root@contos7 ~]#id jiangbowen
uid=1000(jiangbowen) gid=1000(jiangbowen) groups=1000(jiangbowen)
选项:
-g或--group 显示用户所属群组的ID。
-G或--groups 显示用户所属附加群组的ID。
-n或--name 显示用户,所属群组或附加群组的名称。
-r或--real 显示实际ID。
-u或--user 显示用户ID。
ln命令的功能是为某一个文件在另外一个位置建立一个同步的链接。
语法:ln [选项] [源文件] [目标文件]
[root@CentOS6 data]#ln Zero.txt /data/Zero.hard
[root@CentOS6 data]#ln -s Zero.txt /data/Zero.soft
[root@CentOS6 data]#ll /data
total 61440
-rw-r--r--. 2 root root 31457280 Mar 31 13:53 Zero.hard
lrwxrwxrwx. 1 root root 8 Mar 31 13:55 Zero.soft -> Zero.txt
-rw-r--r--. 2 root root 31457280 Mar 31 13:53 Zero.txt
选项:
-b:删除,覆盖以前建立的链接
-d:允许超级用户制作目录的硬链接
-f:强制执行
-i:交互模式,文件存在则提示用户是否覆盖
-n:把符号链接视为一般目录
-s:软链接(符号链接)
-v:显示详细的处理过程
lsblk命令用于列出所有可用快设备信息,但不会列出RAM信息。
[root@contos7 ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 50G 0 part /
├─sda3 8:3 0 2G 0 part [SWAP]
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 30G 0 part /data
sr0 11:0 1 1024M 0 rom
NAME : 块设备名。
MAJ:MIN : 主要和次要设备号。
RM : 设备是否可移动设,0是不可移动设备,1是可移动设备。
SIZE : 设备的容量大小信息。
RO : 设备是否为只读,0只读,1。
TYPE :块设备是否是磁盘或磁盘上的一个分区。
MOUNTPOINT : 本栏指出设备挂载的挂载点。
lsof(list open files)是一个列出当前系统打开文件的工具。
COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE:文件类型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
mv命令用来为文件或目录改名、或将文件或目录移入其它位置。
语法:mv [选项] 源文件 目标文件
[root@contos7 ~]#mv /etc/hosts /data
[root@contos7 ~]#ls /data/
env.sh file1 file1.link hosts
mkdir命令用于建立名称为 dirName 之子目录。
[root@CentOS6 data]#mkdir -p dir1/dir2/dir3
[root@CentOS6 data]#tree
.
└── dir1
└── dir2
└── dir3
3 directories, 0 files
语法:mkdir [-p] 文件
passwd命令用来更改使用者的密码。
语法:passwd [选项] [用户]
[root@contos7 ~]#passwd -d jiangbowen
Removing password for user jiangbowen.
passwd: Success
-d:删除密码
-f:强制执行
-k:更新只能发送在过期之后
-l:停止账号使用
-S:显示密码信息
-u:启用已被停止的账户
-x:设置密码的有效期
-g:修改群组密码
-i:过期后停止用户账号
rename命令用于批量修改文件名。
语法:rename [选项] 原表达式 替换表达式 文件
[root@CentOS6 data]#ls
file0.txt file12.txt file15.txt file18.txt file20.txt file4.txt file7.txt
file10.txt file13.txt file16.txt file19.txt file2.txt file5.txt file8.txt
file11.txt file14.txt file17.txt file1.txt file3.txt file6.txt file9.txt
[root@CentOS6 data]#rename ".txt" ".conf" file*.txt
[root@CentOS6 data]#ls
file0.conf file13.conf file17.conf file20.conf file5.conf file9.conf
file10.conf file14.conf file18.conf file2.conf file6.conf
file11.conf file15.conf file19.conf file3.conf file7.conf
file12.conf file16.conf file1.conf file4.conf file8.conf
rm命令用于删除一个文件或者目录。
语法:rm [选项] 文件
[root@CentOS6 data]#ls
file0.conf file13.conf file17.conf file20.conf file5.conf file9.conf
file10.conf file14.conf file18.conf file2.conf file6.conf
file11.conf file15.conf file19.conf file3.conf file7.conf
file12.conf file16.conf file1.conf file4.conf file8.conf
[root@CentOS6 data]#rm -f file*.conf
[root@CentOS6 data]#ls
[root@CentOS6 data]#
选项:
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
rmdir命令删除空的目录。
语法:rmdir [-p] 文件夹
[root@CentOS6 data]#tree
.
└── dir1
└── dir2
└── dir3
3 directories, 0 files
[root@CentOS6 data]#rmdir -p dir1/dir2/dir3/
[root@CentOS6 data]#ls
[root@CentOS6 data]#
readlink命令用于打印链接文件的源文件。
语法:readlink 链接文件
[root@contos7 ~]#readlink /data/file1.link
/data/makedir/file1
tree命令用于以树状图列出目录的内容。
语法:tree [选项] [目录]
[root@CentOS6 data]#tree
.
└── dir1
└── dir2
└── dir3
3 directories, 0 files
选项:
-a 显示所有文件和目录。
-D 列出文件或目录的更改时间。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
stat命令用于显示inode内容。
语法:stat [选项] 文件
[root@CentOS6 data]#stat /data
File: `/data'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 803h/2051d Inode: 2 Links: 3
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-03-31 17:37:59.341157567 +0800
Modify: 2018-03-31 17:37:54.827153917 +0800
Change: 2018-03-31 17:37:54.827153917 +0800
选项:
-f:不显示文件本身的信息,显示文件所在文件系统的信息
-L:显示符号链接
-t:简洁模式,只显示摘要信息
shred命令用于彻底覆盖后删除文件,以达到销毁数据的作用。
语法:shred [选项] 文件
[root@contos7 ~]#ls /data/
env.sh file1.link hosts makedir
[root@contos7 ~]#shred /data/env.sh
[root@contos7 ~]#ls /data/
env.sh file1.link hosts makedir
选项:
-f:必要时修改权限以使目标可写
-n:N 覆盖N 次,而非使用默认的3 次
--random-source=文件 从指定文件中取出随机字节
-s:N 粉碎数据为指定字节的碎片(可使用K、M 和G 作为单位)
-u:覆盖后截断并删除文件
-v:显示过程信息
-z, --zero 最后一次使用0 进行覆盖以隐藏覆盖动作