开发必备的常用 Linux 命令整理

这篇具有很好参考价值的文章主要介绍了开发必备的常用 Linux 命令整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在前面的文章中,截止到 微服务系列:分布式日志 ELK 搭建指南 这篇,我们终于算是将微服务系列给基本学完了,一时间难以决定接下来要写些什么东西。

想了想还是决定写几篇 Linux 相关命令的文章,毕竟平时也经常去 Linux 服务器上部署项目,你可能会问,部署这块不应该是运维的工作嘛?不好意思,小公司没有专业运维,都是我们开发自己来。所以,熟悉一些常用的 Linux 命令还是很有必要的。

当然,最主要的目的还是自己写下来,印象会更深刻,并且方便以后查阅,毕竟收藏的别人的文章基本都在收藏夹里吃灰哈哈,不如自己动手写下来。本篇可能暂时不会放太多命令,但应该会持续更新的。

一、文件和目录

贴一张 Linux 系统的各个目录的含义,图片来自 2万字系统总结,带你实现 Linux 命令自由?

开发常用linux命令,linux,java,运维,服务器,开发语言

1. cd 命令

最基本的、最常用的命令之一,用于切换目录,参数既可以是绝对路径,也可以是相对路径。

cd /			# 切换到根目录
cd ~			# 切换到 /root 目录
cd ..			# 切换到上级目录
cd /usr/local/	# 切换到目录 /usr/local(绝对路径)
cd ./java/		# 切换到当前目录下的 java 目录中,“.” 表示当前目录,或者直接 cd java/ 效果一样
cd ../java/		# 切换到上层目录中的 java 目录中,“.” 表示上一层目录
2. ls 命令

同样是最基本、最常用的命令之一,list 的意思,查看当前文件夹下的内容,它的参数很多,只贴几个较为常用的:

-a		# 列出当前文件夹下全部的文件,连同隐藏文件(开头为.的文件)一起列出来
-l		# 列出当前文件夹下文件的详细信息,包含文件的属性与权限数据等,ll 命令相当于此命令的快捷键
-h		# 将文件容量以较易读的方式(GB,kB等)列出来
-R		# 连同子目录的内容一起列出(递归列出)
-i		# 按文件最近一次修改时间排序

注:这些参数可以组合使用,比如

ls -lh 		# 在列出文件的详细信息同时查看文件的大小
ls -alht	# 这个组合命令你应该可以推断出来它的意思
3. cp 命令

用于复制文件,copy 的意思,常用参数如下:

-a		# 将文件的特性一起复制
-p		# 连同文件的属性一起复制,而非使用默认方式,与 -a 相似,常用于备份
-i		# 若目标文件已经存在时,在覆盖时会先询问操作的进行
-r		# 递归持续复制,用于目录的复制行为
-u		# 目标文件与源文件有差异时才会复制

例如:

cp -a file1 file2 			# 连同文件的所有特性把文件file1复制成文件file2
cp file1 file2 file3 dir 	# 把文件file1、file2、file3复制到目录dir中
4. mv 命令

用于移动文件、目录、或者重命名,move 的意思,常用参数如下:

-f		# force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i		# 若目标文件已经存在,就会询问是否覆盖
-u		# 若目标文件已经存在,且比目标文件新,才会更新

例如:

mv file1 file2 file3 dir 	# 把文件 file1、file2、file3 移动到目录 dir 中
mv file1 file2 				# 把文件 file1 重命名为 file2
5. rm 命令

用于删除文件或目录,remove 的意思,由于 Linux 下没有回收站,一旦删除非常难恢复,因此需要谨慎操作,常用参数如下:

-f		# 就是 force 的意思,忽略不存在的文件,不会出现警告消息
-i		# 互动模式,在删除前会询问用户是否操作
-r		# 递归删除,最常用于目录删除,它是一个非常危险的参数

例如:

rm -i file 		# 删除文件 file,在删除之前会询问是否进行该操作
rm -rf dir 		# 强制删除目录 dir 中的所有文件
6. pwd 命令

显示当前目录的路径

开发常用linux命令,linux,java,运维,服务器,开发语言

7. which 命令

查看命令的可执行文件所在路径,例如:

which java

开发常用linux命令,linux,java,运维,服务器,开发语言

8. du 命令

用于显示目录或文件的大小,disk usage 的意思,常用参数如下:

-h		# 以K,M,G为单位,提高信息的可读性
-a		# 同时列举出目录下文件的大小信息
-s		# 只显示总计大小,不显示具体信息
-b		# 显示目录或文件大小时,以byte为单位

例如:

开发常用linux命令,linux,java,运维,服务器,开发语言

9. cat 命令

一次性显示文件所有内容,更适合查看小的文件,concatenate 的意思,更官方一点的说法是 用于连接文件并打印到标准输出设备上。常用参数如下:

-n		# 由 1 开始对所有输出的行数编号
-b		# 和 -n 相似,只不过对于空白行不编号

例如:

cat -n info.log		# 显示 info.log 的所有内容,并加上行号
cat -n textfile1 > textfile2	# 把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里,原 textfile2 文档内容会被覆盖
10. less 命令

分页显示文件内容,更适合查看大的文件。

less info.log

快捷操作:

  • 空格键:前进一页(一个屏幕);
  • b 键:后退一页;
  • 回车键:前进一行;
  • y 键:后退一行;
  • 上下键:回退或前进一行;
  • d 键:前进半页;
  • u 键:后退半页;
  • q 键:停止读取文件,中止 less 命令;
  • = 键:显示当前页面的内容是文件中的第几行到第几行以及一些其它关于本页内容的详细信息;
  • h 键:显示帮助文档;
  • / 键:进入搜索模式后,按 n 键跳到一个符合项目,按 N 键跳到上一个符合项目,同时也可以输入正则表达式匹配。

例如:

ps -ef | less 		# ps查看进程信息并通过less分页显示

还有一个命令 moreless 对应,只是 more 不能后退,日常使用中用 less 就够了。

11. find 命令

用于查找文件,它会去遍历你的实际硬盘进行查找,而且它允许我们对每个找到的文件进行后续操作,功能非常强大。

find <何处> <何物> <做什么>
  • 何处:指定在哪个目录查找,此目录的所有子目录也会被查找。
  • 何物:查找什么,可以根据文件的名字来查找,也可以根据其大小来查找,还可以根据其最近访问时间来查找。
  • 做什么:找到文件后,可以进行后续处理,如果不指定这个参数, find 命令只会显示找到的文件。

find 的使用也相对较为复杂,参数也比较多,我也不想全部列出来,只贴几个实际使用的例子好了:

find -name "info.log"			# 在当前目录以及子目录下查找名字叫做 info.log 的文件
find / -name "info.log"			# 整个硬盘下查找 info.log
find /root/ytb -name "*.log"	# 在指定目录下查找 *.log 等文件,* 表示所有

其他还有 根据文件最近访问时间查找、操作查找结果 等一般也用不到,就不贴了。

12. file 命令

这个命令比较简单,用于辨识文件类型。例如:

开发常用linux命令,linux,java,运维,服务器,开发语言

13. tar 命令

该命令用于对文件进行打包或者解压缩,常用参数如下:

-c 			# 新建打包文件
-t 			# 查看打包文件的内容含有哪些文件名
-x 			# 解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-z 			# 通过gzip的支持进行压缩/解压缩
-v 			# 在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename # filename为要处理的文件

tar 的相关参数也非常多,看下面几个例子也就简单的会用了:

tar -czvf test.tar.gz info.log		# 压缩 info.log 文件到 test.tar.gz
tar -zxvf test.tar.gz				# 解压缩 test.tar.gz
tar -tzvf test.tar.gz				# 列出压缩文件内容

开发常用linux命令,linux,java,运维,服务器,开发语言

除了 tar 命令之外,linux 还有 zip/unzip 命令来压缩或者解压 .zip 文件(zip 压缩文件一般来自于 windows 操作系统)

如果没有这两个命令,可以安装一下:

yum install zip 
yum install unzip
14. head 命令

显示文件的开头几行(默认是10行)

head gc.log

开发常用linux命令,linux,java,运维,服务器,开发语言

参数:

  • -n 指定行数 head -n 5 gc.log
15. tail 命令

显示文件的结尾几行(默认是10行)

tail gc.log

开发常用linux命令,linux,java,运维,服务器,开发语言

参数:

  • -n 指定行数 tail -n 5 gc.log
  • -f 会每过1秒检查下文件是否有更新内容,tail -f gc.log

实际开发中,我们经常去服务器上查看系统错误日志,一般会这样用

tail -f -n 500 info.log			# 实时查看最后 500 行日志

二、用户与权限

这两个东西实际上我还真用到过,比如说 linux 系统上安装的 elasticsearchkibana 等需要用非 root 用户才能启动。

1. su 命令

用于变更为其他使用者的身份,switch user 的意思。

su root			# 切换到 root 用户
2. useradd + passwd 命令
  • useradd 添加新用户
  • passwd 修改用户密码

这两个命令需要 root 用户权限

useradd es			# 添加一个 es 用户,添加完成后,在 /home 路径下可以查看到这个 es 目录
passwd es			# 修改 es 用户的密码
3. userdel 命令

删除用户,需要 root 用户权限

userdel lion		# 只会删除用户名,不会从/home中删除对应文件夹
userdel lion -r 	# 会同时删除/home下的对应文件夹
4. sudo 命令

root 身份运行命令

5. chown 命令

改变文件的所有者,需要 root 身份才能运行,参数:

  • -R 递归设置子目录和子文件
chown -R es:es /usr/local/elasticsearch-8.0			# 把 elasticsearch-8.0 文件夹的用户和群组都改为 es
6. chmod 命令

修改访问权限,常用参数:

  • -R 递归地修改文件访问权限

这个命令还有一些深层次的东西,稍微复杂,我也不想再详细的讲解下去了,一般都是这样使用:

chmod 777 info.log				# 给 info.log 最高权限
chmod -R 777 /usr/local/java	# 递归给 /usr/local/java/ 最高权限

三、文本操作

说到文本操作,最常用的还是 grep 命令了,在工作中进行部署项目的时候,需要 kill 掉某个进程时用到这个命令来查找进程号。

1. grep 命令

grep 命令用于查找文件里符合条件的字符串,换句话说是在文件中查找关键字,并显示关键字所在行。

例如:

grep export /etc/profile

开发常用linux命令,linux,java,运维,服务器,开发语言

常用参数:

  • -i 忽略大小写,grep -i path /etc/profile
  • -n 显示行号,grep -n path /etc/profile
  • -v 只显示搜索文本不在的那些行,grep -v path /etc/profile
  • -r 递归查找,grep -r hello /etc,Linux 中还有一个 rgrep 命令,作用相当于grep -r

四、重定向、管道

学习重定向,我们需要了解 Linux 中的 标准输入标准输出标准错误输出

名称 代码 操作符
标准输入(stdin) 0 < 或 <<
标准输出(stdout) 1 >, >>, 1> 或 1>>
标准错误输出(stderr) 2 2> 或 2>>
1. 输出重定向 >

> 表示重定向到新的文件,我们在运行 jar 包的时候,经常会将日志重定向到一个特定目录的特定文件中,例如:

nohup java -jar cloud-system.jar > cloud-system.log &

注意:

使用 > 要注意,如果输出的文件不存在它会新建一个,如果输出的文件已经存在,则会覆盖。因此执行这个操作要非常小心,以免覆盖其它重要文件。

2. 输出重定向 >>

这个表示重定向到文件末尾,即将内容追加到文件的末尾,而不像 > 命令会直接覆盖文件内容。同样的,如果文件不存在,也会被创建。

所以,对于我们的项目的启动的日志,最好是使用 >> 命令,建议

nohup java -jar cloud-system.jar >> cloud-system.log &
3. 输出重定向 2>

标准错误输出,例如:

nohup java -jar cloud-system.jar > cloud-system.log 2> error.log &

启动后,标准输出写入文件 cloud-system.log2> error.log 当发生错误时会写入 error.log 文件中。

4. 输出重定向 2>>

标准错误输出(追加到文件末尾)类似 >>

5. 输出重定向 2>&1

标准输出和标准错误输出都重定向都一个地方

nohup java -jar cloud-system.jar > info.log 2>&1 &
6. 管道 |

把两个命令连起来使用,一个命令的输出作为另外一个命令的输入。

说实话,管道这个命令的功能还是很强大的,我们直接来看例子

【实例 1】

ls | grep gc.log.00

开发常用linux命令,linux,java,运维,服务器,开发语言

此命令功能是查看文件 gc.log.00 是否存在于当前目录下。

即将 ls 输出的内容当做 grep 命令的输入。

【实例 2】

cat gc.log | less

使用管道将 cat 命令的输出作为 less 命令的输入,这样就可以将 cat 命令的输出每次按照一个屏幕的长度显示。

【实例 3】

ps -ef | grep cloud-system.jar

这个命令平时使用的还是比较多的,ps -ef 命令是列出所有进程的意思,这个命令的意思就是 查找出和 cloud-system.jar 有关的进程

五、进程

1. ps 命令

用于显示当前系统中的进程,英文全拼: process statusps 命令显示的进程列表不会随时间而更新,是静态的,是运行 ps 命令那个时刻的状态或者说是一个进程快照。

常用参数:

  • -ef 列出所有进程;
  • -u 列出此用户运行的进程;
  • -aux 通过 CPU 和内存使用来过滤进程 ps -aux | less ;
  • -aux --sort -pcpuCPU 使用降序排列, -aux --sort -pmem 表示按内存使用降序排列
  • -axjf 以树形结构显示进程, ps -axjf 它和 pstree 效果类似。

管道 中的【实例 3】中,我们用到了这个命令,是非常常用的。

ps -ef | grep cloud-system.jar
2. top 命令

获取进程的动态列表。

开发常用linux命令,linux,java,运维,服务器,开发语言

  • 展示的这些进程是按照使用处理器 %CPU 的使用率来排序的。
3. kill 命令

结束一个进程, kill + PID

kill 11056 			# 结束进程号为956的进程
kill 11056 11057 	# 结束多个进程
kill -9 4568 		# 强制结束进程
4. & 命令

启动后台进程,它的缺点是后台进程与终端相关联,一旦关闭终端,进程就自动结束了。

npm run dev &
5. nohup 命令

用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。英文全称:no hang up,

nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下

nohup npm run dev

nohup 命令也可以和 & 结合使用,后台启动并可以退出终端,程序运行不会中断。

nohup npm run dev &
6. jobs 命令

显示当前终端后台进程状态。

开发常用linux命令,linux,java,运维,服务器,开发语言

注意:

jobs 是查看当前终端的后台进程状态,如果你退出终端,再次连接终端则看不到上一个被关闭终端的后台进程,但其实进程还在。

六、系统

1. halt 命令

关闭系统,需要 root 身份。

halt
2. reboot 命令

重启系统,需要 root 身份。

reboot
3. poweroff

直接运行即可关机,不需要 root 身份。

poweroff

暂时写到这里,后面应该会继续补充的。

文章参考:2万字系统总结,带你实现 Linux 命令自由文章来源地址https://www.toymoban.com/news/detail-727251.html

来源:https://blog.csdn.net/zhang33565417/article/details/123228215

在前面的文章中,截止到 微服务系列:分布式日志 ELK 搭建指南 这篇,我们终于算是将微服务系列给基本学完了,一时间难以决定接下来要写些什么东西。

想了想还是决定写几篇 Linux 相关命令的文章,毕竟平时也经常去 Linux 服务器上部署项目,你可能会问,部署这块不应该是运维的工作嘛?不好意思,小公司没有专业运维,都是我们开发自己来。所以,熟悉一些常用的 Linux 命令还是很有必要的。

当然,最主要的目的还是自己写下来,印象会更深刻,并且方便以后查阅,毕竟收藏的别人的文章基本都在收藏夹里吃灰哈哈,不如自己动手写下来。本篇可能暂时不会放太多命令,但应该会持续更新的。

一、文件和目录

贴一张 Linux 系统的各个目录的含义,图片来自 2万字系统总结,带你实现 Linux 命令自由?

开发常用linux命令,linux,java,运维,服务器,开发语言

1. cd 命令

最基本的、最常用的命令之一,用于切换目录,参数既可以是绝对路径,也可以是相对路径。

cd /			# 切换到根目录
cd ~			# 切换到 /root 目录
cd ..			# 切换到上级目录
cd /usr/local/	# 切换到目录 /usr/local(绝对路径)
cd ./java/		# 切换到当前目录下的 java 目录中,“.” 表示当前目录,或者直接 cd java/ 效果一样
cd ../java/		# 切换到上层目录中的 java 目录中,“.” 表示上一层目录
2. ls 命令

同样是最基本、最常用的命令之一,list 的意思,查看当前文件夹下的内容,它的参数很多,只贴几个较为常用的:

-a		# 列出当前文件夹下全部的文件,连同隐藏文件(开头为.的文件)一起列出来
-l		# 列出当前文件夹下文件的详细信息,包含文件的属性与权限数据等,ll 命令相当于此命令的快捷键
-h		# 将文件容量以较易读的方式(GB,kB等)列出来
-R		# 连同子目录的内容一起列出(递归列出)
-i		# 按文件最近一次修改时间排序

注:这些参数可以组合使用,比如

ls -lh 		# 在列出文件的详细信息同时查看文件的大小
ls -alht	# 这个组合命令你应该可以推断出来它的意思
3. cp 命令

用于复制文件,copy 的意思,常用参数如下:

-a		# 将文件的特性一起复制
-p		# 连同文件的属性一起复制,而非使用默认方式,与 -a 相似,常用于备份
-i		# 若目标文件已经存在时,在覆盖时会先询问操作的进行
-r		# 递归持续复制,用于目录的复制行为
-u		# 目标文件与源文件有差异时才会复制

例如:

cp -a file1 file2 			# 连同文件的所有特性把文件file1复制成文件file2
cp file1 file2 file3 dir 	# 把文件file1、file2、file3复制到目录dir中
4. mv 命令

用于移动文件、目录、或者重命名,move 的意思,常用参数如下:

-f		# force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i		# 若目标文件已经存在,就会询问是否覆盖
-u		# 若目标文件已经存在,且比目标文件新,才会更新

例如:

mv file1 file2 file3 dir 	# 把文件 file1、file2、file3 移动到目录 dir 中
mv file1 file2 				# 把文件 file1 重命名为 file2
5. rm 命令

用于删除文件或目录,remove 的意思,由于 Linux 下没有回收站,一旦删除非常难恢复,因此需要谨慎操作,常用参数如下:

-f		# 就是 force 的意思,忽略不存在的文件,不会出现警告消息
-i		# 互动模式,在删除前会询问用户是否操作
-r		# 递归删除,最常用于目录删除,它是一个非常危险的参数

例如:

rm -i file 		# 删除文件 file,在删除之前会询问是否进行该操作
rm -rf dir 		# 强制删除目录 dir 中的所有文件
6. pwd 命令

显示当前目录的路径

开发常用linux命令,linux,java,运维,服务器,开发语言

7. which 命令

查看命令的可执行文件所在路径,例如:

which java

开发常用linux命令,linux,java,运维,服务器,开发语言

8. du 命令

用于显示目录或文件的大小,disk usage 的意思,常用参数如下:

-h		# 以K,M,G为单位,提高信息的可读性
-a		# 同时列举出目录下文件的大小信息
-s		# 只显示总计大小,不显示具体信息
-b		# 显示目录或文件大小时,以byte为单位

例如:

开发常用linux命令,linux,java,运维,服务器,开发语言

9. cat 命令

一次性显示文件所有内容,更适合查看小的文件,concatenate 的意思,更官方一点的说法是 用于连接文件并打印到标准输出设备上。常用参数如下:

-n		# 由 1 开始对所有输出的行数编号
-b		# 和 -n 相似,只不过对于空白行不编号

例如:

cat -n info.log		# 显示 info.log 的所有内容,并加上行号
cat -n textfile1 > textfile2	# 把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里,原 textfile2 文档内容会被覆盖
10. less 命令

分页显示文件内容,更适合查看大的文件。

less info.log

快捷操作:

  • 空格键:前进一页(一个屏幕);
  • b 键:后退一页;
  • 回车键:前进一行;
  • y 键:后退一行;
  • 上下键:回退或前进一行;
  • d 键:前进半页;
  • u 键:后退半页;
  • q 键:停止读取文件,中止 less 命令;
  • = 键:显示当前页面的内容是文件中的第几行到第几行以及一些其它关于本页内容的详细信息;
  • h 键:显示帮助文档;
  • / 键:进入搜索模式后,按 n 键跳到一个符合项目,按 N 键跳到上一个符合项目,同时也可以输入正则表达式匹配。

例如:

ps -ef | less 		# ps查看进程信息并通过less分页显示

还有一个命令 moreless 对应,只是 more 不能后退,日常使用中用 less 就够了。

11. find 命令

用于查找文件,它会去遍历你的实际硬盘进行查找,而且它允许我们对每个找到的文件进行后续操作,功能非常强大。

find <何处> <何物> <做什么>
  • 何处:指定在哪个目录查找,此目录的所有子目录也会被查找。
  • 何物:查找什么,可以根据文件的名字来查找,也可以根据其大小来查找,还可以根据其最近访问时间来查找。
  • 做什么:找到文件后,可以进行后续处理,如果不指定这个参数, find 命令只会显示找到的文件。

find 的使用也相对较为复杂,参数也比较多,我也不想全部列出来,只贴几个实际使用的例子好了:

find -name "info.log"			# 在当前目录以及子目录下查找名字叫做 info.log 的文件
find / -name "info.log"			# 整个硬盘下查找 info.log
find /root/ytb -name "*.log"	# 在指定目录下查找 *.log 等文件,* 表示所有

其他还有 根据文件最近访问时间查找、操作查找结果 等一般也用不到,就不贴了。

12. file 命令

这个命令比较简单,用于辨识文件类型。例如:

开发常用linux命令,linux,java,运维,服务器,开发语言

13. tar 命令

该命令用于对文件进行打包或者解压缩,常用参数如下:

-c 			# 新建打包文件
-t 			# 查看打包文件的内容含有哪些文件名
-x 			# 解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-z 			# 通过gzip的支持进行压缩/解压缩
-v 			# 在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename # filename为要处理的文件

tar 的相关参数也非常多,看下面几个例子也就简单的会用了:

tar -czvf test.tar.gz info.log		# 压缩 info.log 文件到 test.tar.gz
tar -zxvf test.tar.gz				# 解压缩 test.tar.gz
tar -tzvf test.tar.gz				# 列出压缩文件内容

开发常用linux命令,linux,java,运维,服务器,开发语言

除了 tar 命令之外,linux 还有 zip/unzip 命令来压缩或者解压 .zip 文件(zip 压缩文件一般来自于 windows 操作系统)

如果没有这两个命令,可以安装一下:

yum install zip 
yum install unzip
14. head 命令

显示文件的开头几行(默认是10行)

head gc.log

开发常用linux命令,linux,java,运维,服务器,开发语言

参数:

  • -n 指定行数 head -n 5 gc.log
15. tail 命令

显示文件的结尾几行(默认是10行)

tail gc.log

开发常用linux命令,linux,java,运维,服务器,开发语言

参数:

  • -n 指定行数 tail -n 5 gc.log
  • -f 会每过1秒检查下文件是否有更新内容,tail -f gc.log

实际开发中,我们经常去服务器上查看系统错误日志,一般会这样用

tail -f -n 500 info.log			# 实时查看最后 500 行日志

二、用户与权限

这两个东西实际上我还真用到过,比如说 linux 系统上安装的 elasticsearchkibana 等需要用非 root 用户才能启动。

1. su 命令

用于变更为其他使用者的身份,switch user 的意思。

su root			# 切换到 root 用户
2. useradd + passwd 命令
  • useradd 添加新用户
  • passwd 修改用户密码

这两个命令需要 root 用户权限

useradd es			# 添加一个 es 用户,添加完成后,在 /home 路径下可以查看到这个 es 目录
passwd es			# 修改 es 用户的密码
3. userdel 命令

删除用户,需要 root 用户权限

userdel lion		# 只会删除用户名,不会从/home中删除对应文件夹
userdel lion -r 	# 会同时删除/home下的对应文件夹
4. sudo 命令

root 身份运行命令

5. chown 命令

改变文件的所有者,需要 root 身份才能运行,参数:

  • -R 递归设置子目录和子文件
chown -R es:es /usr/local/elasticsearch-8.0			# 把 elasticsearch-8.0 文件夹的用户和群组都改为 es
6. chmod 命令

修改访问权限,常用参数:

  • -R 递归地修改文件访问权限

这个命令还有一些深层次的东西,稍微复杂,我也不想再详细的讲解下去了,一般都是这样使用:

chmod 777 info.log				# 给 info.log 最高权限
chmod -R 777 /usr/local/java	# 递归给 /usr/local/java/ 最高权限

三、文本操作

说到文本操作,最常用的还是 grep 命令了,在工作中进行部署项目的时候,需要 kill 掉某个进程时用到这个命令来查找进程号。

1. grep 命令

grep 命令用于查找文件里符合条件的字符串,换句话说是在文件中查找关键字,并显示关键字所在行。

例如:

grep export /etc/profile

开发常用linux命令,linux,java,运维,服务器,开发语言

常用参数:

  • -i 忽略大小写,grep -i path /etc/profile
  • -n 显示行号,grep -n path /etc/profile
  • -v 只显示搜索文本不在的那些行,grep -v path /etc/profile
  • -r 递归查找,grep -r hello /etc,Linux 中还有一个 rgrep 命令,作用相当于grep -r

四、重定向、管道

学习重定向,我们需要了解 Linux 中的 标准输入标准输出标准错误输出

名称 代码 操作符
标准输入(stdin) 0 < 或 <<
标准输出(stdout) 1 >, >>, 1> 或 1>>
标准错误输出(stderr) 2 2> 或 2>>
1. 输出重定向 >

> 表示重定向到新的文件,我们在运行 jar 包的时候,经常会将日志重定向到一个特定目录的特定文件中,例如:

nohup java -jar cloud-system.jar > cloud-system.log &

注意:

使用 > 要注意,如果输出的文件不存在它会新建一个,如果输出的文件已经存在,则会覆盖。因此执行这个操作要非常小心,以免覆盖其它重要文件。

2. 输出重定向 >>

这个表示重定向到文件末尾,即将内容追加到文件的末尾,而不像 > 命令会直接覆盖文件内容。同样的,如果文件不存在,也会被创建。

所以,对于我们的项目的启动的日志,最好是使用 >> 命令,建议

nohup java -jar cloud-system.jar >> cloud-system.log &
3. 输出重定向 2>

标准错误输出,例如:

nohup java -jar cloud-system.jar > cloud-system.log 2> error.log &

启动后,标准输出写入文件 cloud-system.log2> error.log 当发生错误时会写入 error.log 文件中。

4. 输出重定向 2>>

标准错误输出(追加到文件末尾)类似 >>

5. 输出重定向 2>&1

标准输出和标准错误输出都重定向都一个地方

nohup java -jar cloud-system.jar > info.log 2>&1 &
6. 管道 |

把两个命令连起来使用,一个命令的输出作为另外一个命令的输入。

说实话,管道这个命令的功能还是很强大的,我们直接来看例子

【实例 1】

ls | grep gc.log.00

开发常用linux命令,linux,java,运维,服务器,开发语言

此命令功能是查看文件 gc.log.00 是否存在于当前目录下。

即将 ls 输出的内容当做 grep 命令的输入。

【实例 2】

cat gc.log | less

使用管道将 cat 命令的输出作为 less 命令的输入,这样就可以将 cat 命令的输出每次按照一个屏幕的长度显示。

【实例 3】

ps -ef | grep cloud-system.jar

这个命令平时使用的还是比较多的,ps -ef 命令是列出所有进程的意思,这个命令的意思就是 查找出和 cloud-system.jar 有关的进程

五、进程

1. ps 命令

用于显示当前系统中的进程,英文全拼: process statusps 命令显示的进程列表不会随时间而更新,是静态的,是运行 ps 命令那个时刻的状态或者说是一个进程快照。

常用参数:

  • -ef 列出所有进程;
  • -u 列出此用户运行的进程;
  • -aux 通过 CPU 和内存使用来过滤进程 ps -aux | less ;
  • -aux --sort -pcpuCPU 使用降序排列, -aux --sort -pmem 表示按内存使用降序排列
  • -axjf 以树形结构显示进程, ps -axjf 它和 pstree 效果类似。

管道 中的【实例 3】中,我们用到了这个命令,是非常常用的。

ps -ef | grep cloud-system.jar
2. top 命令

获取进程的动态列表。

开发常用linux命令,linux,java,运维,服务器,开发语言

  • 展示的这些进程是按照使用处理器 %CPU 的使用率来排序的。
3. kill 命令

结束一个进程, kill + PID

kill 11056 			# 结束进程号为956的进程
kill 11056 11057 	# 结束多个进程
kill -9 4568 		# 强制结束进程
4. & 命令

启动后台进程,它的缺点是后台进程与终端相关联,一旦关闭终端,进程就自动结束了。

npm run dev &
5. nohup 命令

用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。英文全称:no hang up,

nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下

nohup npm run dev

nohup 命令也可以和 & 结合使用,后台启动并可以退出终端,程序运行不会中断。

nohup npm run dev &
6. jobs 命令

显示当前终端后台进程状态。

开发常用linux命令,linux,java,运维,服务器,开发语言

注意:

jobs 是查看当前终端的后台进程状态,如果你退出终端,再次连接终端则看不到上一个被关闭终端的后台进程,但其实进程还在。

六、系统

1. halt 命令

关闭系统,需要 root 身份。

halt
2. reboot 命令

重启系统,需要 root 身份。

reboot
3. poweroff

直接运行即可关机,不需要 root 身份。

poweroff

暂时写到这里,后面应该会继续补充的。

文章参考:2万字系统总结,带你实现 Linux 命令自由

到了这里,关于开发必备的常用 Linux 命令整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【运维小知识】(四)——linux常用命令

    运维专栏:运维小知识 目录  1.🍁🍁用mv命令修改文件名 2.🍃🍃创建及删除文件夹即文件夹下所有文件 3.🍂🍂移动文件夹并重命名 4.🌿🌿复制文件 5.🍄🍄统计当前目录下文件的个数(不包含文件夹或子文件夹) 6.🌵🌵统计当前目录下文件的个数(包含子目录中的文件

    2024年02月16日
    浏览(32)
  • Linux必备基础命令,JAVA程序员必备

    目录 一、了解基本的左侧栏什么意思​编辑 二、ls,ll(list,查找目录内容) 三、cd(change directory,切换目录) 小技巧,我们在查找东西的时候,可以使用tab进行智能补全。 四、touch(建立文件) echo(打印到控制台) 五、vim(对文件进行更细粒度的编辑) 六、mkdir(创建目录

    2024年02月05日
    浏览(90)
  • 【网络工程师人手必备的常用网络命令合集,整理收藏!】

    在计算机网络中经常要对网络进行管理,测试,这时就要用到网络命令。今天就为大家整理了一些网络工程师必备的一些常用网络命令合集,建议收藏后观看哦! ping是个使用频率极高的实用程序,主要用于确定网络的连通性。这对确定网络是否正确连接,以及网络连接的状

    2024年02月05日
    浏览(46)
  • Linux 之 Ubuntu 上 Vim 的安装、配置、常用命令的简单整理

    目录 Linux 之 Ubuntu 上 vim 的安装、配置、常用命令的简单整理 一、简单介绍 二、Vim 的安装 三、vim 的 3+2 种工作模式  四、vim 的一些基础配置,及其说明 五、普通模式下的常用操作命令 六、插入模式下的常用操作命令 七、命令模式下的常用操作命令 Linux/Ubuntu 开发的一些知

    2024年04月12日
    浏览(46)
  • 运维必备Linux学习day1(建议收藏,运维面试100%会涉及)

    一.找回root密码 找到以““Linux16”开头内容所在的行数”,在行的最后面输入: init=/bin/sh 输完红色命令后 Ctrl + X 命令 接下来在光标闪烁处,输入指令: mount -o remount,rw / (注意:各个单词间有空格) 光标闪烁的位置中,输入passwd,输入一次密码并确认密码 光标闪烁的位置

    2024年03月10日
    浏览(57)
  • linux查看防火墙,开放端口、关闭端口-运维必备

    查看防火墙状态:active (running) 即是开启状态 如果不是显示active状态,需要打开防火墙 查看所有已开放的端口 新增防火墙开放端口 关闭防火墙端口 配置结束后需要输入重载命令并重启防火墙以生效配置 firewalld的基本使用命令 配置firewalld-cmd命令 systemctl相关命令 查看端口号

    2024年02月13日
    浏览(47)
  • Java必备技能之环境搭建篇 (linux ab压力测试),致Java开发者

    详情说明: -n在测试会话中所执行的请求个数。默认时,仅执行一个请求。请求的总数量 -c一次产生的请求个数。默认是一次一个。请求的用户量 -t测试所进行的最大秒数。其内部隐含值是-n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限

    2024年04月27日
    浏览(38)
  • 【嵌入式开发 Linux 常用命令系列 7 -- awk 常用方法】

    上篇文章:嵌入式开发 Linux 常用命令系列 6 – 字符提取 cut 命令使用 下篇文章:嵌入式开发 Linux 常用命令系列 8 – 二进制转为16进制常用命令 AWK是一种强大的文本分析工具,最初是由 Aho, Weinberger 和 Kernighan 设计和实现的,AWK 的名称就来源于他们三人的姓氏首字母。在Lin

    2024年02月15日
    浏览(57)
  • java面试【SpringBoot常用注解、linux命令】

    Spring Boot提供了大量的注解,用于简化配置和开发过程。以下是一些常用的Spring Boot注解的列表: 主要注解 : @SpringBootApplication:标记一个主启动类,表示这是一个Spring Boot应用程序的入口点。 控制器相关注解 : @Controller:标记一个类为控制器,处理HTTP请求。 @RestController:

    2024年02月15日
    浏览(50)
  • 千峰云计算linux教程650集,linux系统运维从入门到精通教程(Linux安装极速入门,零基础必备)

    第一天 1. 完成VMware下载,centos7下载,完成配置,获得模拟服务器一台。 2. 使用root登录。 服务器 (可以当初普通计算机,与普通的计算机内部结构相差不大) VMware是安装虚拟机的软件 (通过一些软件在一台主机或服务器系统中模拟出来的一台电脑,实际上就是一个比较大

    2024年01月17日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包