【Linux】常见指令

大家好,我是苏貝,本篇博客带大家了解Linux的常见指令,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️
在这里插入图片描述


1.ls 指令

语法: ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
在这里插入图片描述
在这里插入图片描述

ll是ls-l的简写
在这里插入图片描述
在这里插入图片描述

这里的一个点 . 和两个点 … 是什么意思呢?
任何目录下,都会默认具有2个隐藏目录 . 和 . .
. :用来表示当前路径
. . :用来表示上级路径

那为什么要有 . 和 …呢?
. . :方便我们进行路径的回退,毕竟,不光要能进去,也要能出来
. : 方便我们找到当前目录下的一个文件(可执行文件)

在Linux和windows中,以.开头的文件是隐藏文件
在这里插入图片描述


2.Pwd命令

语法: pwd
功能:显示用户当前所在的目录
在这里插入图片描述


3.cd 指令

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件
在这里插入图片描述

语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下
在这里插入图片描述

在这里插入图片描述

Cd… :最多回退到根目录 /
Cd ~(波浪号):进入用户的家目录。任何一个用户,首次登陆时,所处的路径都是自己的家目录
如果是管理员身份root,则为/root
在这里插入图片描述

如果是普通用户,则为/home/username(用户名)
我的普通用户为zy
在这里插入图片描述

Cd - :返回最近访问的目录
在这里插入图片描述


4.补充知识:文件+路径

文件:
在这里插入图片描述

文件=文件属性+文件内容
上图的文件属性:
文件名:1.txt + 文件修改日期2020/3/30 … + 文件类型:文本文档 + 文件大小0kb

文件属性是数据吗?是的,所以我们也要保存文件属性

了解了文件的构成后,那么未来对文件的任何操作,无外乎:
(任何操作:用指令控制文件/编程访问文件)
1.对属性的操作
2.对内容的操作

路径:
在这里插入图片描述
在这里插入图片描述

\:windows的路径分隔符
/:Linux的路径分隔符

两个路径分隔符之间,一定是一个“文件夹/目录”,路径最末端,一定是普通文件或者是文件夹
为什么要有路径呢?
路径是系统层面表示一个特定文件,路径必须具有唯一性,任何一个文件都只有一个父目录


5.Whoami指令

功能:查看自己的身份,在表述中,经常说我们在XXX路径下,“我们” -whoami

如果是管理员身份root,则为root
在这里插入图片描述

如果是普通用户,则为username(用户名)
在这里插入图片描述


6.touch指令

语法:touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
在这里插入图片描述

我们暂时只需要知道touch filename能创建filename文件即可
在这里插入图片描述


7.mkdir指令(重要):

语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
在这里插入图片描述

建立一个目录

在这里插入图片描述

建立多个目录

为了查看是否成功建成了a/b/c,可以进入目录a中,发现有b;进入目录b中,发现有c;这就表示多个目录创建成功

在这里插入图片描述

上面这种验证方法当然可以,但我们也有另外一种方法可以验证,tree,tree是以树状形式显示目录结构。
用tree命令的前提是你有tree,如果直接tree a没有报错,那就证明有tree命令;
如果报错,那就需要进行yum -y install tree,下载tree(只有root能下载,普通用户不行)
在这里插入图片描述


8.补充知识2:重新认识指令+which指令+alias指令

1. 重新认识指令

指令本质上都是程序,指令、程序、可执行程序都是一回事
那它们是文件吗?是的
在这里插入图片描述

我们可以查到它们的文件属性

既然说指令就是程序,那么安装和卸载是在做什么呢?
把可执行程序拷贝/删除到系统目录下

2. which指令

which指令要求系统打印出我所指定的指令名称在系统的所在路径
在这里插入图片描述

3. alias指令

alias也是一个Linux指令,用来给其他命令起一个别名
在这里插入图片描述

我们在讲ls指令时有说,ll是ls -l的简写,也就是说ll是ls -l的别名,在这里可以得到证明
在这里插入图片描述


9.rmdir指令 && rm 指令(重要):

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
在这里插入图片描述

rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
在这里插入图片描述

因为rm可以同时删除文件或目录,所以我们更喜欢用rm删除

现在我们想删除目录a,目录a中还有目录b,b中还有目录c
直接rm a,我们发现它报错,说不能删除a,因为a是个目录
难道真的不能删吗?
不是的,只是要在原来rm a的基础上,再加-r,表示递归,先将a目录里的文件全部删除,再删除目录a
在这里插入图片描述

在角色为root时,系统会很谨慎地问你,你真的想要删除吗?如果我们真的要删除,键盘输入y,如果不想删除,键盘输入n
当我们确定要删除时,系统的询问就显得很无用,我们还要输入很多y,那我们有没有什么方法能不让系统询问,直接删除呢?
有的,加-f,f表示强制
(如果是普通用户,系统不会询问)
在这里插入图片描述


10.man指令(重要):

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是 man 语法: man [选项] 命令
在这里插入图片描述

当我们想查看pwd的作用时(按q退出)
在这里插入图片描述

在这里插入图片描述

当我们想知道man有什么作用时,可以man man

往下翻我们可以看见下面的图片,我们只需要知道前3个手册即可,2号手册更是重中之重
在这里插入图片描述

当我们想查C语言中的printf的作用时
在这里插入图片描述

在这里插入图片描述

本来应该显示的是下图,但是实际上出现的是上图,这是为什么呢?因为在1号手册中也有叫printf的命令,而我们的查询是从1号手册开始,如果1号手册中没有,再查2号手册。如果已经查到,就停止并显示查到的信息
在这里插入图片描述

所以为了查询3号手册的printf函数,我们应该在man之后跟3号手册的序号3
在这里插入图片描述


11.cp指令(重要):

语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
在这里插入图片描述

将file1.txt拷贝到本目录,并重命名为file2.txt
在这里插入图片描述

将file1.txt拷贝到上一级目录中
在这里插入图片描述

将file1.txt拷贝到上一级目录中,并重命名为haha

在这里插入图片描述

将目录a/b/c拷贝到上一级目录中
在这里插入图片描述


12.mv指令(重要):

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命 令,经常用来备份文件或者目录。
语法: mv [选项] 源文件或目录 目标文件或目录
功能:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
  2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
    在这里插入图片描述

将file1.txt重命名为file2.txt
在这里插入图片描述

将指定目录下的文件或目录,“剪切”到指定的目录下
在这里插入图片描述

不仅要剪切,还要再剪切的同时重命名
将file1.txt移动到目录222中,并重命名为hh.txt
在这里插入图片描述


13.补充知识3:快速写出代码

  1. nano 源文件
    如果源文件存在,则相当于用记事本打开。如源文件不存在,则先创建该文件,再相当于用记事本打开(如果你的系统报错说找不到该命令,那就执行yum -y install nano,等到配置完成后,即可使用nano)
    在这里插入图片描述

  2. nano源文件后,我们进入了该文件,编写一段简单的代码
    在这里插入图片描述

  3. 代码写好之后,ctrl+x -> y ->回车 ,即可退出源文件
    在这里插入图片描述

  4. 编译源文件
    gcc log.c
    在这里插入图片描述

编译源文件之后,当前目录会出现a.out文件

  1. 执行 ./a.out
    注意:一定要写成./a.out,如果用a.out,系统会报错说找不到该命令
    在这里插入图片描述

14.Cat/tac

语法:cat [选项][文件]
功能: 查看目标文件的内容
在这里插入图片描述

查看文件log.c的内容
在这里插入图片描述

将Cat反着写就是tac,tac的功能就是反着打印文件的内容

在这里插入图片描述


15.补充知识4: Linux中一切皆文件+输出/输入/追加重定向

1. Linux理念:Linux中一切皆文件

好处:可以以统一的方式来进行文件/设备访问

普通文件vs显示器文件
对于任何文件来讲,都可以读和写文件
显示器设备->显示器文件->向显示器打印,即向显示器文件进行写入

2. echo指令:
将后接的字符串打印到显示器中
在这里插入图片描述

3. 输出重定向:
本来应该显示到显示器中的数据,显示到文件中
在这里插入图片描述

每次进行输出重定向,都会先清空文件,再写入内容
在这里插入图片描述

“>” :如果后接的文件不存在,则创建该文件
在这里插入图片描述

“>”,就是C语言中以写的方式打开文件
(a)如果文件不存在,则创建该文件
在这里插入图片描述

(b)该文件存在时,先将文件清空,再写入
Log.c只是将文件先打开再关闭,没有写入内容,因为以w的方式打开文件时,先清空文件,所以运行了log.c后,test.txt的内容大小为0

在这里插入图片描述

所以创建一个空文件和清空一个文件,都可以用 >filename

4. 追加重定向:
本来应该显示到显示器中的数据,显示到文件中,且每次追加不会清空文件
在这里插入图片描述

“>>”:相当于C语言中以a(追加)的方式打开文件
Nano log.c 代码如下

在这里插入图片描述

从下图就可以看出,每以a的形式打开文件,文件不会清空
在这里插入图片描述

5. 输入重定向:
本来应该从键盘文件读取,现在却从普通文件中读取
Cat在后面不接文件的情况下,默认从键盘文件中读取内容,再原封不动的写入显示器文件中,所以我们可以在显示器上看到与写入键盘文件一样的内容
在这里插入图片描述

但现在我们不从键盘文件中读取数据,而是从test.txt中读取数据,这就叫输入重定向
在这里插入图片描述
在这里插入图片描述


16.more指令

语法:more [选项][文件]
功能:more命令,功能类似 cat
在这里插入图片描述

现在我们来构建一个有着1000行代码的文件hh.txt
在这里插入图片描述

我们发现,对这种行数比较多的文件说不适合用cat来查看的,因为它直接到了最后,而且不能通过上键和下键来滑动查看,所以我们接下来了解一些适合查看大文件的指令
在这里插入图片描述

用more指令时,当把一整个屏幕占满之后就不再刷屏,我们可以通过enter键来逐行下翻,方便我们对内容进行逐行阅读(按q退出)
在这里插入图片描述

当我们想查找666的内容时,输入/666,即可定位到大致位置
在这里插入图片描述

但more指令也不能通过上键和下键来滑动,只能通过enter键下翻,所以我们并不是很推荐more指令


17.less指令(重要)

在这里插入图片描述
语法: less [参数] 文件
功能: less与more类似,但使用less可以随意浏览文件,而more仅能向后移动,却不能向前移动,而且less在查看之前不会加载整个文件。

在这里插入图片描述


18.head指令

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的 开头至标准输出中,而 tail 想当然就是看档案的结尾
语法: head [参数]… [文件]…
功能: head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
在这里插入图片描述

默认查看文件的前10行
在这里插入图片描述

如何查看文件的前5行呢?只需要在head后面接-5即可
在这里插入图片描述

同理,查看文件的前20行
在这里插入图片描述


19.tail指令

tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail - f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容.
语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
在这里插入图片描述

Tail使用与head大致相同,默认查看文件后10行的内容,查看文件后x行也就只需要在tail后接-x+文件名即可

在这里插入图片描述


20.Date

date 指定格式显示时间: date +%Y:%m:%d (年月日中只有年Y需要大写)
date 用法:date [OPTION]… [+FORMAT]

(a).在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
在这里插入图片描述

在这里插入图片描述

(b).在设定时间方面
在这里插入图片描述

(c).时间戳
时间->时间戳:date +%s
时间戳->时间:date -d@1508749502
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的 午夜)开始所经过的秒数,不考虑闰秒
在这里插入图片描述

CST表示时区为东八区


21.Cal指令

cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳 历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
命令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份

Cal即可显示出本月的日历

在这里插入图片描述

Cal 年份就能显示出一整年的日历
在这里插入图片描述

还可以cal -3来显示出这个月、下个月和上个月的日历,那能不能cal -5来显示最近5个月的日历呢?答案是不可以的,只能-3
在这里插入图片描述


22.find指令:(灰常重要) -name

在这里插入图片描述

语法: find path name -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
在这里插入图片描述

在/root/111/222的目录中以文件名查找文件名为log.c的文件

在这里插入图片描述


23.grep指令

语法: grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来,被称为行文本过滤工具

在这里插入图片描述

在simple.txt的内容如下图的情况下

在这里插入图片描述

(a) 显示含有“haha”的文本行
在这里插入图片描述

(b) 显示含有“haha”的文本行并显示出它在文件中的行数
在这里插入图片描述

(c) 显示除含有“haha”以外的文本行
在这里插入图片描述

(d) 显示含有“haha”的文本行,并忽略haha的大小写
在这里插入图片描述

(e)
在这里插入图片描述


24.Zip/Unzip

语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式

在这里插入图片描述
在这里插入图片描述

解压到本目录
在这里插入图片描述

-d 解压到指定目录

在这里插入图片描述


25.Tar指令(重要):打包/解包

tar [-cxtzjvf] 文件与目录 … 参数:
tar -cvzf name.tgz file1 file2 a(目录) 目录也是一个文件
tar -xvzf name.tgz [ -C path]
在这里插入图片描述
在这里插入图片描述

解压到本目录
在这里插入图片描述

-C:解压到指定目录
在这里插入图片描述

学习了zip和tar解压,那么我们为什么要打包压缩呢?
便于网络传输


26.Bc指令

bc命令可以很方便的进行浮点运算,相当于是linux的计算器
在这里插入图片描述


27.uname –r指令

语法:uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息
在这里插入图片描述
在这里插入图片描述

其中,3.10.0是内核版本
el7表示centos7
x86_64(或x64)表示64位机器
x86:32位机器

可以用cat /etc/redhat-release来显示centos的具体版号

在这里插入图片描述


28.重要的几个热键[Tab],[ctrl]+c, [ctrl]+d,[ctrl]+r

[Tab]按键
具有『命令补全』和『档案补齐』的功能
在这里插入图片描述

在上面这种情况下,只能是whoami指令,那么这时按tab键就能补全whoami

[Ctrl]+c按键
让当前的程序『停掉』

[Ctrl]+d按键
通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit,如果想关掉terminal,可以点右上角的x,也可以ctrl+d
[Ctrl]+r按键
对历史命令进行搜索


好了,那么本篇博客就到此结束了,如果你觉得本篇博客对你有些帮助,可以给个大大的赞👍吗,感谢看到这里,我们下篇博客见❤️

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值