说明:Linux命令格式说明

command [-options] [parameter]
	
说明: 
	command: 	 命令名
	[-options]:  选项,可用来对命令进行控制,也可以省略
	[parameter]: 传给命令的参数,可以是零个、一个或者多个
	
注意: 
	[] 	 代表可选
	命令名、选项、参数之间有空格进行分隔

1. 基础的文件操作指令

  • ls: 列出目录中文件
  • ll : 展示当前目录中所有文件的详细信息
  • cd:切换目录
  • pwd:显示当前的目录
  • touch 文件名 创建一个文件
  • mkdir:创建一个新的目录
  • rmdir:删除一个空的目录 (不常用此命令,常用 rm -rf 文件名)
  • cp: 复制文件或目录
  • rm: 移除文件或目录
  • mv: 移动文件与目录,或修改文件与目录的名称

你可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。

常用的一些命令说明:

1.cd 命令
作用: 用于切换当前工作目录,即进入指定目录
语法: cd [dirName]
	
特殊说明: 
	~	表示用户的home目录
	. 	表示目前所在的目录
	.. 	表示目前目录位置的上级目录
	
举例: 
	cd 	..		切换到当前目录的上级目录
	cd 	~		切换到用户的home目录
	cd 	/usr/local	切换到/usr/local目录
2. rm ( 移除文件或目录 )

选项与参数:

  • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
  • -i :互动模式,在删除前会询问使用者是否动作
  • -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

常用的格式 : rm -rf 文件夹/文件名

可以尝试一下 rm -rf / (狗头保命)

3. cat 用于显示文件内容

可选参数

-n: 由1开始对所有输出的行数编号

4. more 以分页的形式显示文件内容
作用: 以分页的形式显示文件内容
语法: more fileName

操作说明:
    回车键 	向下滚动一行
    空格键 	向下滚动一屏
    b 		   返回上一屏  *
    q或者Ctrl+C	退出more
	
举例:
	more /etc/profile		以分页方式显示/etc目录下的profile文件内容
5.tail 命令(常用于动态查看日志)
作用: 查看文件末尾的内容
语法: tail [-f] fileName

说明:
	-f : 动态读取文件末尾内容并显示,通常用于日志文件的内容输出
	
举例: 
tail /etc/profile		显示/etc目录下的profile文件末尾10行的内容
tail -20 /etc/profile	显示/etc目录下的profile文件末尾20行的内容
tail -f /yfs1024/my.log	动态读取/yfs1024目录下的my.log文件末尾内容并显示

另外说到了这里,还有一个 echo命令

假如现在我们想把一段配置追加到/etc/profile 中,此时就可以使用echo命令 配合 >>

示例: echo JAVA_HOME=“xxxx” >> /etc/profile

另外如果我们想把文件中的所有的内容覆盖,此时可以配合 >

示例: echo JAVA_HOME=“xxxx” > /etc/profile

此时profile下就只有JAVA_HOME="xxxx"

6,拷贝移动命令 cp
作用: 用于复制文件或目录
语法: cp [-r] source dest

说明: 
	-r: 如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件

举例: 
    cp hello.txt yfs1024/            将hello.txt复制到yfs1024目录中
    cp hello.txt ./hi.txt           将hello.txt复制到当前目录,并改名为hi.txt
    cp -r yfs1024/ ./temp/    	将yfs1024目录和目录下所有文件复制到temp目录下
    cp -r yfs1024/* ./temp/ 	 	将yfs1024目录下所有文件复制到temp目录下
7, 打包和压缩命令

注意:

包文件后缀为.tar表示只是完成了打包,并没有压缩
包文件后缀为.tar.gz表示打包的同时还进行了压缩

作用: 对文件进行打包、解包、压缩、解压
语法: tar  [-zcxvf]  fileName  [files]
    包文件后缀为.tar表示只是完成了打包,并没有压缩
    包文件后缀为.tar.gz表示打包的同时还进行了压缩

说明:
    -z: z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
    -c: c代表的是create,即创建新的包文件
    -x: x代表的是extract,实现从包文件中还原文件
    -v: v代表的是verbose,显示命令的执行过程
    -f: f代表的是file,用于指定包文件的名称

举例:
    打包
        tar -cvf hello.tar ./*		  		将当前目录下所有文件打包,打包后的文件名为hello.tar
        tar -zcvf hello.tar.gz ./*		  	将当前目录下所有文件打包并压缩,打包后的文件名为hello.tar.gz
		
    解包
        tar -xvf hello.tar		  			将hello.tar文件进行解包,并将解包后的文件放在当前目录
        tar -zxvf hello.tar.gz		  		将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录
        tar -zxvf hello.tar.gz -C /usr/local     将hello.tar.gz文件进行解压,并将解压后的文件放在/usr/local目录

小技巧:

首先认识一个单词 create 创建

其次看一下键盘zxcvf这几个键是连着的, 不同就是x,c使用的场景, 如果是创建(create)压缩文件,那么就是zcvf 如果是解压文件 zxvf 如果忘了看一下键盘就可以想起来,很实用

2 vim编辑器

首先要知道 vim编辑器分为三个模式

命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)

作用: 对文件内容进行编辑,vim其实就是一个文本编辑器
语法: vim fileName
说明:
1). 在使用vim命令编辑文件时,如果指定的文件存在则直接打开此文件。如果指定的文件不存在则新建文件。
2). vim在进行文本编辑时共分为三种模式,分别是 命令模式(Command mode),插入模式(Insert mode)和底行模式(Last line mode)。这三种模式之间可以相互切换。我们在使用vim时一定要注意我们当前所处的是哪种模式。

三种模式:

  • 命令模式
    A. 命令模式下可以查看文件内容、移动光标(上下左右箭头、gg、G)
    B. 通过vim命令打开文件后,默认进入命令模式
    C. 另外两种模式需要首先进入命令模式,才能进入彼此
命令模式指令含义
gg定位到文本内容的第一行
G定位到文本内容的最后一行
dd删除光标所在行的数据
ndd删除当前光标所在行及之后的n行数据
u撤销操作
shift+zz保存并退出
i 或 a 或 o进入插入模式
  • 插入模式
    A. 插入模式下可以对文件内容进行编辑
    B. 在命令模式下按下[i,a,o]任意一个,可以进入插入模式。进入插入模式后,下方会出现【insert】字样
    C. 在插入模式下按下ESC键,回到命令模式

  • 底行模式
    A. 底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作
    B. 在命令模式下按下[:,/]任意一个,可以进入底行模式
    C. 通过/方式进入底行模式后,可以对文件内容进行查找
    D. 通过:方式进入底行模式后,可以输入wq(保存并退出)、q!(不保存退出)、set nu(显示行号)

    底行模式命令含义
    :wq保存并退出
    :q!不保存退出
    :q退出
    :set nu显示行号
    :set nonu取消行号显示
    :n定位到第n行, 如 :10 就是定位到第10行

加油~

3 查找命令

1. find
作用: 在指定目录下查找文件
语法: find  [搜索范围] [选项]

选项说明:
-name<查询方式>      按照指定的文件名查找模式查找文件
-user <用户名>        查找指定的文件名所有文件
-size<文件大小>       按照指定的文件大小查找文件

举例:
    find  .  –name "*.java"			在当前目录及其子目录下查找.java结尾文件
    find  /yfs1024-name "*.java"	在/yfs1024目录及其子目录下查找.java结尾的文件

示例1:

查询所有的nginx.conf文件的位置

加油呀

示例2:

按照拥有者查找: 查找/opt目录下的,用户名称为ngls

find /home -user ngls

示例3:

查找整个linux系统下大于200M的文件( +n 大于 -n 小于 n等于)

find / -size +200M

2. grep命令
作用: 从指定文件中查找指定的文本内容
语法: grep word fileName

可选参数说明:
    -i:忽略大小写进行匹配。
    -v:反向查找,只打印不匹配的行。
    -n:显示匹配行的行号。
    -r:递归查找子目录中的文件。
    -l:只打印匹配的文件名。
    -c:只打印匹配的行数。
举例: 
    grep Hello HelloWorld.java	查找HelloWorld.java文件中出现的Hello字符串的位置
    grep hello *.java			查找当前目录中所有.java结尾的文件中包含hello字符串的位置

比如说在文件夹中有一个nginx.conf文件,此时我们需要找到所有的server 关键字
加油鸭

此时就可以显示出当前文件所有server 关键字存在的行信息.

如果我们想要修改,此时就可以配合vim 编辑器来使用,这也是我们常用的手段

如下; +17 代表编辑多少行

加油加油

加油加油加油

此时就会自动的锁定到对应的位置.

3. 在vim编辑器中查找字段

说明: 这种方式我们不常用, 因为一般修改都是拷贝到本地修改

冲冲冲

在命令模式下 按下/ 后面加查找的关键字就可以找到第一个, 如果想要往下查找其他内容可以摁n,就可以找到下一个关键字的位置.

4. locate
locate指令可以快速定位文件路径.locate 指令数据库实现快速定位给定的文件.locate指令无需遍历整个文件系统,查询速度较快.为了保证查询的正确性.需要定期的更新locate

updatedb 指令来创建和更新locate数据库

早睡

4 文件的属性

基本属性

使用ll 或者 ls -l 查看完整的属性信息

在etc下使用ll命令可以看到文件的详细信息

困~!

上面的文件中第一个属性用”d”表示,"d”代表该文件是一个目录文件

常见的三个:

  • 当为[ d ]则是目录
  • 当为[ - ]则是文件;
  • 若是[ l ]则表示为链接文档 ( link file );
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。

马上

 睡觉~

上面分为三个组 ,每个组都有三个属性,问题来了我们怎么修改权限呢?

* chmod命令

语法: chmod 各个组的权限值 文件/文件夹

Linux对每个不同的权限用数字表示其中

r : 4

w: 2

x:1

用三个的和来表示当前组的权限, 是不是有点不太理解? 咱们看一下下面的图.

红色框框框住的是一个组, 第一个组是RWX,对应的就是4 + 2 + 1 = 7 第二个组是R-X,对应就是4 + 0 + 1 = 5, 第三组是r--, 对应的就是4 + 0 + 0 = 4

修改当前文件为以下权限的命令如下

chmod 754 filetest

冲冲冲

睡

5 文件上传&下载

lrzsz 是用于在Linux系统中文件上传下载的软件. 对于lrzsz的安装,我们需要通过第三种软件安装方式yum来进行安装。这里,我们先对yum做一个简单介绍。

yum list lrzsz // 搜索安装包

yum install lrzsz.x86_64 // 在线安装

rz         上传
sz 文件名   下载

6 前台启动和后台启动(先看补充的7)

操作系统中,前台进程和后台进程有什么区别?特征是什么?

后台程序基本上不和用户交互,优先级别稍微低一点

前台的程序和用户交互,需要较高的响应速度,优先级别稍微高一点

睡

示例: 此时需要将 helloworld-1.0-SNAPSHOT.jar 后台启动

java -jar helloworld-1.0-SNAPSHOT.jar & // 后面的&代表是后台启动


陆续补充中~~~~~

7 进程管理

ps命令
1) 在 LINUX 中,每个执行的程序都称为一个进程。每一个进程都分配一个 ID 号(pid,进程号)2) 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
3) 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

显示系统执行的进程:

ps 命令是用来查看目前系统中,有哪些正在执行的进程,以及他们执行的状况.

说明:
     -a   显示当前终端的所有进程消息
     -u   以用户的格式显示进程信息
     -x   显示后台进程运行的参数
     
     -e   显示所有的进程
	 -f   全格式

使用 ps -aux 可以查看一下进程信息

在这里插入图片描述

对于 stat 列这里做一个说明. (资料来自Claude, 可能会有错,大致了解一下即可)
    - R(Running):运行,表示进程正在运行或在运行队列中等待。
    - S(Sleeping):睡眠,表示进程正在等待某个条件的形成或接受到信号。
    - D(Disk Sleep):表示进程正在等待磁盘IO操作结束。短期等待
    - s-表示该进程是会话的先导进程
    - N-表示进程拥有比普通优先级更低的优先级
    - Z(Zombie):表示进程已终止但父进程还未向系统回报信息。僵死进程
    - T(Stopped):暂停,表示进程收到SIGTSTP信号后暂停运行。被跟踪或者被停止
    - t(Tracing Stop):表示进程在被调试时暂停运行。
    - X(Dead):死亡,表示进程已经结束,但是父进程还没有回收它的信息。
    - x(Dead):死亡,表示进程结束且被回收。
    - K(Wakekill):表示进程处于不可中断的睡眠状态,即使接收到信号也不会唤醒。
    - W(Paging):表示进程正在进行换页操作,无法调度执行。
    - P(Parked):表示进程已经准备就绪,但是还没有被调度执行。
  
    s+表示:
    - 进程正在运行中,正在占用CPU执行
    - 进程准备就绪,正在运行队列中等待CPU调度

注意: 在这里可能会发现一下子把所有的进程信息都够显示了,那么我们想一部分一部分的查看应该怎么办呢?

Linux提供了 一个叫做管道的技术 名字很高大上其实很好理解 首先了解这个符号 | 将竖线表示管道, 作用呢, 就是将符号前面的输出结果作为后面的输入结果.

比如上面查看进程的信息,我们就将查询之后的结果 通过管道在进一步的处理, 其实也可以理解为java 中的stream流, 像流水线一样,一步一步的处理, 对于结果就可以使用more, grep ,tail 等对文本操作的命令,进行具体的查看, 处理如下

ps -aux | more                -- 此时就会分页查询   空格往下翻页   
ps -aux | grep nginx		 -- 此时就可以查看关于nginx 的进程信息

在这里插入图片描述

如果细心观察会发现第一行有个grep , 其实这里可以理解为 当前命令也是一个进程 因为当前进程也包含nginx 所以也会被扫描出来.

下面可以做一个测试, 比如说 输入一个没有的进程关键字 rediss, 此时发现还会有, 那么毋庸置疑就是当前命令的进程

在这里插入图片描述

下面来看关于ps命令 巨巨巨巨巨常用的形式

ps -ef | grep 关键词 – 这里的关键词就是想要查询的应用的名称 比如 mysql nginx redis

终止进程 kill 和 killall
若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用 kill 命令来完成此项任务。
kill    [选项] 进程号(功能描述:通过进程号杀死/终止进程)
killall 进程名称(功能描述:通过进程名称杀死进程,`包括子进程`,也支持通配符,这在系统因负载过大而变得很慢时很有用)

常用选项:
-9     表示强迫进程立即停止

常用的就是先通过 ps -ef | grep 关键字 查看进程号 信息的第二列

然后通过 kill -9 进程号 进行关闭进程, 这种方式相对暴力

8 监控网络状态

查看系统网络情况netstat
基本语法
	netstat [选项]
选项说明
	-an   按一定顺序排列输出
	-p    显示哪个进程在调用

常用也是配合管道使用 示例如下

netstat -anp | grep XXXX

9 服务管理

在 CentOS7.0 后 很多服务不再使用 service ,而是 systemctl

基本语法: 
systemctl    [start | stop | restart | status] 服务名

systemctl    指令管理的服务在 /usr/lib/systemd/system 查看

在 /usr/lib/systemd/system 查看,比如说防火墙的服务

在这里插入图片描述

那么关闭防火墙的命令就是systemctl stop firewalld.service 这里的具体的服务名称可能会忘,那么就多按tab键让Linux提示

这里用 d开头的服务举例子, 示例如下

在这里插入图片描述

此时就会提示你d开头的服务,然后再选择,就很方便

systemctl stop firewalld.service    -- 关闭防火墙
systemctl status firewalld.service  -- 查看防火墙的状态
systemctl start firewalld.service   -- 开启防火墙

设置服务状态

systemctl list-unit-files    [ | grep 服务名] (查看服务开机启动状态, grep 可以进行过滤) 
systemctl enable 服务名 (设置服务开机启动)
systemctl disable 服务名 (关闭服务开机启动)
systemctl is-enabled  服务名 (查询某个服务是否是自启动的)

示例: 比如说查看firewalld, 即防火墙的状态 这里是开机自启, 当然也可以使用 systemctl is-enabled 服务名来查看

在这里插入图片描述

服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,

比如(mysqld , sshd,防火墙等),因此我们又称为守护进程,是 Linux 中非常重要的知识点。示例如下

在这里插入图片描述

对于服务其实我们常用的就是防火墙的一些配置, 比如开放端口, 关闭端口.上图已经很清晰了, 下面就对具体的指令来做一个说明和演示

firewall 指令        (permanent 永久)
打开端口:    		  firewall-cmd --permanent --add-port=端口号/协议
关闭端口:    		  firewall-cmd --permanent --remove-port=端口号/协议
重新载入,才能生效 :     firewall-cmd --reload
查询端口是否开放:      firewall-cmd --query-port=端口/协议
查看防火墙的基本信息:   firewall-cmd --list-all
防火墙的设置

1. 使用 firewall-cmd --list-all 查看开放的端口

在这里插入图片描述

可以看到此时6379端口是在开放, 此时我们可以通过 关闭端口命令关闭此端口

2. 使用firewall-cmd --permanent --remove-port=端口号/协议关闭端口

在这里插入图片描述

移除端口以后再查询会发现还有这个端口? 这是为什么, 此时可以理解为 移除的命令只是将内存中的移除, 但是实际的磁盘中的配置并没有移除, 此时就需要通过加载命令,将内存中的数据写到磁盘中, 如下:

在这里插入图片描述

3. 放开端口 firewall-cmd --permanent --add-port=端口号/协议

在这里插入图片描述

此此时就和上面一样, 在更新配置之后一定要加载一下, 这样才是真正的配置完成

另外在Linux还有一个概念叫做运行级别,这里简单的提一下做一个简单的了解一般不会涉及

运行级别: 用于控制系统启动时运行的进程和服务。不同的运行级别对应不同的系统配置和提供的服务。

Linux 系统有 7 种运行级别(runlevel):常用的是级别 3 和 5
运行级别 0:系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动
运行级别 1:单用户工作状态,root 权限,用于系统维护,禁止远程登陆
运行级别 2:多用户状态(没有 NFS),不支持网络
运行级别 3:完全的多用户状态(有 NFS),无界面,登陆后进入控制台命令行模式
运行级别 4:系统未使用,保留
运行级别 5:X11 控制台,登陆后进入图形 GUI 模式
运行级别 6:系统正常关闭并重启,默认运行级别不能设为 6,否则不能正常启动

开机的流程说明:
在这里插入图片描述

说明:
开发中常用命令应该基本就这些了,如果还有未提及且以后我用到的话会继续的补充,兄弟们加油!!!

因为自己还在学习中, 可能文章中一些描述可能会有一些问题, 也可能手误打错了指令, 若您发现还望指正

Logo

更多推荐