【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退出,他会继续往后⾯搜索,直到所有章节都搜索完毕

如果这样呢 :

  1. 是普通的命令
  2. 是系统调⽤,如open,write之类的(通过这个,⾄少可以很⽅便的查到调⽤这个函数,需要加什么头⽂件)
  3. 是库函数,如printf,fread4是特殊⽂件,也就是/dev下的各种设备⽂件
  4. 是指⽂件的格式,⽐如passwd, 就会说明这个⽂件中各个字段的含义
  5. 是给游戏留的,由各个游戏⾃⼰定义
  6. 是附件还有⼀些变量,⽐如像environ这种全局变量在这⾥就有说明
  7. 是系统管理⽤的命令,这些命令只能由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 指令 : 显示日历

  1. cal 显示当月的日历
  2. cal -3 显示3个月的日历,即当月,前一月,下一月的日历
  3. cal 2005 指定显示2005年的12个月份的日历
  4. 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指令

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

补充

Tab :Tab键可以自动补齐指令,并且会在我们的指令后面加入空格进行分隔

按Tab :

**ctrl+c键 :**可以将当前运行正常或异常的程序终止退出,终止当前命令行的任务

**ctrl+r键 :**ctrl+r 可以搜索用户历史输入的指令 ,Linux会记录最新的1000条

**ctrl+d键 :**ctrl+d 相当于 exit

指令的原理 :指令的本质是编译好的程序和脚本,(放在系统的某一路径下)

以上的shell叫作命令行解释器

命令行解释器 :将使用者的命令翻译给操作系统核心处理,同时将核心处理结果翻译给使用者

存在的意义 :

  1. 存在的意义进行命令行解释
  2. 防护操作系统对于用户的非法请求进行拦截
相关推荐
退役小学生呀5 小时前
二十二、DevOps:基于Tekton的云原生平台落地(三)
linux·云原生·容器·kubernetes·k8s·devops·tekton
君以思为故5 小时前
认识linux -- 编辑器vim以及编译器gcc/g++和Makefile文件
linux·编辑器·vim
王道长服务器 | 亚马逊云5 小时前
AWS + Discuz!:社区站架构的现代化玩法
linux·网络·云计算·智能路由器·aws
lht6319356126 小时前
部署开源漏洞扫描工具SiriusScan及问题解决
linux·安全·开源
国服第二切图仔6 小时前
Rust开发之使用anyhow与thiserror简化错误处理
服务器·数据库·rust
笨蛋少年派6 小时前
*清理磁盘空间
linux·运维·服务器
我搞slam6 小时前
有效的括号--leetcode
linux·算法·leetcode
swsauto6 小时前
Ubuntu系统开机图标变大分辨率降低,找不到其他选项
linux·运维·ubuntu
JavaLearnerZGQ7 小时前
配置Docker镜像源
运维·docker·容器