【Linux】Linux下基本指令:man echo cp mv move less date grep zip tar 指令以及指令的本质
一、*通配符
ls * : 可以匹配任意一个名称的文件

ls *.c : 匹配点c后缀的文件

ls test.* :匹配以test.开头的文件

二、man 指令
一个指令使用手册<manual > ,可以查看其他指令对应的说明
- -k 根据关键字搜索联机帮助
- num 只在第num章节查找
- -a 将所有章节的都显⽰出来,⽐如 man printf 它缺省从第⼀章开始搜索,知道就停⽌,⽤a选项,当按下q退出,他会继续往后⾯搜索,直到所有章节都搜索完毕
![]()

如果这样呢 :
![]()

- 是普通的命令
- 是系统调⽤,如open,write之类的(通过这个,⾄少可以很⽅便的查到调⽤这个函数,需要加什么头⽂件)
- 是库函数,如printf,fread4是特殊⽂件,也就是/dev下的各种设备⽂件
- 略
- 是指⽂件的格式,⽐如passwd, 就会说明这个⽂件中各个字段的含义
- 是给游戏留的,由各个游戏⾃⼰定义
- 是附件还有⼀些变量,⽐如像environ这种全局变量在这⾥就有说明
- 是系统管理⽤的命令,这些命令只能由root使⽤,如ifconfig
man 默认从手册1中查到指令,如果找不到就去2中找以次按顺序找,如果找不到

三、echo指令
echo "hello Linux" :原封不动的打印

他这里不像C++里面字符串要加分号“ ” 一样, 只要是跟着在他后面的都能打印到屏幕上

这里的 > :
叫输出重定向,本来应该写在显示器上的内容 ,写到文件中
把原本应该写在显示器文件中的写到了普通磁盘文件中,他这种写法是覆盖的写入
第一步是清空文件
第二步是写入新内容
所以如果我们有一个文件存在,不写入新内容 ,他就会清空文件

这样 log.txt就什么都没有了
那怎样在保留原有基础上不清空原有文件,然后再写入新内容呢
>> : 追加重定项

注意到这里每次都是换行了,那如果我们不想换行呢?
用 printf 指令 ,这里的printf是指令,和c++的printf没有一点关系,注意这里要想打印字符串就要加分号了,要不然他遇到空格就会停止打印

无论是输出重定向还是追加重定项,如果写的目标文件不存在,就会重新创建一个文件
这就不一定非得写touch

那如果我只写一个cat呢?cat也是打印

输入一个 ,打印一个 ,(写到显示器文件中),只写cat就默认从键盘中读,因为键盘也是文件
按 ^c 可以停止
< : 输入重定向
本来应该从键盘文件中读,现在不用从键盘文件中读,而从指定文件中读取,这叫做输入重定向

当然不写这个 输入重定向效果是一样的
四、more 指令
功能类似于cat , cat不适合看大文本。如果我想看文本的最后几行,要一直往下翻,成本太高,cat更适合看小文本而,而more更适合看大文本。他会把一个屏幕占满后,停止输入打印。如果要来继续,可以按回车想要退出,可以按关键是他能带选项,可以显示到你想要看的第几行就停下

test.txt 已经放进去了很多值
他能带选项,可以显示到你想要看的第几行就停下


但缺点就是不能往上,more 只能显示更多,所以这里还有另一个指令 less
五、less 指令
那是相比于在保留more 的基础功能上,可以向上翻,还可以向下翻,由上下键来决定



既可以向上看,还可以向下看
六、head 指令
head test.txt : 默认把我们给的文本提取出前十行

可以带选项,带数字几就提取出前几行来,从头提出3行 :

七、tail 指令
tail test.txt 提取test.txt 文本的倒数几行,和head 相反
也可以带选项

但是如果我们想看一个文本中间的内容呢,可以利用管道文件
: head -1000 test.txt | tail -10

他把hand处理过的数据放到管道中,管道是属于内存级的,再把管道中的数据给tail
管道可以支持流水线工作,把数据一道道的加工
八、date 显示
指定格式显示时间: date +%Y:%m:%d


在显⽰⽅⾯,使⽤者可以设定欲显⽰的格式,格式设定为⼀个加号后接数个标记,其中常⽤的标记
列表如下
• %H : ⼩时(00..23)
• %M : 分钟(00..59)
• %S : 秒(00..61
• %X : 相当于 %H:%M:%S
• %d : ⽇ (01..31)
• %m : ⽉份 (01..12)
• %Y : 完整年份 (0000..9999)
• %F : 相当于 %Y-%m-%d
Unix时间戳: 是从1970年1⽉1
⽇(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒
时间->时间戳:date +%s

时间戳->时间:date -d@1234

cal 指令 : 显示日历
- cal 显示当月的日历

- cal -3 显示3个月的日历,即当月,前一月,下一月的日历

- cal 2005 指定显示2005年的12个月份的日历

- cal -j 从1月1日开始进行计算,算出当前天在当年中处于第几天

九、find指令
find 路径 -name 文件名 可以在指定路径下搜索指定文件,注意~是家目录,查找后缀名可以使用*后缀名的方式


whereis 指令 : 在系统特定的路径下去查找,既可以查找到可执行程序,也可以查到手册安装包,压缩包等

which 指令 :查找指令所在的路径

十、grep 指令
行文本过滤器
grep 'Linux' log.txt : 他会打开log.text,以Linux作为关键字进行过滤,一行一行的过滤,如果匹配的话就打印出来

grep -v 'Linux' log.txt : 打印不包含Linux的行

grep -i : 忽略大小写
11、zip / unzip 指令
将目录或文件压缩成zip格式

如果要压缩一个大目录,就要加上-r
zip -r d1.zip d1 log.txt : 把d1这个树状的目录和log.text都压缩成一个d1.zip压缩包
unzip d1.zip : 解压d1.zip
解压文件容易,怎样把文件解压到指定目录下? -d 指明我们要解压的目录
unzip d1.zip -d d2/ : 把d1压缩包解压到d2目录下
12、tar指令
也是打包压缩,只不过他可以通过增加指令,既可以做到压缩,也可以做到解压
- tar czf xxx : 打包压缩
- tar tzf xxx.tgz : 预览压缩的文件
- tar xzf xxx.tgz : 解压
- tar xzf xxx.tgz -C .. : 解压到某一路径下 (这里是解压到上一级路径)
13、bc 指令
bc命令可以很⽅便的进⾏浮点运算

14、uname指令
- uname 可以用来获取linux主机的所使用的操作系统的版本,硬件名称等的相关信息
- uname -a 可以详细输出所有信息
- uname -r 可以查看体系结构


补充
Tab :Tab键可以自动补齐指令,并且会在我们的指令后面加入空格进行分隔
![]()
按Tab :
![]()
ctrl+c键 : 可以将当前运行正常或异常的程序终止退出,终止当前命令行的任务
ctrl+r键 : ctrl+r 可以搜索用户历史输入的指令 ,Linux会记录最新的1000条
ctrl+d键 : ctrl+d 相当于 exit
指令的原理 :指令的本质是编译好的程序和脚本,(放在系统的某一路径下)

以上的shell叫作命令行解释器
命令行解释器 :将使用者的命令翻译给操作系统核心处理,同时将核心处理结果翻译给使用者
存在的意义 :
- 存在的意义进行命令行解释
- 防护操作系统对于用户的非法请求进行拦截
