Linux系统的一个重要思想:一切皆文件。
在Linux中,一个普通文件如.txt文本是一个文件,一个压缩包是一个文件,一个设备也是一个文件。
Linux中文件的后缀名并不重要,你可以创建一个无后缀名的文件,或给它一个不相符的后缀名,但是并不影响其正常工作。
touch - change file timestamps,修改文件的时间戳,当文件不存在时,系统为创建此文件,为了方便,通常也用来创建一个文件。
语法:
$ touch [OPTION] FILE
常用用法:
命令 |
说明 |
touch test_file.txt |
创建test_file.txt文件 |
touch 1.txt 2.txt |
创建2个文件 |
cat/less/more/head/tail等命令都是用来查看文件内容的。
命令 |
说明 |
cat aaa.txt |
显示aaa.txt文件内容 |
less aaa.txt |
动态浏览文件,可向前向后随意翻阅。 |
more aaa.txt |
动态浏览文件,显示当前位置百分比,只能向后滚动 |
head aaa.txt |
显示文件开头若干行,默认10行,可通过参数指定要显示的行数,例如显示20行:head -n 20 aaa.txt |
tail aaa.txt |
显示文件末尾若干行,默认10行,可通过参数指定要显示的行数,例如显示20行:tail -n 20 aaa.txt |
复制/移动/删除是几个较常用的命令,操作对象为目录或文件。
cp - copy files and directories,复制文件或目录。
语法:
$ cp [OPTION] SOURCE DEST
SOURCE: 源文件或目录;
DEST: 目标文件或目录;
[OPTION]: 常用选项有-arf
-r: 在复制目录时,将复制该目录下所有的子目录和文件;
-f: 强行复制,直接覆盖已存在的同名文件,不给出提示;
-i: 与-f相反,覆盖同名文件时给出提示,回复y/n确认是否覆盖;
-a: 通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。
常用用法:
命令 |
说明 |
cp aaa.txt test_dir/ |
将文件aaa.txt复制到test_dir目录下 |
cp -r dir0/ test_dir/ |
将目录dir0复制到test_dir目录下,复制目录要用-r选项 |
cp -rf dir0/* test_dir/ |
将dir0下的所有文件复制到test_dir目录下,强制覆盖 |
cp -ri dir0/ test_dir/ |
将目录dir0复制到test_dir目录下,覆盖前提示。 |
cp aaa.txt new.txt |
将文件aaa.txt复制为一个新文件new.txt(不存在,新创建) |
cp dir0/ new_dir -r |
将目录dir0复制为一个新目录new_dir(不存在,新创建) |
注:若目标目录不存在,相当于将源目录复制一份并命名为目标目录;若目标目录存在,相当于将源目录复制到目标目录下。
mv - move (rename) files,将文件/目录移动到某位置,或将文件/目录重命名。
语法:
$ mv [OPTION] SOURCE DEST
SOURCE: 源文件或目录;
DEST: 目标文件或目录;
[OPTION]: 该命令选项不常用,多直接不带选项使用。
常用用法:
命令 |
说明 |
mv aaa.txt dir0/ |
将文件aaa.txt移动到dir0目录下 |
mv aaa.txt new_aaa.txt |
将文件aaa.txt重命名为new_aaa.txt |
mv dir0/ test_dir/ |
将目录dir0移动test_dir目录下 |
mv dir0/ new_dir |
将目录dir0重命名为new_dir(目录不存在) |
注:若目标目录不存在,相当于将源目录重命名为目标目录;若目标目录存在,相当于将源目录移到目标目录下。
rm - remove files or directories,删除文件或目录。
语法:
$ rm [OPTION] [FILE]
FILE: 要删除的文件或目录
OPTION: 常用的选项有:-rf
-f: 强制删除,不询问;
-r: 用于删除目录,递归删除子目录及文件。
常用用法:
命令 |
说明 |
rm aaa.txt |
删除文件aaa.txt |
rm -r dir0/ |
删除目录dir0 |
rm -rf dir0/* |
强制目录dir0下的所有文件,dir0将变为一个空目录 |
注:rm -rf 删除系统相关文件是个危险操作,请在确保安全的情况下使用
温馨提示:文件编辑请看vi/vim编辑器章节(鉴于命令的复杂度,故将此章节延后)。
首先,要弄清两个概念:打包(归档)和压缩。
打包是指将一大堆文件或目录什么的变成一个总的文件,
压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
gzip是压缩命令。
gzip - compress or expand files,压缩和解压文件,文件经压缩后会变成后缀为”.gz”的文件。
语法:
$ gzip [OPTION] FILE
FILE: 要压缩的文件;
OPTION: 常用的选项有:-dvl
-d: 解压;
-v: 显示指令执行过程
-l: 列出压缩文件的相关信息
常用用法:
命令 |
说明 |
gzip aaa.txt |
压缩aaa.txt文件,压缩后为aaa.txt.gz |
gzip -dv aaa.txt.gz |
解压aaa.txt.gz,解压出来恢复为aaa.txt |
gzip -l aaa.txt.gz |
列出aaa.txt.gz压缩文件的压缩信息 |
注:gzip是linux中的一种压缩方式,主要压缩方式有以下:
gzip:压缩速度快,应用广泛的压缩方式;
bzip: 压缩形成的文件小,但是可用性不如gzip;
xz: 是新的压缩方式,可以自动提供较佳的压缩率;
tar - an archiving utility,一个归档/备份工具。
tar本身是打包/备份/归档的命令,但它可以调用压缩命令,可以实现将一堆文件打包后再进行压缩。tar可以调用gzip方法。
语法:
归档备份:
$ tar [OPTION] ARCHIVE FILE
还原:
$ tar [OPTION] ARCHIVE [OPTION] PATH
ARCHIVE: 归档文件
FILE: 要归档的文件
PATH: 指定还原的路径
OPTION: 常用的选项有:-cvfzxC
-c: 创建新的备份文件;
-x: 从备份文件中还原文件,解压;
-v: 显示命令执行过程;
-f: 指定备份文件;
-C: 指定目标文件;
-z: 通过gzip指令处理备份文件;
-j: 通过bzip2指令处理备份文件;
tar归档备份文件(.tar格式文件):
命令 |
说明 |
tar -cvf dir0.tar ./dir0 |
将dir0目录归档备份为新的文件dir0.tar |
tar -xvf dir0.tar |
将dir0.tar解包还原到当前目录 |
tar -xvf dir0.tar -C test_dir/ |
将dir0.tar解包还原到指定目录test_dir中 |
与gzip结合先打包归档再压缩(.tar.gz格式文件):
命令 |
说明 |
tar -zcvf dir0.tar.gz dir0/ |
将dir0目录归档并压缩为新的文件dir0.tar.gz |
tar -zxvf dir0.tar.gz |
将dir0.tar.gz解压解包还原到当前目录 |
tar -zxvf dir0.tar.gz -C /home/zengzr/ |
将dir0.tar.gz解压解包还原到/home/zengzr/ |
与bzip2先打包归档再压缩(.tar.bz2格式文件):
命令 |
说明 |
tar -jcvf dir0.tar.bz2 dir0/ |
将dir0目录归档并压缩为新的文件dir0.tar.bz2 |
tar -jxvf dir0.tar.bz2 |
将dir0.tar.gz解压解包还原到当前目录 |
tar -jxvf dir0.tar.bz2 -C test_dir/ |
将dir0.tar解压解包还原到目录test_dir中 |
注:
当tar命令不加选项-z或-j时,归档备份是不会压缩的,因此产生的备份文件较大;
当加上选项-z或-j时,会先归档再压缩成gzip或bzip格式,因此产生的备份文件较小。