Linux系列--命令详解

目录

一、Linux资源管理方式

二、查询类型命令详解 

三、文件管理类型命令详解

四、文件压缩与解压 

五、文件编辑 

六、系统命令 

七、文件内容查看命令 


一、Linux资源管理方式

  • linux操作系统采用一个文档树来组织所有的资源。这棵树的根目录的名字叫做:/
  • / 是一个目录名字,是linux操作系统中所有文件的根。
  • / 目录下又有很多其他的子目录,比如:dev home lib .....
  • 以下是比较重要的几个目录概述

  1. /bin目录:包含一些常用的二进制可执行文件,如cat、ls、mkdir、rm等。这些二进制文件在系统运行时始终可用,可以被任何用户运行。
  2. /etc目录:包含了系统的大多数配置文件,如网络配置、用户登录信息、软件包安装配置等。大多数应用程序在安装后都会在这个目录下创建自己的子目录,以便存储自己的配置文件。
  3. /home目录:包含Linux系统用户的家目录,每个用户的数据和个人文件都存放在这里。
  4. /lib目录:包含一些共享库文件,应用程序可以通过这些共享库文件调用系统的功能,如libc.so,是C语言函数库的共享库。
  5. /root目录:是系统管理者(超级用户)的家目录。
  6. /tmp目录:是系统中的一个临时目录,所有用户都可以在这里创建临时文件,文件系统会定期清空该目录,以防止文件滞留。
  7. /usr目录:包含系统启动后,所有用户能访问的应用程序和数据文件。
  8. /var 目录:包含可变数据的文件。包括日志、数据库、Web服务器、邮件队列等文件。它是一个经常被修改的目录,如果在其他目录有可变数据的话,它们都应当被链接到 /var 中。

二、查询类型命令详解 

一、pwd

1、查看当前所在目录

二、man

1、man命令可以查看某个命令的具体用法。例如:man pwd

2、翻页:使用空格

3、推出:使用q

三、--help

1、也可以查看一个命令的帮助,一次性列出。用法:touch --help

四、ls

1、通过ls命令可以查看当前目录下的子目录和子文件

2、ls  -a:列出包含隐藏文件在内的所有的文件。(在Linux操作系统中隐藏文件的文件名通常以"."开始)

3、ls  -l:表示使用长格式输出:long format;可以简写为ll

文件权限分三块:第一个rwx:指的是当前用户的权限。第二个rwx:指的是同一个文件组的其他用户对该文件的权限。第三个rwx:指的是其他组的用户对该文件的权限。

五、ls -al

1、ls -al等同于:ls -a + ls -l的功能。可以简写为:ll -a

2、ll -a /home/powernode:可以指定查看某个目录下的所有文件详情。

六、cd

1、cd 路径名

2、cd ../.. 回到上级目录的上级目录

3、cd ~ 回到主目录

4、cd / 回到根目录

5、cd /home/powernode  /home/powernode     切换到后面的目录下

6、cd  home   切换到当前目录下的home目录中

  • 这里的abc没有以 / 开始,表示这个路径是相对路径,相对路径指的是从当前所在目录作为起点开始找。
  • 以 / 开始的路径被称为绝对路径。
  • cd 命令后面既可以是相对路径,也可以是绝对路径。只要路径正确即可。

7、clear:清屏

三、文件管理类型命令详解

一、新建目录

  1. mkdir abc (mkdir是新建目录的命令,abc是一个目录名)
  2. mkdir -p a/b/c (-p参数表示,一次创建多重目录)
  3. mkdir -p a/kk/ff (虽然a已经存在了,但是不会报错,直接在a目录下新建kk目录,kk目录下新建ff目录。)

二、新建文件   

  1. touch 文件名,例如:touch Hello.java 表示在当前目录下新建一个文件Hello.java
  2. touch a.txt b.txt c.txt 一次性在当前目录下,新建多个文件,文件名之间采用空格分隔。

三、删除文件

1、rm 文件名        

rm a.txt(删除当前目录下的a.txt文件)。这种方式会询问,是否删除,输入y表示删除,输入n表示不删除。

2、rm -f a.txt(强行删除a.txt文件,不询问)

3、删除多个文件

  • rm -f b.txt c.txt (删除b.txt和c.txt文件)
  • rm -f *.java(删除所有.java结尾的文件,模糊匹配的方式。)

四、删除目录

1、rm -r x(删除当前目录下的x目录,以及x目录下所有的子目录),但是这种方式需要用户自己输入y进行确认删除。

2、rm -rf x (强行删除x目录以及x目录下所有的子目录,并且不询问。包括子文件也全部删除。)

五、文件拷贝

1、语法

  • cp file1 file2
  • file1就是被拷贝的文件
  • file2就是粘贴之后的文件
  • file1和file2可以添加路径。
  • cp 被拷贝文件的路径 粘贴到哪里的路径     cp Hello2.java a/Hello3.java

2、cp a.txt aa.txt(复制当前目录下的a.txt文件,粘贴到当前目录下并且生成新文件aa.txt)

六、目录拷贝 

1、cp 目录名1 目录名2

  • 目录名1 是拷贝源
  • 目录名2 是拷贝到哪里

2、cp -rf a abc(将当前目录下的a目录拷贝到当前目录下的abc目录当中)

-rf (-r递归拷贝,-f强行拷贝)

cp -rf /home/powernode/a /home/powernode/x (将/home/powernode/a目录拷贝到/home/powernode/x目录下)

七、目录移动 

1、mv x f(将x目录移动到f目录下)

2、mv Hello.java x(将当前目录下的Hello.java文件移动到x目录下)

mv /home/bjpowernode/Hello2.java /home/bjpowernode/x (将/home/bjpowernode/Hello2.java 移动到 /home/bjpowernode/x目录下)

八、文件搜索 

在CentOS中,可以使用以下方式进行文件搜索

1、find命令:使用find命令可以在指定目录下搜索文件。可以使用不同的选项来指定搜索的文件类型、大小、修改时间等条件

例如:

find /usr/local -name "catalina.out"

2、whereis命令:使用whereis命令可以在系统中搜索指定的命令的位置

例如:

whereis startup.sh

3、which命令:使用which命令也可以在系统中搜索指定的命令的位置。

例如:

which command

九、文件的inode号

1、在Linux操作系统中,每一个文件都有自己的身份证号:inode号(index node:索引节点号)
每个文件都有自己的inode号,并且不会重复,在Linux操作系统中通过inode来区分两个文件。
查看文件的inode号:

ls -i test.txt

十、软链接

1、软链接:软链接类似于windows操作系统中的快捷方式。

2、软链接的作用:方便操作、快捷。有些经常被操作的文件,藏的很深,每一次找很麻烦,怎么办,可以给这些经常操作的文件创建软链接。通过软链接快捷的操作目标文件

3、创建方式:ln -s HelloWorld.java HelloWorld.java2

  • 表示给HelloWorld.java文件创建一个HelloWorld.java2的快捷方式(软链接)
  • HelloWorld.java是目标文件。HelloWorld.java2文件是软链接,属于快捷方式

4、区别:

软链接和目标文件实际上是两个文件,在软链接中存储的是目标文件的路径。软链接关联的目标文件如果被删除,软链接这个快捷方式也就失效了。

可以通过查看inode号,来证明软链接是两个不同的文件:

十一、硬链接 

1、语法:ln HelloWorld.java HelloWorld.java2

2、通过测试得知:inode号一致,说明创建的硬链接和原文件是同一个文件。

3、通过操作硬链接,目标文件会改变,操作目标文件,硬链接会改变

4、硬链接的特点:

  • 主要是用来做:重要文件备份。
  • 目标文件删除之后,硬链接只要在,文件其实就没有被删除。或者说硬链接删除之后,目标文件还在。总结一句话:目标文件或者硬链接只要有一个存在,文件就没有被真正的删除。
  • 硬链接机制和复制粘贴还不一样,复制粘贴之后的文件,修改其中之一,另一个不会变,但是硬链接就不一样了。

四、文件压缩与解压 

一、tag命令

1、介绍:tar是在linux系统当中完成压缩和解压缩的命令。压缩后的文件又被称为归档文件

2、语法格式: tar 参数 要压缩的或解压的文件或目录

3、常用参数:

  • z:指定是否使用gzip压缩方式压缩。(扩展名通常为:tar.gz。特点:速度最快)
  • j:是否需要用 bzip2 压缩方式压缩。(扩展名通常为:tar.bz2。特点:体积最小)
  • c:创建压缩(create)
  • x:解压缩
  • v:是否在压缩的过程中显示文件
  • f:指定归档文件名(file)。f参数后面必须紧跟文件名,不能在f参数后面再加其他参数。
  • t:查看 tarfile 里面的文件
  • C:指定解压到的具体目录。注意是大写C。

注意:c、x、t,这三个参数不能共存,只能出现一个。

二、压缩

1、压缩一个文件

  • tar -zcvf mytxt.tar.gz log1.txt

2、压缩多个文件

  • tar -zcvf mytxt2.tar.gz log1.txt log2.txt log3.txt
  • tar -zcvf mytxt3.tar.gz *.txt

3、压缩目录

  • tar -zcvf mytxt4.tar.gz test 【将test目录压缩为mytxt4.tar.gz】

三、查看归档文件 

  • tar -tf mytxt.tar.gz

五、文件编辑 

一、vi与vim概述

vi 和 vim 都是在 Linux 和 Unix 中常用的基于字符终端的文本编辑器。
vi 是 Unix 早期提供的标准命令行下的文本编辑器,是一款非常强大、高效的编辑器,可以对文本进行快速修改和编辑,具有常见编辑器的基本功能。
vim(Vi Improved)是在vi基础上进行了改进和扩展的一个版本,它保留了vi的全部功能,并添加了许多新功能,如基本的 GUI 界面、语法高亮、多级撤销/重做、对齐、插件支持等等。可以说 vim 是强大的文本编辑器之一,被众多的开发者、管理员、写作人员和爱好者使用。
通过 vi 和 vim 命令,我们可以在终端中打开并编辑文本文件,进行各种修改和编辑,保存后退出,是 Linux 和 Unix 系统中非常基础、常用的一种文本编辑方式。
总之,vi 和 vim 均是一款 Linux 和 Unix 中常用的基于字符终端的文本编辑器,其中 vim 是在 vi 基础上进行了改进和扩展的版本。

在 CentOS 中,系统默认安装的是 vim 编辑器,但是为了兼容 vi 编辑器的使用习惯,CentOS 将 vim 的执行文件命名为 vi。因此,实际上在 CentOS 中使用 vi 和 vim 是等价的,都是使用 vim 编辑器进行文本编辑。

二、vi 编辑器使用 

1、使用vi编辑器打开文件,语法:vi 文件的路径

  • vi Hello.java(打开当前路径下的Hello.java)
  • vi /home/bjpowernode/Hello.java(打开/home/bjpowernode目录下的Hello.java文件。)

2、编辑文件(vi编辑器为用户准备了两个模式)

  • 第一个模式:命令行模式。(此时键入的都是命令)
  • 第二个模式:编辑模式。(此时键入的内容都会写入文件)
  • 进入vi编辑器时是命令模式:按i键进入编辑模式
  • 从编辑模式回到命令模式:按一下esc键

3、保存。在命令模式下,输入以下命令:

  • :wq  这是一个命令,这个命令可以保存并退出。
  • :q! 这是一个命令,这个命令可以强行退出vi编辑器,并且不保存。

注意:vi编辑器打开的文件如果不存在,则自动新建。

三、vi编辑器常用命令 

dd:删除光标所在行
yy:复制光标所在行到缓冲区
p:粘贴缓冲区中的内容
gg:光标回到文件第一行
GG:光标回到文件最后一行
^ :光标移动至当前行的行首
$ :光标移动至当前行的行尾
/关键字:按斜杠/键,可以输入想搜索的字符,然后确定进行搜索,如果第一次查找的关键字不是想要的,可以一直按 n 键往后查找到想要的关键字为止
o命令:在下一行插入。
x命令:命令行模式下,x命令会删除单个字符。
a命令:在光标后面插入。

四、nano编辑器 

nano编辑器相对于vi编辑器来说出现的较晚,1999年诞生。vi编辑器时1976年诞生。nano编辑器更加简单一些。
以下是nano常用的快捷键,这些快捷键多数是无法在windows环境下使用的,也就是说在xshell中无法使用,因为和windows很多快捷键是冲突的,在linux环境中可以用:

  1. 打开文件:nano Test.java
  2. 保存文件:ctrl + o
  3. 退出nano:ctrl + x
  4. 选中多个字符:shift + 左方向/右方向
  5. 剪切:ctrl + k
  6. 粘贴:ctrl + u
  7. 搜索:ctrl + w
  8. 替换:ctrl + \
  9. 复制选中的:alt + 6
  10. 撤销:alt + u
  11. 重做:alt + e

六、系统命令 

一、系统当前时间:date

二、切换用户 

1、su 用户名

2、sudo

表示使用超级管理员身份执行该命令,如果你当前不是管理员,希望以管理员身份执行某个命令时,使用sudo,需要输入超级管理员的密码;

三、echo命令

1、输出字符串,有点类似于System.out.println

2、echo "Hello, world!"

3、输出变量

name="John"
echo "My name is $name"

这将会输出 My name is John 和一个换行符。在输出字符串时,使用 $ 符号加上变量名即可。

4、输出多行

echo "line 1
line 2
line 3"

5、输出特殊符号

echo -e "Line 1\nLine 2\tTable"

这将会输出两行文本,第一行后接一个换行符,第二行中的 Table前有一个制表符(Table键的空格)。

四、sort命令 

sort命令可以对文件中的内容以“行”为单位进行升序和降序排列:

1、升序

2、降序

五、diff命令

1、diff命令可以用来比较两个文件的不同之处

a.txt文件内容如下:

b.txt文件内容如下:

比较a.txt和b.txt文件之间的区别:

c 表示 change,改变的意思。
1c1表示:第一个文件的第1行 和 第二个文件的第1行 发生了改变。
3c3,4表示:第一个文件的第3行 和 第二个文件的第3,4行不同,发生了改变。

 六、输出重定向

1、>:以覆盖的形式写到文件中。

2、>>:以追加的形式写到文件中。

凡是在控制台上能够打印出来的,统一都可以重定向,可以将其打印到控制台的行为重定向到文件或其它设备。

栗子:

以上方式是采用覆盖的方式,所谓覆盖方式指的是,每一次执行时,都会把 ls.txt 文件全部清空,然后重新写入。如果要以追加的方式,则需要使用 >>

七、输入重定向 

1、<:将文件内容输入给某个命令,这是一种默认的行为,通常 < 是可以省略的。

栗子:

将 a.txt 文件中的内容输入给 sort命令:

2、<<:可以接收键盘的输入,例如:

EOF是一个结束符,随意的,当键盘输入EOF之后,键盘输入则自动结束,然后sort命令将键盘输入的内容进行排序。

八、grep命令

grep 是一个强大的命令行文本搜索工具,用于在文件中查找匹配的字符串或模式,并将匹配行作为输出。

1、基本用法:

grep 'pattern' file
  • 'pattern':表示要匹配的字符串或模式。
  • file:表示要搜索的文件名。如果不指定文件名,则grep命令会从标准输入中读取数据,等待用户输入并匹配字符串。

2、在某段内容中搜索

例如: grep 0 a.txt (在a.txt中搜索0)

3、搜索多个文件

grep 'pattern' file1 file2
grep 'pattern' *.txt
  • file1file2表示要搜索的多个文件名。也可以使用通配符*.txt搜索所有扩展名为.txt的文件。

4、递归搜索目录

grep -r 'pattern' dir
  • -r表示递归搜索目录。
  • dir表示要搜索的目录。

5、显示匹配行前的几行或后的几行

grep -A 2 'pattern' file    # 显示匹配行后2行
grep -B 2 'pattern' file    # 显示匹配行前2行
grep -C 2 'pattern' file    # 显示匹配行前后各2行
  • -A表示显示匹配行后的几行。
  • -B表示显示匹配行前的几行。
  • -C表示同时显示匹配行前后的几行。这三个选项后面必须跟一个数字,表示要显示的行数。

6、同时输出匹配结果的行号

grep -n 'pattern' file
  • -n表示只输出匹配结果所在的行号。

7、忽略大小写

grep -i 'pattern' file
  • -i表示忽略大小写。

8、找出不匹配的行

grep -v 'pattern' file
  • -v输出不匹配模式的行。

9、使用正则表达式匹配:

grep -E 'pattern' file
  • -E表示使用正则表达式匹配。

九、管道

将前面命令的输出作为后面命令的输入,可以叠加。其实就是在前面命令执行的结果的基础之上执行后面命令。相当于对A结果,再次做一个执行或者说是过滤。

十、查看系统进程

1、基本语法:ps [命令参数] 

常用参数:
-e :显示当前所有进程
-f :显示 UID,PPID,C 与 STIME 栏位信息

UID:该进程的所属用户
PID:进程id
PPID:父进程id
C:CPU使用百分比
STIME:启动时间
TTY:启动该进程的终端设备是哪个
TIME:耗费的CPU时间
CMD:该进程对应的命令

十一、sleep命令 

在 Linux 中,sleep 是一个常用的命令,用于暂停程序的执行一段时间。

1、基本语法

sleep NUMBER[SUFFIX]

其中,NUMBER 为需要暂停的时间,单位是秒;SUFFIX 则可以是以下之一:

  • s:秒(默认);
  • m:分;
  • h:小时;
  • d:日。

栗子

# 暂停 3 秒
sleep 3

# 暂停 1 分钟
sleep 1m

# 暂停 2 小时
sleep 2h

# 暂停 1 天
sleep 1d

启动sleep进程,在后台暂停1天:&表示让该进程在后台运行

5277是这个sleep进程的id。

十二、kill进程

kill 进程号
kill -9 进程号(强行杀死)
killall 进程名

1、找到进程

2、杀死进程

3、杀死所有的sleep进程

十三、top命令

用于查看正在运行的系统进程信息的命令。它会实时动态地显示系统资源的使用情况,如 CPU 占用率、内存使用情况、进程情况等。通常用于系统监控和性能调优。

僵尸进程:在操作系统中,僵尸进程 (Zombie Process) 是指一个已经执行结束的进程,但其进程描述符仍然留在进程列表中,它不再执行任何其他操作,但仍然占用一定内存空间。
交换分区(Swap),也称虚拟存储器,是一种在计算机内存不足时,为了增加内存所采用的一种技术。当系统内存不足时,操作系统会把暂时不需要的内存数据和程序信息通过交换机制存储到硬盘上的交换分区中,以节省内存的使用,从而保证共享内存的进程正常运行。

按q键:退出top命令。

十四、free命令 

用于查看物理内存和交换分区的使用情况

十五、uptime命令

显示系统运行时间

十六、df命令

是 Linux 系统中的一个磁盘空间使用情况查询命令,用于显示当前文件系统的磁盘空间使用状况,以及文件系统的挂载点、磁盘大小、已用空间、可用空间、使用占比等信息 

应该重点关注以上红框中的内容,已用空间超过80%则需要重点注意,以防磁盘已满导致数据无法写入而丢失。

 十七、du命令

是 Linux 系统中的一个磁盘空间占用查询命令,用于显示文件或目录占用的磁盘空间大小。

4表示占用4个字节的空间。

十八、重启与关机

1、重启:reboot

2、关机

shutdown -h now
poweroff

都是用于关机的 Linux 命令:

  1. shutdown -h now命令会向系统发送信号,通知所有正在运行的进程停止运行,并保存当前的状态,然后关闭系统。通常会在关机前向所有用户发送通知消息。
  1. poweroff命令相较于shutdown -h now更为强制,它会立即关闭系统电源,不会等待正在运行的进程结束。使用poweroff命令时需要特别小心,因为它可能会丢失尚未保存的数据。

综上所述,shutdown -h now 命令会逐步关闭进程,允许程序释放资源并保存数据;而 poweroff 命令则会立即关闭系统电源,可能会丢失一些尚未保存的数据。因此,在正常关机的情况下,建议使用 shutdown -h now 命令;只有在意外情况下,比如系统出现严重故障等情况,才应该使用 poweroff 命令。

十九、其他相关的系统命令

1、 ifconfig命令

查看网卡的ip地址。在windows当中是:ipconfig。在linux当中是ifconfig。

2、ping命令

查看计算机之间是否可以正常通信

  • ping ip地址
  • ping 域名

3、curl命令

模拟用户访问,模拟浏览器行为。

  • 例如:curl百度一下,你就知道(可以直接查看百度首页的前端代码。)

curl 命令是 Linux 系统中的一个用于发送 HTTP 请求的工具。它支持各种协议,包括 HTTP、HTTPS、FTP、IMAP、SMTP 等,可以用于从网络中获取数据、上传文件等。

(1)基本语法:curl [options] <URL>

        其中,URL 表示要请求的目标地址。

(2)常用选项

  • -i:显示响应头信息。
  • -I:只显示响应头信息,不显示响应体。
  • -X:设置请求方法,包括 GET、POST、PUT、DELETE 等。
  • -d:设置请求体数据(POST 请求)。
  • -H:设置请求头信息。
  • -o/-O:下载文件,并保存到本地。
  • -u:设置认证信息。
  • -A:设置 User-Agent。
  • -s:静默模式,不输出进度信息。

(3)使用示例

  1. 请求一个 URL 并输出响应信息:curl www.example.com
  2. 发送 POST 请求:curl -X POST -d "name=john&age=30" www.example.com/submit
  3. 下载一个文件:curl -O www.example.com/test.zip
  4. 设置请求头信息:curl -H "User-Agent: Mozilla/5.0" www.example.com

总之,curl 命令是一个非常方便的工具,可以用于从网络中获取数据、上传文件等,并且支持多种协议和请求方式。需要注意的是,在实际使用 curl 命令时,还需要根据具体情况设置相应的选项和参数。

4、wget:下载资源

(1)语法:wget 资源地址。例如:下载tomcat :wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz

5、netstat:查看网络连接状态及端口

在实际开发中,netstat最常用的操作是查看网络连接情况。通过使用netstat命令,开发人员可以快速了解当前系统上的所有网络连接,包括正在监听的端口、建立的连接、连接状态等信息。这对于排查网络问题和监控系统状态非常有用。另外,netstat还可以用于检查网络安全,例如查看哪些端口正在被占用,是否有不安全的连接等。

以下是netstat命令的常用参数和用法

(1)查看所有的网络连接状态

netstat -a
netstat -an 添加-n参数的目的是:不将端口和IP地址转换为名称,而是直接显示数字格式的IP地址和端口号

  • LISTENING 状态:表示该端口已占用,正在监听,等待客户端的连接。
  • CONNECTED状态:表示网络连接已建立,但并没有开始数据传输。
  • ESTABLISHED 状态:表示网络已连接,数据正在传输中。
  • TIME_WAIT 状态:表示连接已经被终止,在双方都完成数据传输后,该连接会进入TIME_WAIT状态,并等待一段时间后关闭。

(2)查看所有处于监听状态的连接:netstat -l

(3)查看所有TCP连接状态:netstat -t

(4)查看所有UDP连接状态:netstat -u

(5)查看所有处于CONNECTED状态的连接:netstat -o

(6)查看指定端口的网络连接状态:netstat -an | grep 端口号

(7)查看80端口的网络连接状态:netstat -an | grep :80

七、文件内容查看命令 

一、cat命令

1、语法

用法:cat [选项]... [文件]...

常用选项:
  -n, 对输出的所有行编号
  -b, 对输出的所有行编号(不含空白行)
  -t, 将制表符(tab)显示为^I
  -e, 在每行结束处显示"$"
  -s, 当连续空白行数量大于1时,合并为1个空白行

注意:cat命令会一次性将文件的完整内容全部显示出来,不适合大文件。

2、查看文件所有内容:cat HelloWorld.java

3、查看文件所有内容,并且添加行号:cat -n HelloWorld.java

4、查看文件所有内容,添加行号,但空白行不加行号:cat -b HelloWorld.java

5、查看文件所有内容,将制表符显示为^I:cat -t HelloWorld.java

6、查看文件所有内容,在每行结束处显示"$":cat -e HelloWorld.java

7、查看文件所有内容,合并多个连续的空白行为1个空白行:cat -s HelloWorld.java

8、一次查看多个文件:cat a.txt b.txt

9、使用cat合并文件:cat a.txt b.txt > c.txt

10、加上行号之后输出到另一个文件:cat -n HelloWorld.java > HelloWorld2.java

11、清空文件内容:cat /dev/null > HelloWorld.java

二、more命令

1、more命令和cat命令的相同点和不同点

  • 相同点:more和cat在开始读取文件的时候,都是一次性的将文件全部内容装载到缓存中。
  • 不同点:cat是一次性的全部输出打印。more可以进行部分打印(一屏一屏的打印)。

2、用法

 more [选项] <文件>...

常用选项: more [选项] <文件>
 -0<number>  每个屏幕的行数
 +<number>  从行号开始显示文件
 +/<pattern>  从匹配的位置前两行开始显示内容
 -p  以清除原内容的方式进行翻页。


 
常用操作:这个是进去文件里面的快捷键操作
  回车键        【显示下一行】
  空格键        【显示下一页】
  ctrl + b     【显示上一页】
  =            【显示行号】
  :f           【显示文件名的同时显示行号】
  q            【退出more命令】

3、栗子

  1. 从第3行起,查看文件内容:more +3 log.txt

  2. 每屏显示4条记录:more -4 log.txt

  3. 从文件中查找"java"字符串的行:more +/java log.txt

  4. 查看进程,每5条为一屏,翻屏时清空原内容:ps -ef | more -5 -p

三、less命令

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。使用less 时,可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 中可以拥有更多的搜索功能。

1、语法:

less [选项] 文件

常用选项:less [选项] 文件
-g  只标志当前搜索到的关键词所在行
-I  忽略搜索时的大小写(注意:是大写I)
-m  显示类似more命令的百分比
-N  显示每行的行号
+num 从第num行开始显示



常用操作:这个是进去文件里面的操作
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能

n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)

y  向前滚动一行
回车键 向后滚动一行

u  向前滚动半页
d  向后滚动半页

b  向前翻一页
空格键 向后翻一页

g  移动到第一行
G  移动到最后一行

= 显示详细信息(第几行,共多少行,内容的字节数量等)

v  使用vim编辑器进行编辑

q  退出less 命令

[pagedown] 键盘上的向下翻动一页
[pageup] 键盘上的向上翻动一页

2、less命令标记兴趣点

在感兴趣的位置添加标记:

  • 先按m键 (set mark)
  • 输入标记名称,例如标记名字为:x

需要回到感兴趣的位置时:

  • 先按 ' 键 (goto mark)
  • 输入标记名称 x

3、less命令实时监控文件动态变化

  1. 第一步:在窗口1中执行:less +F log.txt
  2. 第二步:在窗口2中执行:ps -ef >> log.txt
  3. 注意:在监控的过程中,按 ctrl + c是终止监控,可以继续使用less命令的相关操作。按大写F,再次进入监控模式。
  4. 注意:log.txt是一个文件名。只有机器自动写入或通过输出重定向写入的才可以被监控。

4、less命令查看多个文件

less log.txt  log2.txt

  1. 输入:n 跳转到log2.txt
  2. 输入:p 跳转到log.txt

5、less命令结合管道一起使用,查询所有进程,按行号显示:ps -ef | less -N

四、head命令

1、显示文件头部内容。用法:head [选项]... [文件]...

  • 将每个指定文件的前 (如果选项中不指定就默认10行)10 行输出到标准输出。
  • 如果指定了多于一个文件,在每块输出之前附加文件名称作为头部。

2、参数:
  -c 输出前几个字符
  -n 指定行数
  -q 不显示包含给定文件名的文件头

3、栗子:

  1. 输出前三行:
  2. 前9个字符:

  3. 显示多个文件的前3行:

 五、tail命令

1、显示文件尾部内容。用法:tail [选项]... [文件]...

  • 显示每个指定文件的最后 10(默认10行) 行并输出至标准输出。
  • 若指定了多于一个文件,程序会在每段输出的开始添加相应文件名作为头。

2、参数:
  -c  输出最后几个字符
  -f  随文件增长即时输出新增数据
  -n  指定行数
  -q  不输出文件名的头

3、栗子:

  1. 默认显示文件末尾的后10行:
  2. 指定行数:

  3. 监控文件变化:tail  -f 文件名,如果再加上 -n 500 就是监控文件倒数500行,可以用来查看实时日志

六、nl命令 

1、nl命令是比较专业的显示行号的命令。

2、用法

  1. nl -b a 所有行添加行号,包括空白行;
  2. nl -b t 给行添加行号,不包括空白行(默认行为,和直接使用 nl 一样效果);
  3. nl -n ln 行号在自己栏位左侧显示;
  4. nl -n rn 行号在自己栏位的右侧显示 ;
  5. nl -n rz 显示行号,行号栏位不满时,自动补0 ;
  6. nl -w 行号栏位的占用的位数。

3、栗子

  1. nl HelloWorld.java:
  2. nl -b a HelloWorld.java;显示所有行的行号,包括空白行:

  3. nl -b t HelloWorld.java;显示行号,不包括空白行。(这是一种默认的方式,和“nl HelloWorld.java”效果一样

  4. nl -n ln HelloWorld.java;行号在行号栏位左侧显示

  5. nl -n rz HelloWorld.java;行号栏位自动补0

  6. nl -n rz -w 3 HelloWorld.java;设置栏位的字符数量;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/798481.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring AOP 实现 Excel 导出统一处理

你好&#xff0c;我是柳岸花开。在实际开发中&#xff0c;经常会遇到需要导出 Excel 数据的需求。为了避免代码重复&#xff0c;我们可以使用 Spring AOP&#xff08;面向切面编程&#xff09;来实现 Excel 导出的统一处理。本文将介绍如何使用 Spring AOP 在项目中统一处理 Ex…

三参数陷波器

传统陷波器特性 传统陷波器的传递函数为&#xff1a; 传统陷波器的 Bode 图如图所示&#xff0c;根据图中曲线表明&#xff0c;当ξ 0.1、ξ 1、 ξ 10 时&#xff0c;随着ξ 值的增加&#xff0c;陷波宽度增大&#xff0c;陷波幅值也增大&#xff0c;此时&#xff0c;陷波…

线程安全(五)volatile 修饰共享变量(JIT即时编译器、指令重排序)

目录 一、volatile 简介1.1 定义1.2 volatile 的两个特性二、特性1:保证线程间的可见性示例1:普通场景1)代码示例:2)执行结果:3)总结:示例2:被 JIT 即时编译器优化1)代码示例:2)执行结果:3)原因分析:4)什么是 JIT 即时编译器?4)解决方案一:5)解决方案二:三…

三相PWM整流器PI双闭环控制Simulink

1.模型简介 本仿真模型基于MATLAB/Simulink&#xff08;版本MATLAB 2017Rb&#xff09;软件。建议采用matlab2017 Rb及以上版本打开。&#xff08;若需要其他版本可联系代为转换&#xff09; 2.拓扑结构&#xff1a; 3.模型算法架构&#xff1a; 4.仿真算法&#xff1a; &am…

Camunda如何通过外部任务与其他系统自动交互

文章目录 简介流程图外部系统pom.xmllogback.xml监听类 启动流程实例常见问题Public Key Retrieval is not allowed的解决方法java.lang.reflect.InaccessibleObjectException 流程图xml 简介 前面我们已经介绍了Camunda的基本操作、任务、表&#xff1a; Camunda组件与服务与…

OpenStack Yoga版安装笔记(六)glance练习

1、glance架构 Glance api处理来自用户端&#xff08;OpenStackClient等&#xff09;的请求&#xff0c;如果是读写镜像元数据&#xff0c;则对glance db进行读写操作&#xff0c;因为镜像元数据都保存在glance db里面&#xff1b;如果是存取镜像本身&#xff0c;则对后端存储…

Ubuntu系统上安装Apache和WordPress

** 第一步跟新系统包 ** 首先跟新系统包 sudo apt update sudo apt upgrade第二步下载安装apache sudo apt install apache2 ##查看apache的状态是否启动成功 sudo systemctl status apache2 ##查看服务器的ip地址 sudo ip a通过ip地址进行访问apache页面 第三步下载安装…

vue3+vite从零架构:写组件、构建、打包并上传个人前端组件库至私有npm仓库最终在自己项目中下载并使用(超详细的流程,小编已实现)

目录 第一章 前言 第二章 准备工作 第三章 封装组件 3.1 文件结构 3.2 编写组件代码 第四章 项目打包 第五章 发布到npm 5.1 npm准备工作 5.2 发布npm包 ​编辑 第六章 从npm安装使用 第一章 前言 在我们很多开发过程中&#xff0c;不管是使用vue还是react&#x…

github相关命令

如果我们要从 GitHub 上拉取一个项目到本地&#xff0c;进行修改并上传回去&#xff0c;通常需要以下步骤&#xff1a; 1. 克隆远程仓库到本地 使用 git clone 命令将 GitHub 上的项目克隆到本地&#xff1a; (网址示例如下所示&#xff09; git clone https://github.com/你的…

DP- 使用最小花费爬楼梯 DAY19

使用最小花费爬楼梯 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。 …

STM32对flash中程序的加密保护

2024.7.14 今天学习了很多关于STM32对于程序的保护措施&#xff0c;原先一直不理解为什么DF CAR需要做加密&#xff0c;他的加密流程我也不是很知道&#xff0c;后面发现他是在控制任务初始化的时候&#xff0c;加了一个判断flash中某个区域的数值的程序&#xff0c;如果判断失…

易懂的吉文斯(Givens)变换(一)

文章目录 二阶Givens旋转矩阵作用于向量作用于矩阵更一般的情况 二阶Givens旋转矩阵 在QR分解中&#xff0c;Givens旋转是一种用于将矩阵变成上三角形的技术。 别的教程里面往往会直接给出一个n*n阶的通用Givens矩阵形式&#xff0c;但是这样太过抽象难懂了&#xff0c;而且难…

ceph 部署

端口号 NFS 2049 rpcbind 111 NFS 目录越深&#xff0c;写入性能越差 操作简单&#xff0c; 一.前言&#xff1a;存储知识 1、存储基础 单机存储设备 【1】DAS&#xff08;直接附加存储&#xff0c;是直接接到计算机的主板总线上去的存储&#xff09; IDE、SATA、SCSI、SAS…

记录些Redis题集(2)

Redis 的多路IO复用 多路I/O复用是一种同时监听多个文件描述符&#xff08;如Socket&#xff09;的状态变化&#xff0c;并能在某个文件描述符就绪时执行相应操作的技术。在Redis中&#xff0c;多路I/O复用技术主要用于处理客户端的连接请求和读写操作&#xff0c;以实现高并发…

《后端程序员 · Nacos 配置优先级动态刷新》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

J025_斗地主游戏案例开发(简版)

一、需求描述 完成斗地主游戏的案例开发。 业务&#xff1a;总共有54张牌&#xff1b; 点数&#xff1a;3、4、5、6、7、8、9、10、J、Q、K、A、2 花色&#xff1a;黑桃、红桃、方片、梅花 大小王&#xff1a;大王、小王 点数分别要组合4种花色&#xff0c;大小王各一张。…

mysql不初始化升级

1、下载mysql&#xff0c;下载地址&#xff1a;MySQL :: Download MySQL Community Server 2、解压下载好的mysql&#xff0c;修改配置文件的datadir指定目录为当前数据存储的目录 3、通过管理员cmd进入新版本mysql的bin目录&#xff0c; 然后执行命令安装mysql服务&#xff…

性能测试(2)

jmeter参数化 loadrunner Jmeter IP欺骗&#xff0c;也称为IP欺诈&#xff0c;是指通过伪装、篡改IP地址的方式&#xff0c;进行网络攻击或欺骗行为。这种行为可能会导致网络安全问题&#xff0c;包括身份盗窃、数据泄露、DDoS攻击等。为了保护自己的网络安全&#xff0c;用户…

「C++系列」一篇文章讲透【运算符】

文章目录 一、运算符1. 算术运算符2. 关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 条件运算符&#xff08;三元运算符&#xff09;7. 成员访问运算符8. 指针和地址运算符9. 类型转换运算符10. 其他运算符 二、其他特殊运算符1. 成员访问运算符2. 指针和地址运算符3. 类…

C语言 ——— 模拟实现strcpy函数

目录 strcpy函数功能介绍 strcpy函数的模拟实现 strcpy函数功能介绍 学习并使用strcpy函数-CSDN博客 strcpy函数的模拟实现 代码演示&#xff1a; #include<stdio.h> #include<assert.h> char* my_strcpy(char* destination, const char* source) {assert(des…