前置知识 -- 通配符
绝对路径 -- 文件或目录的真实路径。Linux从根(/)开始书写。
相对路径 -- 相对于当前所在目录的路径。
路径的特殊符号:
. #一个点,表示当前目录
.. #两个点,表示上一层目录
- #短横线,表示上一次使用的目录。比如,从/tmp目录切换到/opt目录,那么'-'表示的是/tmp
~ #波浪线,表示账号的家目录
shell通配符:
* #匹配所有的字符串。在文件和目录的操作中,常用于匹配含义特定字符串的文件或者目录。
比如, ls *.log列出有以.log结尾的文件。
目录操作
对目录的操作一般包含切换目录、获取当前目录的路径、创建\删除目录、查询目录内容等。
cd dir_path #切换目录。可以使用绝对和相对路径
pwd #获取当前目录的绝对路径
mkdir dir_name #创建目录。参数-p,递归创建多个目录。
rmdir dir_name #删除空目录。
ls #列出当前目录的所有文件和子目录。参数-a,列出隐藏文件和目录;参数-l,列出详细信息。
文件操作
对文件的操作一般包含创建文件、删除文件、查看文件、编辑文件等。
touch file_name #创建一个新的空文件
cp source_file targe_fir #将文件复制到新的路径。默认不能复制目录,需要参数-r或-R,递归复制整个目录。
mv source_file targe_fir #将文件剪切到新的路径。
scp,基于cp的安全拷贝命令,可实现跨主机的复制。
scp test.file root@192.168.1.2:/tmp/ #将本机的test.file文件拷贝至192.168.1.2的/tmp目录下,使用root账号。
scp root@192.168.1.2:/tmp/test.file /tmp #将192.168.1.2的/tmp/test.file文件,拷贝至当前Linux的/tmp目录下。
查看文件的操作
cat #查看文件的全部内容。
head #查看文件的前10行。参数-n,指定行数。
tail #查看文件的最后10行。参数-n,指定行数;参数-f,实时监控文件的内容变化。
more\less #按页显示文件内容。可使用pageup和pagedown进行翻页;"/"进行搜索字符串,使用n\N向上向下搜索
文件或目录的删除操作
rm file_name\dir_name #删除文件或目录。当需要删除目录时,需要使用参数-r,用于递归删除目录下的子目录和文件。参数-f,强制删除,不询问。
Tips:删除目录时,一般使用rm -rf dir_name。需要注意的是,Linux很难找回删除的数据,所有使用删除命令时,一定要特别注意。
文件的时间属性
Linux下的文件有3个属性:
atime #access time,上次访问该文件的时间
mtime #modify time,文件的修改时间
ctime #change time,文件的inode修改时间,即文件元数据修改时间
- atime只有在文件被打开访问时才会改变;
- mtime,对文件而言,只有修改文件内容才会改变mtime;对目录而言,创建、删除目录下文件以及目录内任意文件的操作,都会改变。
- ctime,对文件而言,只有修改了元数据(即inode)才会改变,比如修改文件内容、重命名、修改文件所有者、移动文件等;对目录而言,除了mtime引起ctime改变之外,单独修改目录的元数据也会改变ctime。
- 总结,atime,只有文件被打开访问时才会改变。如果不是打开编辑文件,那么mtime和ctime的改变不一定会引起atime的变化;mtime的改变一定会引起ctime的改变。