2.17 mv指令(重要)
mv是move的缩写,可以用来移动文件(剪切)或者将文件改名,是Linux系统下常用的命令,经常用来备份文件或者目录
语法:mv[选项] 源文件或目录 目标文件或目录
功能:
- 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其剪切至一个新的目录中。
- 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
- 当第二个参数是已经存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件移到目标文件中
- 当第二个参数既有目录又有文件名,那就是剪切并重命名。
总结:所有的mv指令都可以看作是剪切,就看第二个参数有没有带新的文件名,带了就会重命名
常用选项:
-f:是force的缩写,强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i:若目标文件已经存在时,就会询问是否覆盖
2.18 时间相关指令
date显示
- date 指定格式显示时间:date +%Y:%m:%d
- date 用法:date [OPTION]... [+FORMAT]
- 1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
%H:小时
%M:分钟
%S:秒
%X:相当于%H:%M:%S
%d:日
%m:月份
%Y:完整年份
%F:相当于%Y-%m-%d
2.在设定时间方面
date -s:设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20080523:设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01:设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″:这样可以设置全部时间
date -s “01:01:01 20080523″:这样可以设置全部时间
date -s “2008-05-23 01:01:01″:这样可以设置全部时间
date -s “20080523 01:01:01″:这样可以设置全部时间
3.时间戳
Unix时间戳是从1970年1月1日开始所经过的秒数,不考虑闰秒。
时间->时间戳:date +%s
时间戳->时间:`date -d@<时间戳>
2.19 cal指令
Cal指令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列日,统称阳历。
命令格式:cal [参数][月份][年份]
功能:用于查看日历等时间信息,如只有一个参数,则表示年份,如有两个参数,则表示月份和年份
常用选项:
-3:显示系统前一个月,当前月,下一个月的月历
-j:显示在当前年中的第几天(一年日期按天算,从1月1日算起,默认显示当前月在一年中的天数)
-y:显示当前年份的日历
示例:
2.20 find指令(非常重要)
Linux下find命令在目录结构中搜索文件,并执行指定的操作
Linux下find命令提供了相当多的查找条件,功能很强大。
即使系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效,只要你有相应的权限
在运行一个非常消耗资源的find命令时,经常把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
普通用户只能在自己的家目录随意查找
语法:find pathname(路径) -options
功能:用于在文件树中查找,并作出相应的处理(可能访问磁盘)
常用选项:
-name:按照文件名查找文件。
示例:
find ~ -name test.c:查找家目录下所有文件名时test.c的文件。
注意:要区分find、which、whereis。其中which是查看一条指令所对应的路径;whereis是在系统特定的路径下进行查找,既可以找到可执行程序,又可以找到手册、安装包、压缩包、C语言头文件、动态库等等。
2.21 grep指令
语法:grep [选项] 搜寻字符串 文件(可以跟多个)
功能:在文件中搜索字符串,将找到的行打印出来(行文本过滤工具)
常用选项:
-i:忽略大小写的不同,所以大小写视为相同
-n:顺便输出行号
-v:反向选择,即显示不包含搜寻字符串的那一行
示例:
grep '999' test.txt:显示出test.txt中包含’999’的所有行。grep -v '999' test.txt :显示出test.txt中不包含’999’的所有行。
cat log.txt | grep ‘word’
:和管道搭配使用,后面就不需要在跟文件名了。
2.22 zip/unzip指令
能被打包压缩的一定是一个整体,由多个文件变成一个文件,不容易造成文件的缺失,打包压缩会让体积变小,下载时间变短,存储占据空间变小。
语法:zip 压缩文件.zip 目录或文件
功能:将目录或文件压缩成zip格式
常用选项:
-r:递归处理,将指定目录下的所有文件和子目录一并处理-d:将压缩包解压到指定目录下。
示例:
zip -r test.zip test2:将test2目录进行压缩。
unzip test2.zip:把压缩包test2解压。
zip -r d1.zip d1 log.txt:把d1目录和log.txt普通文件,一同打包压缩,得到一个d1.zip的压缩包。
unzip d1.zip -d test:把d1.zip这个压缩包解压到test目录下。
2.23 tar指令(重要)
语法:tar [选项] 文件与目录(可多个)
常用选项:
-c:建立一个压缩文件的参数指令(creat的意思)
-x:解开一个压缩文件的参数指令
-t:查看tarfile里面的文件
-z:是否同时具有gzip的属性?即是否需要用gzip压缩
-j:是否同时具有 bzip2 的属性?即是否需要用 bzip2 压缩?
-v:压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f:使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C:解压到指定目录
示例:
tar -czf test.tgz d1 log.txt:把d1目录和log.txt文件压缩得到一个test.tgz的压缩包。
tar -tzf test.tgz:不解压,直接查看test.tgz压缩包里面的内容。
tar -xzf test.tgz:把test.tgz进行解压。
tar -xzf test.tgz -C ../:把test.tgz解压到上级目录。
test.tgz的全称是:test.tar.gz。其中tar表示打包后缀,gz表示压缩后缀。
2.24 bc指令
Linux下的计算器。
示例:
echo '1+2+3+4+5' | bc:配合管道使用,把1+2+3+4+5的结果显示到屏幕上
2.25 与系统相关的指令
- uname指令
语法:uname [选项]
功能:uname用来获取电脑和操作系统的相关信息
补充说明:uname可显示Linux主机所用的操作系统的版本、硬件的名称等基本信息。
常用选项:
- -a,-all:详细输出所有信息,依次为内核名称、主机名、内核版本号、内核版本、硬件名、处理器类型,硬件平台类型,操作系统名称
free指令:查系统内存
df -h:查磁盘
lscpu:查看cpu
lsmem:查看内存
三、几个重要的热键
- [Tab]按键:具有命令补全和档案补齐的功能
- [Ctrl]-c按键:让当前的程序停掉
- [Ctrl]-d按键:通常代表键盘输入结束的意思;此外它也可以用来取代exit
- [Ctrl]-r按键:历史命令搜索(也可以用history命令进行搜索)
四、深入理解指令
4.1 什么是指令
指令本质上就是可执行程序,他存放在系统的特定路径下面,一般在/usr/bin/路径下。可以用which指令去查看一条指令所对应的路径。alias可以对指令取别名。
4.2 指令的运行原理
什么是bash命令行?
用户名:wcy
主机名:@VM-0-14-centos
当前目录:lesson4
命令行提示符:$
以上四部分共同组成了bash命令行,一个bash命令行就对应一个进程。
我们输入的所有指令,最终都要在OS内(也叫操作系统或者核心)运行,但是OS使用的难度比较高。我们用户不能直接和OS打交道。此时我们(用户)就需要图形化界面或命令行解释器来帮我们与操作系统打交道。
命令行解释器存在的意义就是:
- 将使用者的命令翻译给核心(kernel)处理。
- 将核心的处理结果翻译给使用者。
- 保护OS,对于用户的非法请求,直接拦截。
在Linux环境下命令行解释器通常也被叫做命令行、shell(总称)、bash和sh是不同种类的具体的解释器。在Windows环境下命令行解释器被叫做图形化界面。
今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是春人前进的动力!