0


Linux的常见指令(持续更新)

简单指令:

概念介绍:

1**. 目录🟰文件夹**

2. 同级目录下,不允许存在同名文件或目录。也就是多叉树的同一层不允许存在同名节点

如果大家有的指令不知道有什么选项就可以在指令后➕ --help,就可以查到了

例如: ls --help

** rm --help**

​​​​​​​ mkdir --help

Linux指令示范用法说明whowho查看哪些人登陆我的机器whoami (who am i)*who am i查看当前账号是谁
pwd
pwd查看当前我所在的目录
clear***clear

清屏
tree 目录名(文件夹名)****tree game以树形结构列出该文件夹下的所有文件stat 目录名****stat game查看指定目录的更详细的属性信息
gcc (.c/.cpp文件)
gcc test.c**编译.c/.cpp文件./(.c/.cpp文件)****./test.c执行.c/.cpp文件touch 文件名 文件名...touch test.c在当前目录下建立一个或多个文件nano 文件名nano test写文件内容
(文件不存在就建立一个写入)
which 指令which ls看指令在哪个路径下whereiswhereis test查看文件的路径alias 别名='指令'*alias T='tree'给指令取别名
(退出Linux后,别名自动销毁)
wc -l
*wc -l file**统计文件内容不重复的行数

注意,在Linux安装没有的指令

指令名称****安装命令nanoyum install -y nanotreeyum install -y tree
​​​​​​​apt-get install treegccyum install -y gcc

1. 查看Linux系统的指令

uname -a查看Linux系统的详细信息uname -r查看linux内核版本信息cat /etc/redhat-release看Linux的发行版和芯片架构cat /proc/cpuinfo看cpucat /proc/meminfo看内存情况
vmstat **
报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息
sar主要帮助我们掌握系统资源的使用情况,特别是内存和CPU的使用情况
top **
查看cpu资源使用状态
netstat 查看网络连接状态
free
查看内存资源状态
df
查看磁盘分区资源状态

2. ls指令(可以混合使用,大家自行测试)

概念介绍:

1.隐藏文件:是以‘ . ’开头的文件,默认不显示。

2. 指令后面的选项之间可以自由组合。

3. 某些指令后面的文件都可以是一个或者多个,比如删除一个多个,建立一个多个。

ls列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息ls -a 列出目录下的所有文件,包括以 . 开头的隐含文件
ls -d
将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
ls -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件ls -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件ls -l 、ll 列出文件的详细信息。ls -la 、ls -al 、ls -l -a、 ls -a -l 、ll -a
列出目录下的所有文件的详细信息,包括以 . 开头的隐含文件。ls -n用数字的 UID,GID 代替名称。 (介绍 UID, GID)** ls -F**
在每个文件名后附上一个字符以说明该文件的类型

*” **: 表示可执行的普通文件;

“/” : 表示目录;

“@” : 表示符号链接;

“|” : 表示FIFOs;

“=” : 表示套接字(sockets)
ls -r 对目录反向排序。ls -t 以时间排序。ls -s在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)ls -R 列出所有子目录下的文件。(递归) ls -1 一行只输出一个文件。

3. cd指令

概念介绍:

  1. 一个 ‘** . **’ 表示的是 当前路径

  2. 两个‘** . .**’ 表示的是 上级路径

  3. 路径:由‘ / ’ 和目录组成的字符串****​​​​​​​

  4. / ’ 是Linux下的路径分隔符

  5. 2个 ‘ / ’之间的一定是目录(文件夹)

  6. 最后一个‘ / ’ 后的可能是目录,也可能是文件

  7. 第一个‘ / ’ 代表根目录

  8. 我们的 “ /root ”代表的是家目录,所谓家目录就是在个人账户下的目录

相对路径:以当前目录为参考点,利用‘ .. ’找到当前目录的上级目录,再找到指定文件所形成的路径。

绝对路径:从根目录( / )开始,定位到叶子文件的方式,形成的路径。

重点!!!

​​​​​​​

我们任何指令都可以➕绝对路径或者相对路径,只在这里说一次,下面指令不会重复说明。

使用规则示范功能*cd 目录名 *cd game从当前目录进入到指定目录里,指定目录必须在当前目录里*cd 绝对路径*cd /root/game可以从当前目录找到任何目录或文件,但是要使用绝对路径。cd 相对路径****cd ../game可以从当前目录找到任何目录或文件,但是要使用相对路径。**cd ..****cd ..返回上一级目录cd .****cd .返回当前目录cd ~****cd ~进入家目录cd -****cd -**返回最近访问的目录

首先,如下图Linux下整体的目录结构就是一颗多叉树。我们可以根据多叉树来找相对路径和绝对路径。

假设我们在**/usr/bin这个路径下,也就是在bin的目录下,我们要去找到lib**

通过绝对路径 **/ usr / lib **找到

通过相对路径 **.. / lib 找到,大家不要忘了.. **是代表上级路径哦!

4. mkdir指令(重要)

可以加绝对路径或者相对路径,在指定路径里创建目录

使用规则示范功能mkdir --helpmkdir --help来获取更多mkdir信息mkdir 目录名 目录名...
mkdir dirname

mkdir a b c d

在当前目录下创建一个名为 “dirname”的目录

在当前目录下创建多个目录,为a,b,c,d
mkdir -p(--parent**) 目录名**
mkdir -p test/test1/test2

mkdir --parent a/b/c
递归建立多个目录)(使用tree命令查看)

5. rmdir指令(重要)

1. 只适用****具有当前目录操作权限的所有操作者

**2. **只能删除空目录,不能删除文件

3.可以加绝对路径或者相对路径,在指定路径里删除空目录

1. 超级用户:root用户,删除任何东西都会询问是否删除,因为超级用户的东西比较重要。

2. 普通用户:非root用户,删除东西多时候不会询问,想要被询问,需要➕特定的选项,下面会给出说明

3. 一切的删除都默认不删除隐藏文件!!!!!!

使用规则示范功能rmdir --helprmdir --help来获取更多rmdir信息rmdir 目录名****rmdir dirname删除空目录rmdir -p(--parent**) 目录**
rmdir -p(--parent**) a/b/c**

rmdir --parent a/b/c

当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除

6. rm指令(重要)

1.适用所有使用者

2.rm命令可以同时删除文件或者空目录

3.单独的rm无法删除目录

4.可以加绝对路径或者相对路径,在指定路径里删除。

  1. ‘ *** **’ :通配符,指定路径下的所有文件。

使用规则示范功能rm --helprm --help来获取更多rm信息rm -i 目录**rm -i dir **
删除前询问是否删除
rm -r
*rm -r dir
*删除之前先递归进入到叶子文件或目录
rm -frm -f test直接删除文件rm -rfrm -rf dir**强制删除任何目录(包括非空目录)和文件
**rm -rf * **
**rm -rf ***删除当前目录下的所有目录和文件

1. 删除隐藏文件:rm -rf 隐藏文件名

2. 一定不要删除根目录,小白玩家切记!!!

7. man指令(重要)

1.Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。所以man是访问Linux手册页的命令

2.访问之后,要退出, 按q。

手册分为8章:

(1 )是普通的命令

(2) 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)

(3) 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件

(5) 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义

(6) 是给游戏留的,由各个游戏自己定义

(7) 是附件还有一些变量,比如向environ这种全局变量在这里就有说明

(8) 是系统管理用的命令,这些命令只能由root使用,如ifconfig

没有man指令?输入下面的安装命令

yum install -y man-pages

使用规则示范功能man 指令man printf在手册中从1到8章依次查找,找到了就显示
遇到指令在多个手册都有定义
只显示最先找到的man num 指令****man 3 printf只在第三章中查找man -a 指令****man -a printf
把找到的全部有定义的章节都显示出来
比如printf,会显示第一章和第三章的

8. cp指令(重要)

用途:复制目录或文件

注意⚠️⚠️:

如果同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。

同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。

如果要拷贝到当前路径,但是同级目录下没办法重名,所以我们就cp test test2就OK了。

不会拷贝隐藏文件,要拷贝隐藏文件,需要自己写哦!

使用规则功能cp 文件名 路径将文件拷贝到路径内cp -rf 目录/文件 路径将目录或文件拷贝到路径内cp -rf 路径1 路径2*
将路径1下的所有文件和目录都拷贝到路径2中

(路径1跟*无空格)

9. mv指令(重要)

用途:可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

使用规则示范功能mv 目录 目录mv a b将a重命名为bmv 文件 文件(不存在)mv test data将test重命名为datamv 文件 文件(已存在)mv test test2将test覆盖到test2mv -i 文件 文件(已存在)****mv -i test test2将test覆盖到test2,但是会询问是否覆盖mv -f 文件 文件(已存在)****mv -f test test2将test强制覆盖到test2,不询问是否覆盖mv 文件 目录****mv test a将test移动到a目录里

10. cat指令&tac指令

用途:打印目标文件内容,文件内容是少的。(大文件用别的指令)

单独的cat(写完cat之后按回车才行),你输入什么(从键盘文件读取什么),就会打印什么(向显示器文件写入什么)

tac指令****:逆向打印目标文件内容

使用规则示范功能cat 文件cat test.c查看目标文件的内容cat -b 文件****cat -b test.c对非空的输出行进行编号cat -n 文件****cat -n test.c对输出的所有行,进行编号cat -s 文件****cat -s test.c不输出多行空行cat < 文件****cat < test.c从文件中读内容到显示器

11. echo指令

用途:可以向文件中写入一些字符串,当我们不写东西的时候,还会有个换行符,所以echo默认生成换行符

printf指令,是默认不带换行的,剩下的跟echo一样

使用规则示范功能echo 字符串echo "hello Linux !"缺省(默认)向显示器输出,自动换行
(缺省向显示器文件进行写入)
echo 字符串 > 文件****echo "hello Linux !" > test
向test文件写入字符串
(有文件就直接写入,没有就创建再写入)
文件中有内容的话,会被清除,再写入新的字符串echo 字符串 >> 文件****echo "hello world !" >> test在test文件内容后追加字符串

我们学到这里了之后,其实我们会发现,在Linux里,一切的东西都可以是文件,我们在向显示器打印的时候,其实就是向显示器文件写入,所以在Linux系统里,我们会统一称为某某文件。

重点⚠️⚠️重点

一、输出重定向符 : >

这个符号类似我们的写入,从 > 的左边写入到 > 的右边

用法1 : > 文件 清空文件内容,再写入

用法2: > 文件(不存在) 新建一个文件

二、输入重定向符 :<

从 < 的右边读取到字符串之后,写入到显示器文件中。

三、追加重定向符:>>

向文件内容后面追加字符串

用法1 :>> 文件(不存在) 新建一个文件

12. more指令

类似cat,但是它是打印大文件的。

查看文件的时候只能按回车,上下键没用,只能下翻,不能上翻,所以我们不继续介绍more了,来看我们的less!

13. less指令(重要)

1.less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。

  1. less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看

  2. 但若使用了 less 时,就可以使用上下键来往前往后翻看文件,更容易用来查看一个文件的内容!

4.除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜

5**.在浏览文件的时候,退出按q,想搜索具体内容用 /具体内容**

使用规则示范功能less 文件less test.c浏览文件

14. head指令

默认打印其相应文件的前10行。

使用规则示范功能head 文件head file.txt默认向显示器文件写入目标文件前十行内容head -n 文件****head -n file.txt向显示器文件写入目标文件前n行内容

15. tail指令

默认打印其相应文件的最后10行。

使用规则示范功能tail 文件tail file.txt默认向显示器文件写入目标文件后十行内容tail -n 文件****tail -n file.txt向显示器文件写入目标文件后n行内容

如果想要提取中间的行内容怎么办呢?

方法一:建立临时文件

把file.txt的前n行拿出来,放在一个临时文件里,再用tail把临时文件的后n行拿出来,但是这样是建立文件才能完成,那有没有不用建立文件的方法呢?

head -n file.txt > newdata
tail -n newdata

方法二:使用‘|’命令行管道

什么是命令行管道呢?我们想象一下现实中的管子,两个端开口可以连接,所以我们这个命令行管道就可以将前面的命令和后面的命令连接起来

看下面的指令,解读一下就是,前面的输出是作为后面的输入

head -n file.txt | tail -n 

16. date指令

date 指定格式显示时间: date +%Y-%m-%d_%H:%M:%S

%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

使用规则功能date +%Y-%m-%d_%H:%M:%S 显示当前的时间date -s "年月日时分秒"date -s "2023-11-9 10:16:30" 设置时间date +%s
将时间转换时间戳的形式

(时间戳是1970.1.1的午夜到现在时间所经过的秒数)
date -d@时间戳时间戳转换成时间

15. cal指令

cal命令可以用来显示公历(阳历)日历

使用规则示范功能calcal查看当天的日历cal 年份****cal 2000查看目标年份的所有日历cal -3****cal -3显示系统前一个月,当月和下一个月的日历cal -j****cal -j显示当天在今天的第几天

16. find指令(很重要‼️)

使用规则示范功能find filenamefind test找到当前目录下的所有名为test的文件或目录,递归查找find 路径 -name filename****find /root/xmb/test -name test找到路径下所有名为fliename的文件/目录

17. grep指令

在文件内容中找目标字符串,再将找到目标字符串存在的行打印出来。

使用规则示范功能grep 字符串 文件grep 'a' file在文件file里找,字符串a,并把a存在的行写入在显示器文件中
grep -i 字符串 文件
grep -i 'a' file忽略大小写的不同,所以大小写视为相同grep -n 字符串 文件****grep -n 'a' file顺便输出行号grep -v 字符串 文件****grep -v 'a' file反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行grep -E ^字符串 文件****grep -E ^a flie^表示匹配文件起始, ^a表示以a起始,向显示器文件下入file文件中所有以a开头的行grep -E 字符串$ 文件****grep -E a$ file$表示匹配文件末尾,a$表示以a结尾,向显示器文件写入file文件中所有以a结尾的行

18. sort指令

将文本内容每行按ASCII值排序

使用规则示范功能sort 文件sort file将文本内容每行按ASCII值排序sort -r 文件****sort -r file将文本内容每行按ASCII值排序,但是反向输出

19. uniq指令

把文本中相邻且内容重复的行变成一行,再向显示器文件写入

使用规则示范功能uniq 文件uniq file把文本中相邻且内容重复的行变成一行uniq -d 文件****uniq -d file只显示文本中的重复行uniq -u 文件****uniq -u file保留文本中出现一次的行uniq -c 文件****uniq -c file统计文本中每行的内容出现了几次

标签: linux 运维 服务器

本文转载自: https://blog.csdn.net/2302_76941579/article/details/134217349
版权归原作者 小程序面包园 所有, 如有侵权,请联系我们删除。

“Linux的常见指令(持续更新)”的评论:

还没有评论