目录
11. head和tail命令,查看文件开头或末尾的部分内容
date指令功能:用来显示或设定系统的日期与时间。
如需要以指定的格式显示日期,可以使用“+”开头的字符串指定其格式,
可使用“+”开头的字符串指定其格式,详细如下:
%H:小时(00-23)
%M:分钟(00-59)
%S:秒 (00-60)
%X:集合了 %H:%M:%S
%d:日 (01- 31)
%m: 月份 (01-12)
%y:年份的后两位数字
%Y:显示完整年份
%s:从1970年1月1日00:00:00 UTC 到当前的为止的秒数
以上所述是几个常用查看时间日期的选项
2.显示日历
cal指令:显示当前的当月的日历
cal指令后跟年份显示某年的所有月份的日历
如:
3.常用快捷键【ctrl】【tab】
Ctrl +c 强制终止当前命令
Ctrl + l 清屏,等价clear命令
Ctrl +a 光标移动到行首
Ctrl + e 光标移动到行末
Ctrl + u 快速删除当前光标处之前的所有字符内容
Ctrl + z 把命令放入后台,但是并未终止命令,从后台切换回来:fg
Ctrl + r 在历史命令中搜索 显示历史命令:history
Ctrl + k 快速删除从当前光标处到行尾的所有字符内容
Tab键:可以将输入的不完整命令或文件、目录名自动补齐。
4.创建目录和文件
1)mkdir命令,创建新的目录
-p 嵌套创建,连续创建空目录如:
2)touch 命令
创建空文件
touch /路径/文件名 #当前目录可不跟路径
3)ln命令,创建链接(link)文件
文件系统中的每个文件均有一个索引节点即inode与其相关联。inode包含有关文件的基本信息:其权限、时间戳以及指向存储在该文件中数据的指针。创建新文件时,文件系统中未使用的inode将分配给该文件,并向该文件所在目录添加一个条目,将文件名映射至inode中。
链接分为两种 : 硬链接(hard link)与软链接(symbolic link)。
格式:ln [-s] 源文件或目录… 链接文件或目标目录
常用命令选项: -s:建立符号链接文件(省略此项则建立硬链接)
可以使用ls -il 查看inode、链接数、符号链接引用
硬链接是存在同一个文件系统中,而软链接可以跨越不同的文件系统。
软链接:
1.软链接是以路径的形式存在(指向的是原文件的路径),类似于Windows中的快捷方式
2.软链接可以跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接
5.软连接的文件有自己的inode,跟原文件不一样
6.删除软链接并不影响被指向的原文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。
硬链接:
1.硬链接是以文件副本的形式存在,不占用实际空间
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
4.硬链接的文件的inode跟原文件一样
5.由于硬链接是有着相同 inode 号,仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。
注意:
1、ln命令会保持每一个链接文件的同步性。不论改动了哪一处,其它的文件都会发生相同的变化
2、ln命令创建的链接分软链接和硬链接两种,软链接就是ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,软链接的文件很小,只有几个字节,硬链接是 ln 源文件 目标文件,没有参数-s, 它会在选定的位置上生成一个和源文件大小相同的文件。无论是软链接还是硬链接,文件都保持同步变化
3、ln命令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。
创建软连接
ln -s 源文件或目录 目标目录
5. 目录和文件基本操作
查看及切换目录
1)pwd命令
pwd命令,查看当前的工作目录,是以绝对路径显示的 ,pwd命令其实读取的是$PWD环境变量的值
格式:pwd
echo $PWD 使用变量pwd大写
2)cd命令 切换工作目录
格式:cd /路径/
例:
从当前目录切换到/home目录下
返回至父目录
一个点表示当前目录
cd ../ 返回上一级目录
cd ../../ 返回上两级目录
cd - 自动跳转到进入此目录之前所在的目录,并输出所在目录名称
3)ls命令,显示指定目录内容及目录中隐藏的文件
-a --all:显示所有文件,包括以“.”开头隐藏的文件
-l: 使用长列表格式显示
-d:只显示目录本身的属性,不显示目录中的内容,一般结合-l使用
-h:显示目录或文件大小,需要结合-l结合使用,将会显示KB、MB等单位
-R:以递归的方式显示指定目录及其子目录中的所有内容
6.复制、删除、移动目录
1)cp命令,复制文件或目录
格式: cp 选项 源文件或者目录 目标文件或者目录
-f:覆盖目标同名文件或目录时不进行提醒,而是直接强制复制
-i:覆盖目标同名文件或目录时提醒用户确认
-p:复制时保持源文件的权限,属主及时间标记等属性不变
-r:复制目录时必须使用此选项,表示递归复制所有文件及子目录
2)rm命令,删除文件或目录
-f:删除文件或目录时不进行提醒,而直接强制删除
-i:删除文件或目录时提醒用户确认
-r:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)
对于已经不在使用的数据(文件或者目录)一般结合“-rf”选项直接进行删除而不进行提示
3)rmdir命令,
删除空目录
命令格式:rmdir [选项] 目录
-p 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
-v 显示指令执行过程
注意:该命令的功能是删除空目录,一个目录被删除之前必须是空的。(注意,rm -r dir 命令可以代替rmdir,但是很危险,万一它突然就不是空的呢?),另外删除某目录时必须具有对父目录的写权限。使用 ls -al 命令来检查该目录是否为空。
4)mv命令
移动文件或目录,如果目标位置与源位置相同,则效果相当于为文件或目录改名
实例:把csdn文件移动到/media目录下
5)tree命令
以树形结构显示目录下的内容
7.查找目录和文件
1)find命令
查找文件和目录
语法:find pathname -option [-print ] [ -exec | -ok command ] {} \;
find命令的参数:
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为command { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
1.1查找名称查找文件的基本命令
-name filename //查找名为filename的文件。
-iname filename //与-name相同,查找名为filename的文件,但忽略大小写,即不区分大小写。
-type查找某一类型的文件,如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
s - socket文件
1.使用当前目录中的名称查找文件
2.在指定目录下查找文件
3.使用名称和忽略大小写查找文件
4.使用名称查找目录
5.使用名称查找PHP文件
6.查找目录中的所有PHP文件
7.查找目录并列出目录下的文件(为找到的每一个目录单独执行ls命令,没有选项-print时文件列表前一行不会显示目录名称)
说明:这里要注意{}的使用:替代查找到的文件
8.查找目录并列出目录下的文件(为找到的每一个目录单独执行ls命令,执行命令前需要确认)
1.2根据日期和时间查找文件和目录
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
注:我们可以使用stat命令来查看一个文件的时间信息。
1. 在/root下查找文件更新日是在距现在时刻二天以内的文件
# find /root/ -mtime -2
2. 在/root下查找文件更新日是在距现在时刻二天以上的文件
# find /root/ -mtime +2
3.在/root下查找文件更新日是在距现在时刻一天以上二天以内的文件
# find /root/ -mtime 2
注:-atime、-ctime与-mtime用法类似,可以自行查看man帮助。
4.查找文件更新日时在距现在时刻二分钟以内的文件
#find ./ -mmin -2
5.查找文件更新日时在距现在时刻二分钟以上的文件
#find ./ -mmin +2
6.查找文件更新日时在距现在时刻一分钟以上二分钟以内的文件
#find ./ -mmin 2
注:-amin、cmin与-mmin用法类似,可以自行查看man帮助。
7.查找文件更新时间比文件abc的内容更新时间新的文件
#find ./ -newer abc
1.3根据大小查找文件
-size [+/-]n
按照文件大小查询文件,+n表示文件大小大于n,-n表示文件大小小于n。常用单位:k, M, G
如 :
find /tmp -size 2M //查找在/tmp 目录下等于2M的文件
find /tmp -size +2M //查找在/tmp 目录下大于2M的文件
find /tmp -size -2M //查找在/tmp 目录下小于2M的文件
find /tmp -size +50M -size -100M //找到大于50MB且小于100MB的所有文件。
find / -type f -name “*.mp3” -size +10M -exec rm {} \; //查找超过10MB的所有.mp3文件,并使用一个命令删除它们。
find 命令默认会递归查找整个目录树,而这非常消耗时间和资源。好在目录查找的深度可以手动指定。例如我们只想查找一到两层以内的子目录,可以通过 maxdepth 选项来指定。
find ./test -maxdepth 2 -name "*.php"
find ./test -maxdepth 1 -name "*.php"
第二个示例中指定了maxdepth 为1,表明最多只查找一层内的子目录,也就是只查找当前文件夹。
当我们只想在当前目录下查找,而不是查找整个目录树的时候,这个选项会特别有用。
与maxdepth 选项相似,还有一个选项叫做 mindepth ,正如名字所表示的那样,它会至少到达第 N 层子目录后才开始查找文件。
8.type命令
type命令主要用于区分一个命令到底是shell自带的还是外部独立的二进制文件提供的。如果是shell自带的则会提示此命令为shell buildin,否则会列出命令的位置。
#type cd
# type ssh
9.cat命令
cat命令,显示文件的内容
-n 文件中每一行都会显示行号
2)nl命令
将指定的文件添加行号标注后写到标准输出。如果不指定文件或指定文件为"-" ,程序将从标准输入读取数据
-b :指定行号指定的方式,主要有两种
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n)
10.more和less命令 分页查看文件内容
使用“more”命令查看超过一屏的文件内容时,将进行分屏显示,并在下面的左下角显示当前内容在这个文件中的百分比,在阅读时可以按Enter键向下滚动查看,按Space键可以向下翻一屏,按“q”键退出并返回原来的命令环境,“more”命令只能向下翻页,不能向上翻页
less命令使用方法与more命令基本类似,但是比more更好的是,less命令可以结合管道符“|”分屏查看执行命令时输出的信息时,既可以向下翻页也可以向上翻页。
管道(|):每一个命令都有输入输出,把前一个命令的输出当做第二个命令的输入,一个命令的输入可以从文件中读取,也可以从前一个命令的结果中读
11. head和tail命令,查看文件开头或末尾的部分内容
head命令显示文本开头默认10行 “-n”选项指定需要显示多少行的内容
tail命令默认显示文本末尾10行,此命令一般适用于查看日志文件(因为较新的日志记录总是添加到文件最后),这时候需要配合“-f”选项跟踪文件尾部内容的动态更新,便于实时监控文件内容的变化
12.sort命令,将文件进行排序,并将排序结果标准输出
工作原理:
sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
sort 文件名或路径
sort -u
-u : 唯一,排序并且排除重复项
sort -r
-r : 反向排序
sort -o
-o : 将排序结果输出到源文件
sort默认将结果输出到标准输出,所以需要重定向才可以将结果写入文件,形如 sort filename >newfile
sort -n
-n : 按照数字进行排序,默认数字会被当作字符串进行比较,会出现一下情况
sort -t -k 参数
-t :指定分隔符,默认tab为分隔符
-k: 指定按照哪一个分割区域进行排序
附加小节:
uniq命令,用户去除文件中的重复行,一般与sort命令结合使用。文件经过处理后在它的输出文件中可能会出现重复的行。例如,使用cat命令将两个文件合并后,再使用sort命令进行排序,就可能出现重复行。这时可以使用uniq命令将这些重复行从输出文件中删除,只留下每条记录的唯一样本。
-i: 忽略大小写。
-d:仅显示重复出现的行列;
-u:仅显示出一次的行列;
删除重复行:
# uniq file.txt
# sort file.txt | uniq
# sort -u file.txt
只显示单一行:
# uniq -u file.txt
# sort file.txt | uniq -u
统计各行在文件中出现的次数:
# sort file.txt | uniq -c
在文件中找出重复的行:
# sort file.txt | uniq -d
13. 统计和检索文件内容:
1.wc命令
统计文件内容中的单词数量、行数等信息,使用文件名作为参数,可以同时统计多个文件。
-c:统计文件内容中的字节数
-l:统计文件内容中的行数
-w:统计文件内容中的单词个数(以空格或指标位作为分隔)
统计文件数量结合find命令使用
2.grep命令,检索、过滤文件内容
grep:目的是过滤出指定的输出内容
语法:grep [选项] 模式或关键字 文件列表
--color 带颜色显示匹配到的关键字
-i 忽略大小写
-v 取反
^ 以某关键字开头
$ 以某关键字结尾
^$ 空行
-n 显示匹配行的行号
简单例子:
# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
# grep --color root /etc/passwd
14、备份于恢复文档
1.gzip和gunzip命令
gzip的使用:
使用gzip制作的压缩文件默认的扩展名为“*.gz”,制作压缩文件时,使用“-9”选项可以提高压缩的比率,当需要用gzip命令解压缩时,只需要用带“-d”选择即可,或者直接使用gunzip命令
例:
对当前目录下mkfile文件进行压缩
gunzip的用法
例:解压mkfile压缩文件
2.bzip2和bunzip2命令
bzip2和bunzip命令用法和gzip、gunzip命令用法基本相同,"-9"选项可以提高压缩比率,使用bzip2制作的压缩文件默认的扩展名为“*.bz2”,解压缩时用“-d”选项解压缩,或者直接使用bunzip命令解压缩。
bizp2安装包就是bzip2
例1:对mkfile文件压缩
对mkfile.bz2进行解压
3. zip和unzip命令
-d:从压缩文件内删除指定的文件/把压缩文件解压到指定目录中
-r:递归处理,将指定目录下的所有文件和子目录一并处
-m:把文件移到压缩文件中
-v:查看压缩文件中的内容,但不解压,结合unzip命令使用,unzip-v压缩文件
-x:压缩时排除符合条件的文件
zip安装包和zip同名
4.tar归档和释放命令
tar命令主要用于对目录和文件进行归档。在实际备份工作中,通常在归档的同时也会将包文件进行压缩(需要调用前面的gzip和bzip2命令),以节省磁盘空间。使用tar命令时,选项前的“-”号可以省略,常用的几个选项:
-C:解压时指定释放的目标文件夹
-f:表示使用归档文件
-j:调用bzip2程序进行压缩或解压
-p:打包时保留文件及目录的权限
-P:打包时保留文件及目录的绝对路径
-t:列表查看包内的文件
-v:输出详细信息
-x:解开.tar格式的包文件
-z:调用gzip程序进行压缩或解压
1、制作归档备份文件
tar [选项] 归档及压缩文件名 需要归档的源文件或目录
例:制作“*.tar.bz2”格式的归档压缩包
2、从归档文件中恢复数据
使用xf选项可以解压"*.tar.gz"和"*.tar.bz2"归档文件,-C:解压时指定释放目标文件夹