风住尘香花已尽
日晚倦梳头
重命名、剪切指令 -- mv
简介:
mv 命令是 move 的缩写,可以用来移动文件或者将文件改名,是 Linux 系统下常用的命令,经常用来备份文件或者目录
语法:
mv [选项] 源文件或目录 目标文件或目录 --->重命名 mv [选项] 文件 路径 --->剪切
常用选项:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖 -i :若目标文件已经存在时,就会询问是否覆盖
(重命名)测试:
如图所示:我们在该目录下创建了一个 mack.txt 文件利用 mv 命令改成了 tank.txt
(剪切)测试
如图所示:我们将文件 tank.txt 剪切到上级目录中
查看目标文件的内容指令 -- cat
简介:
查看目标文件的内容
语法:
cat [选项][文件]
常用选项:
-b 对非空内容输出编号 -n 对输出所有行进行编号 -s 不输入多行空格
查看目标文件的内容
我们创建了一个 mack.txt 文件,然后进行文本编写,cat 一下就可以看到编写的内容了
扩展:echo(向显示器文件进行写入)
Linux下一切皆文件,键盘、显示器等等皆以文件来看待
printf、cout 我们向显示器进行打印 -- 向显示器文件进行写入
scanf、cin 键盘读取数据 -- 从键盘文件中读取数据
如果我不想看到 hello linux 怎么办,在用 vim 进行编写(打开+保存退出)太麻烦了!
我们可以用 echo 将显示器中打印的内容写入文件中
echo "文件内容" >目标文件 -- >符号表示输入重定向(本来要写入显示器的内容写入到文件)
注意:
【如果文件不存在,就创建它】
【每次写入,都要从头写入,并且要将原内容清空,然后在写入】
那么我们想继续写不想让原内容清空该怎么办呢?
-- 我们可以使用 >> 两个大于号表示 追加
【echo有自动换行的功能】
cat -b [文件名]
首先我们在 mack.txt 中写入了以上内容
所以 cat -b 是对非空内容输出编号
cat -n [文件名]
所以 cat -n 是对所有内容进行编号
cat -s [文件名]
所以 cat -s 是即使有多个空行最后只会输出一个
扩展 tac(逆序打印文件)
我们知道 cat 是按正序打印编写内容,而 tac则是逆序打印编写内容
选项与 cat 对应
cat 的局限性
cat 适合小文件对于大文件要查找相关的内容会很不方便 ~ 因为会刷屏
全屏方式分页显示文件内容指令 -- more
简介:
全屏方式分页显示文件内容,可以往下翻动但是不能回退
语法:
more [选项][文件]
常用选项:
-n 对输出的所有行编号 -q 退出
cnt=1; while [ $cnt -le 1000 ]; do echo "hello $cnt"; let cnt++; done > log.txt
我们先用脚本语言制造从 1 到 1000 的文件写入 log.txt 中
我们先用 cat 查看一下
我们可以看到 cat 在查看我们大型文件的时候刷屏了,这样就很不好 ~
试试我们的 more
more 在命令行只会显示在分屏中显示过的内容
我们按 回撤键 表示往下翻页,但是不能往上翻
我们按 q键 表示退出
查看文件内容的最佳指令 -- less
简介:
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看。但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容! 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法:
less [选项/参数] 文件
常用选项:
指令: -i 忽略搜索时的大小写 -N 显示每行的行号 参数: /: 字符串:向下搜索“字符串”的功能 ?: 字符串:向上搜索“字符串”的功能 n:重复前一个搜索(与 / 或 ? 有关) N:反向重复前一个搜索(与 / 或 ? 有关) q: q退出
首先我们可以了解到 less 浏览的内容并不会在命令行打印
其次 less 不仅可以下翻还可以回退
与参数搭配还能在分屏中快速查找自己想到的结果(/)
我们来试试 less -i
less 可以在搜索时忽略大小写
查看文件开头与结尾的内容 -- head --tail
简介:
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
语法:
head [选项/参数] 文件 tail [选项/参数] 文件
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头 10 行,tail 也是默认打印其相应文件的末尾 10 行
常用选项:
-n<行数> 显示行数
head 默认是查看文件的前 10 个,tail 默认是查看文件的后 10 个
head、tail + n(显示行数)就是显示前、后的多少行
这都是取开头和结尾,那么如何取到中间的数据呢?
head、tail还可以搭配使用
格式
head <开始行数> [文件] | tail <行数>
这就用打了管道,中间的 " | " 符号就是管道,head 确定了管道的底部,而 tail 不正是显示末尾的 n 行吗,tail 就决定了管道的高度,等于从 head 开始的前 n 行
时间相关的指令 -- data
简介:
date 指定格式显示时间,例如:date +%Y:%m:%d
在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
%H : 小时 %M : 分钟 %S : 秒 %X : 相当于 %H:%M:%S %d : 日 %m : 月份 %Y : 完整年份 %F : 相当于 %Y-%m-%d
在设定时间方面:
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″ //这样可以设置全部时间
时间戳:
是从1970年1月1日(UTC/GMT的 午夜)开始所经过的秒数,不考虑闰秒。简单来讲:时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间
就是一个时间记录,对数据产生的时间进行一个唯一认证,不可更改
当前时间转化为时间戳:时间->时间戳:date +%s 当前时间戳转化为时间:时间戳->时间:date -d@当前时间戳
data 加一些选项便可以显示当前时间!!!
显示当前时间戳
显示时间戳上的时间
时间戳:我们开发的时候一般都是要写开发日志的,而开发日志都要写上时间戳,以便将来查找文件
查找日历指令 -- cal
简介:
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。
语法:
cal [参数][月份][年份]
常用选项:
-3 显示系统前一个月,当前月,下一个月的月历 -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数) -y 显示当前年份的日历
显示当前年份的日历
显示当前年份的第几天,比如以上的黑框框表示今天是当前年份的第 132 天
查找文件所在位置 -- find
简介:
用于在文件树中按照文件名深度优先、广度优先的匹配查找对应文件,并作出相应的处理(可能访问磁盘)
语法:
find [当前查找的路径] -选项 [文件名]
常用选项:
-name 按照文件名查找文件
以上我们就找到了 tank.c 文件所在的位置
那么我觉得一次查一个文件太麻烦,能不能同时查多个文件呢
这个时候就要用到我们的 -o 命令,表示 或者
find [查找路径] -name [文件名] -o -name [文件名]
扩展一:which -- 查找指令文件存放的位置
作用:which 用来在我们的 liunx 搜索指定指令存储位置
这些都是我们在linux中所用到的指令 ~
所以指令到底是什么???
指令就是一个可执行程序,就是一个文件
就相当于你之前写过的 C 代码原本程序后缀是 .c 通过编译链接生成了 .exe 的可执行文件,这个 .exe 就像我们的 linux 指令一样只要我们输入系统就会给出对应的操作
就如我这样带路径的使用也是可以的 ~ 只是 linux 帮我们简化了
还有不理解的可以看看我接下来的操作:
我先在当前路径下创建了一个 mack.cpp 文件
这个时候我们就有了一个 mack 的可执行文件(绿色)
如果我们在命令行直接输入 mack 是运行不了的,加上路径之后才可以
但是当我做一件事情,将 mack 拷贝到 bin 目录
以后我们想直接执行我们的命令,这样就可以直接运行了
卸载可执行程序
所以老铁们现在知道我们运行可执行文件为什么要带 ./ 了吗
如果你不带 ./ 系统就会默认在 bin 去找,就找不到指定的文件了
扩展二:alias -- 给指令取别名
在以上我们发现有 alias 这个东西 ~ 什么意思呢?
我们先来看:
我们还是用刚刚的代码生成可执行文件 ~
我们发现 系统简化过的ls 下是有颜色的,而路径下的 ls 是不带色的
这两种有什么不同呢?
因为我们之前用的 ls 是一种别名!!!
别急我们来看:
我们利用 alias 将 ls -al 取了别名 tank
这个时候我们输入 tank 就等于输入了 ls -al
为什么用取别名的命令可执行文件会带颜色呢?
因为我们别名默认带了--color=auto
而我们只要这样
就可以带颜色啦 ~
回顾 -- 我们之前说到过的 ll 指令就是 ls -l 指令的简化,其实没什么难的就是取别名
注意:系统别名是系统开机时赋予的,我们写的别名是内存级别,在系统关闭时就会被删除
搜寻字符串指令 -- grep
简介:
在文件中搜索字符串,将找到的行打印出来
语法:
grep [选项] 搜寻字符串 文件
常用选项:
-i :忽略大小写的不同,所以大小写视为相同 -n :顺便输出行号 -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
我们在 log.txt 中查找带有 '9' 的字符串过滤出来
grep -i 忽略大小写的查找
grep -v 将不是目标字符串的过滤出来
压缩文件、解压文件 -- zip、unzip
简介:
zip命令的功能是用于压缩文件,解压命令为unzip。通过zip命令可以将文件打包成 .zip 格式的压缩包,里面会包含文件的名称、路径、创建时间、上次修改时间等等信息
为什么要打包压缩?
减少网络传输的数据量,将多个文件合并成一个,方便网络传输!!!
语法:
语法: zip 压缩文件.zip 目录或文件 语法: unzip 压缩文件.zip 解压目录
常见选项:
-r 递归处理,将指定目录下的所有文件和子目录一并处理
安装 zip 的命令:
yum install -y unzip yum install -y zip
我们现在 dir3 目录下创建一个压缩包并剪切到上级目录 ~ 这个过程相当于下载
我们在解压的时候发现:我们解压的目录是空的,这是为什么呢?
因为我们在打包一个目录的时候要知道目录是一颗树要递归打包,而一个文件则是直接打包(这里就不展示了)
这下打包压缩之后再解压就已经完成啦 !!!
先介绍到这里啦~
有不对的地方请指出💞