💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤
📃个人主页 :阿然成长日记 👈点击可跳转
📆 个人专栏: 🔹数据结构与算法🔹C语言进阶🔹C++
🚩 不能则学,不知则问,耻于问人,决无长进
🍭 🍯 🍎 🍏 🍊 🍋 🍒 🍇 🍉 🍓 🍑 🍈 🍌 🍐 🍍
文章目录
- 前言:
- 一、whoami指令
- 二、pwd指令
- 三、安装tree
- 四、mkdir指令
- 五、touch指令
- 六、ls指令
- 七 、cd指令
- 八、nano
- 九、stat指令
- 十、rmdir 和 rm指令
- 十一、man命令
- 十二、cp指令
- 十三、mv指令
- 十四:cat指令
- 十五、echo
- 十六、重定向问题【`>`/`>>`/`<`/``】
- 十七、more
- 十八、less指令
- 十九、head指令和tail指令
- 二十、wc
- 二十一.管道[`|`]
- 二十二、date
- 二十三、cal指令日历
- 二十四、sort指令
- 二十五、uniq指令
- 二十六、⭐️find
- 二十七、which 指令
- 二十八、whereis
- 二十九、grep
- 三十、top
- 三十一、zip /unzip
- 三十二、tar
- 三十三、uname指令
- 三十四、Ctrl+c按键—让当前的程序停止
- 三十五、Ctrl+d 退出
- 三十六、shutdown 关机
前言:
本篇博客将盘点Linux各种指令,一起来学习吧~
一、whoami指令
功能
:显示当前用户
- 这里对什么是用户不了解的,以后随着深入学习会解决的。我们刚开始只需关注指令本身作用即可。
演示:
二、pwd指令
功能
:显示当前所处路径
知道了自己的当前登录用户,那么知道自己当前所处路径也是非常重要的。在windows下
那么在Linux下呢?
三、安装tree
yum install tree
功能
:以树状展示路径下的目录和文件
下面学习了创建目录指令后,在做展示。
四、mkdir指令
语法
:mkdir
[选项 ] dirname
功能
:在当前路径下,创建一个目录/文件夹,注意不是.c .txt等等文件
常用选项:
-p
--parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立
好那些尚不存在的目录,即一次可以建立多个目录。
例如:1.创建一个dir1目录:
2. 使用-p
选项,在dir1 一次性创建dir2,dir3两个目录
五、touch指令
语法
:touch
[选项]… 文件…
功能
:touch
用来创建一个文件。可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
- -a 或–time=atime或–time=access或–time=use只更改存取时间。
-c 或–no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或–time=mtime或–time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间
一般使用touch来创建普通文件
例如:创建一个test.c文件
六、ls指令
语法
:ls
[选项 ][目录或文件]
功能
:显示当前目录下所对应的文件列表(包括目录、普通文本文件…)
功能选项:
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表
示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-1 一行只输出一个文件。
ls指令有非常多的选项,但是常用的也就那么几个不用担心记不住!
下面我们就学几个常用的指令。
1.ls
:只是展示当前目录下的文件
2.ls -l
== ll
:显示更多文件信息
3.ls -a
:列出目录下的所有文件,包括以 . 开头的隐含文件
4.ll -a
:列出目录下的所有文件,包括以 . 开头的隐含文件,并且显示更多文件信息
5.在l文件名后输出该文件的大小。
最后,其他的可以自行根据选项使用~
七 、cd指令
语法
: cd 目录名
功能
:改变工作目录。将当前工作目录改变到指定的目录下
📌首先来记住几个常用命令
- [
cd.
]当前路径 - [
cd. .
]上一级路径(这里是两个点,不是三个点) - [
cd ~
]回到家目录下。例如:我现在使用的是【root】超级用户,无论在哪个目录下执行都会直接跳转到【root】用户的目录下,也就是你的家目录。当你使用自己创建的用户时,执行这个命令就会跳转到你的用户目录下。 - [
cd -
]回到最近一次的位置
首先,在Linux中上一级是【../
】当前是【./
】
需要注意的是:在Linux下路径分隔符使用的是左斜杠【/
】,但是在Windows中呢,使用的是右斜杠【\
】
八、nano
功能
:编写代码的记事本文件
例如:创建test1.c文件,并进入编辑。
但是我们发现找不到指令,原来是我没有安装nano。接下来,就来安装它。使用如下指令
yum install -y nano
这下可以进入编辑了!
九、stat指令
功能
:查看文件所有的属性
【ACM时间】
Access:最后的访问时间
Modify:文件内容最后修改的时间
Change:文件属性最后修改的时间
十、rmdir 和 rm指令
rmdir
:删除一个空目录
rm
:删除一个目录或者一条路径下的目录和文件
rm
的选项:
- -f 即使文件属性为只读(即写保护),亦直接删除(强制删除)
- -i 删除前逐一询问确认
- -r 删除目录及其下所有文件(递归式删除)
通常我们直接使用rm即可,因为它的功能包含了rmdir。而且功能更强大。
递归删除dir1一整个路径:
十一、man命令
功能
:通过查看联机手册获取帮助
讲到现在,很多同学可能已经忘记前面的了,记不住该怎么办呢?于是这个时候就有一种办法可以让你不需要记这些东西,只需要记住一个命令,那就是这个【man】,然后就可以通过这个【man】命令去查找一些联机手册,在这些联机手册中呢,你就可以找到你想要的一些命令的参数
选项:
- -k 根据关键字搜索联机帮助
num 只在第num章节找
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按
下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
手册分为8章
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文
件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
十二、cp指令
功能
: 复制文件或目录(默认只能拷贝文件)
格式
cp (源文件/源目录) (目标文件/目标目录)
选项:
- -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链
接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
🚩注意:默认复制的只能是文件,不能复制目录。可以使用【-r】递归复制目录。而且,需要进入源文件所在位置,从此位置开始到目标文件的路径需要自己看清楚。
十三、mv指令
功能
:可以用来移动文件或者将文件改名
语法
:mv src(文件/目录) dst(一定是一个目录)
选项:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
例如:
mv ./dir dir1
当然还可衍生出下面功能:
①如果后面跟的只是当前的文件名【dst和src是同一文件类型】,那就只做重命名工作
②如果dst为一个路径【…上一级路径】,就是纯正的剪切
③如果dst为一个【路径 + 文件】,在后面又指定了一个不存在的文件名。就会【重命名 + 剪切】
十四:cat指令
功能
: 查看目标文件的内容【直接打印全部】
语法
:cat [选项][文件]
十五、echo
echo
命令的功能就是,用来在显示器上现实一段字符串。如下:
十六、重定向问题【>
/>>
/<
/``】
利用echo和>
/>>
重定向输入指定文件
1.输出重定向【覆盖重定向】>
可以发现,重定向也可以创建新文件。如果目标文件不存在,会自动创建,把本来应该显示的内容写到文件中,如果再次对其prose.txt重定向输出,那么会覆盖里面的内容。所以,又叫覆盖重定向。
2.追加重定向>>
在上面的基础上,如果再次对其prose.txt输入,那么不会覆盖里面的内容,而是在原有基础上增加。所以叫追加重定向。
利用cat和<
重定向输入
1.输入重定向>
接下来说几个有关阅读内容的指令
为了便于演示他们的功能,使用下面代码,打印100 个内容进去。
cnt=0; while [ $cnt -le 1000 ]; do echo "hello $cnt"; let cnt++; done > f3.txt
十七、more
·语法·:more [选项][文件]
·功能·:功能类似 cat,但是显示到一个屏幕满了就不显示了,而且只能下翻,不能上翻,在下翻的过程中按回车就可以了,想要退出的话按【q】。用的少。
十八、less指令
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前 不会加载整个文件。
1️⃣less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
2️⃣less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用
来查看一个文件的内容!
3️⃣除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜
选项:
- -i 忽略搜索时的大小写
-N 显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
q:quit
十九、head指令和tail指令
head
与tail
就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的
head
:显示开头某个数量的文字区块
选项
:-n<行数> 显示的行数
tail
:显示结尾某个数量的文字区块
二十、wc
输出一个文件的行数,字符数
二十一.管道[|
]
作用
:【级联多条命令,让命令和命令组合完成批量化文本处理的任务】
例如:显示f3.txt中10-20行的内容
这里的管道相当于是一个中间缓存,将左边(head -20 f3.txt
)得到的前20行放入管道中,然后(tail -10指令
)从管道中读取内容,并取其后10行。
二十二、date
功能
:格式化时间,显示时间
1.直接data指令
2.格式化时间
首先,掌握几个格式化的标记
%H
: 时(00…23)%M
: 分(00…59)%S
: 秒(00…61)- 【 %X : 相当于 %H:%M:%S】
%Y
: 年 (0000…9999)%m
: 月 (01…12)%d
: 日 (01…31)- 【%F : 相当于 %Y-%m-%d】
3.时间设定
注意
:需要在root权限下执行
date -s 20080523 | 设置成20080523,这样会把具体时间设置成空00:00:00 |
---|---|
date -s 01:01:01 | 设置具体时间,不会对日期做更改 |
date -s “01:01:01 2024-01-11″ | 这样可以设置全部时间 |
date -s “01:01:01 20241011″ | 这样可以设置全部时间 |
date -s “2024-01-23 01:01:01″ | 这样可以设置全部时间 |
date -s “20240111 01:01:01″ | 这样可以设置全部时间 |
4.获取时间戳
时间戳
:格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒
)起至现在的总秒数
指令:date +%s
5.时间戳转换
(1)将指定日期格式转换为时间戳:
date -d "1999-08-29 19:27" +%s
(2)将指定时间戳转换为日期(可以使用日期格式化输出)
date -d@时间戳
二十三、cal指令日历
选项:
-3
显示系统前一个月,当前月,下一个月的月历-j
显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)-y
显示当前年份的日历
二十四、sort指令
作用:对文件中的内容进行排序【从左向右拿每行的第一个字母的ASCLL码值做比较,默认升序
】
选项
-r
降序
二十五、uniq指令
功能
:正如它的英文意思–去重
二十六、⭐️find
Linux下find命令在目录结构中搜索文件,并执行指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系
统可能会花费很长的时间(这里是指30G字节以上的文件系统)
find指令功能选项实在是太多了,这里搜索了一些资料
[root@localhost ~ ] # find 搜索路径 [选项] 搜索内容
选项:
-name:按照文件名搜索
-iname:按照文件名搜索,不区分文件名大小写
-inum:按照inode号搜索
#1.find命令基本使用
[root@192 ~]# find . -name abcde
./abcde
提示:搜索位置越大,消耗系统资源越多。
在生产服务器上搜索的时候,尽量不在根目录下搜索,把搜索的范围尽量控制在最小。
#2.-iname
[root@192 ~]# find . -iname abcde
./ABCDE
./abcde
提示:i表示忽略的意思,就是忽略大小写。
#3.-inum
之前我们通过文件名可以查看到文件的i节点号
[root@192 ~]# ls -i abcde
1043285 abcde
这里通过find命令的-inum选项可以实现,通过i节点号查看文件的名字。
[root@192 ~]# find . -inum 1043285
./abcde
这两个是一对命令,记忆比较方便。
二十七、which 指令
功能
搜索对应指令的路径
二十八、whereis
功能
在系统目录下搜索指定的文件、指令、程序或者指定的归档文件、压缩包
二十九、grep
语法
: grep [选项] 搜寻字符串 文件
功能
: 在文件中搜索字符串,将找到的行打印出来
常用选项:
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行
三十、top
功能
:任务管理器【查看CPU占用 】
三十一、zip /unzip
语法:zip
[压缩文件名.zip] [要压缩的文件或目录]
功能: 将目录或文件压缩成zip格式
常用选项:
-r
递 归处理,将指定目录下的所有文件和子目录一并处理
接下来,我准备压缩dir4目录,但是发现找不到指令。此时就需要安装了
安装zip指令
yum install -y zip
解压使用unzip
:
unzip 压缩文件 -d 路径
三十二、tar
我们的压缩类型有很多种,.zip只是其中之一。对于其他类型的压包.rar、.tgz、.7z,我们只是用zip是不可行的。
选项;
- -c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录
1.打包-czf
tar -czf 压缩文件.后缀 源文件
2.解包-xzf
tar -xzf 压缩文件.后缀 -C 具体路径
三十三、uname指令
uname命令是一个用于显示系统信息的工具。它可以提供关于操作系统的不同方面的详细信息,如内核版本、硬件架构、操作系统类型和发行版等。通过uname命令,我们可以轻松获取这些信息,帮助我们更好地了解和管理Linux系统。
选项:
-a
:查看详细信息
-r
:查看计算机体系结构
三十四、Ctrl+c按键—让当前的程序停止
三十五、Ctrl+d 退出
三十六、shutdown 关机
选项: | 功能 |
---|---|
-t seconds | 送出警告信息和删除信息之间要延迟多少秒 |
-k | 并不会真的关机,只是将警告讯息传送给所有使用者 |
-r | 重启,相当于 reboot |
-h | 关机后停机 |
-n | 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机 |
-c | 取消关机 |
-f | 重启时不执行 fsck, CentOS 系统没有而 Ubuntu 系统有 |
-F | 重启时执行 fsck, CentOS 系统没有而 Ubuntu 系统有 |
都可附加选项 | |
time | 设定关机的时间。如果是 now 表示立即关闭;如果是 +number 表示在指定分钟后关闭系统;如果是 hour:minute 表示在一天的指定时间(24小时制)关闭系统 |
message | 传送给所有使用者的警告讯息。如果指定了该参数,必须指定 time 参数 |