🌹史上最全的后端必备Linux常用命令汇总(超全面!超详细!)收藏这一篇就够了!🌹

本文涉及的产品
云防火墙,500元 1000GB
简介:  Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器操作系统方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。目前Linux存在着许多不同的Linux发行版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。

一、引言


1.JPG


1.1、Linux引言


   Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix多用户多任务支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器操作系统方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。目前Linux存在着许多不同的Linux发行版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。


2.JPG


1.2、Linux的诞生


   20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系统主要有Unix、DOS和MacOS这几种。Unix价格昂贵,不能运行于PC。DOS显得简陋,且源代码被软件厂商严格保密;


   MacOS是一种专门用于苹果计算机的操作系统。此时,计算机科学领域迫切需要一个更加完善、强大、廉价和完全开放的操作系统。由于供教学使用的典型操作系统很少,因此当时在荷兰当教授的美国人AndrewS.Tanenbaum编写了一个操作系统,名为MINIX,为了向学生讲述操作系统内部工作原理。MINIX虽然很好,但只是一个用于教学目的的简单操作系统,而不是一个强有力的实用操作系统,然而最大的好处就是公开源代码。全世界学计算机的学生都通过钻研MINIX源代码来了解电脑里运行的MINIX操作系统,芬兰赫尔辛基大学大学二年级的学生Linus Torvalds就是其中一个,在吸收了MINIX精华的基础上,Linus于1991年写出了属于自己的Linux操作系统,版本为Linux0.01,是Linux时代开始的标志。他利用Unix的核心,去除繁杂的核心程序,改写成适用于一般计算机的x86系统,并放在网络上供大家下载,1994年推出完整的核心Version1.0,至此,Linux逐渐成为功能完善、稳定的操作系统,并被广泛使用。


   Linux出现于1991年,是由芬兰赫尔辛基大学学生,Linus Torvalds和后来加入的众多爱好者共同开发完成。


3.JPG


1.3、Linux的特点


1.3.1、完全免费


   Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。


1.3.2、多用户、多任务


   Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行,丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,出色的速度性能。


1.4、Centos


1.4.1、简介


   CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器,)以CentOS替代商业版的Red Hat、Enterprise Linux使用。两者的不同,在于CentOS完全开源


1.4.2、 centos 和 readheat区别


   目前的Linux操作系统主要应用于生产环境,主流企业的Linux系统仍旧是RedHat或者CentOS,他们出自于同样的源代码,但centos完全免费。其独有的yum命令支持在线升级,可以即时更新系统,不像RedHat 那样需要花钱购买支持服务!


1.5、Linux目录结构


4.JPG


  1. bin  (binaries):存放二进制可执行文件。
  2. sbin  (super user binaries):存放二进制可执行文件,只有root才能访问。
  3. etc (etcetera):存放系统配置文件。
  4. usr  (unix shared resources):用于存放共享的系统资源。
  5. home:存放用户文件的根目录。
  6. root :超级用户目录。
  7. dev (devices):用于存放设备文件。
  8. lib  (library):存放跟文件系统中的程序运行所需要的共享库及内核模块。
  9. mnt  (mount):系统管理员安装临时文件系统的安装点。
  10. boot 存放用于系统引导时使用的各种文件。
  11. tmp  (temporary)用于存放各种临时文件。
  12. var  (variable)用于存放运行时需要改变数据的文件。

二、Linux常用命令


2.1、Linux命令格式


命令  -选项  参数    
如:  ls -l /usr 
复制代码


2.2、ls


2.2.1、概述


   ls(list)命令用于显示文件和目录列表


2.2.2、常用参数


  1. -l(long):长格式显示文件和目录信息。ls -l 简写就是ll
  2. -a(all):显示所有文件和目录。
  3. -R:递归显示指定目录下的文件清单,即会显示指定目录分支内各子目录中的文件清单。
  4. -h:人性化显示文件大小。


2.2.3、细节


5.JPG


文件类型   文件权限       链接数    属主      属组    大小     日期     时间     文件名
   d     rwxr -xr -x     8     xiaolin   root    4096    Apr 22  09:42    jdk11
复制代码


第一个信息(第一位):

  1. d:表示当前类型为目录
  2. -:代表当前类型问文件


第二个信息(后面9位):

  1. 第一个3位:代表当前文件创建者( user)的操作权限 r(读) 、w(写)、x(执行)。
  2. 中间的3位 :代表当前文件创建者的同组(group)用户对文件的操作权限 。
  3. 最后的3位 :代表当前文件创建者的不同组(other)用户对该文件的操作权限。


第三个信息(再后面1位):表示文件链接数。


第四个信息:链接数后面的表示当前文件的创建者。


第五个信息:当前文件创建者后面表示当前文件创建者所在的组是哪个组。


第六个信息:所在组后面表示当前文件占用的空间大小。


第七个信息:文件最后一次修改的时间。


第八个信息:文件名或者目录名。


2.3、操作文件命令


2.3.1、cd


   cd命令用来切换目录。可以随意切换到想要的目录。


2.3.2、pwd(print working directory)


   显示当前工作目录


2.3.3、touch


   创建空文件


2.3.4、mkdir(make directoriy)


   创建目录,他有一个参数:-p(parents),表示如果父目录不存在的话先生成父目录。


2.3.5、cp(copy)


cp  文件名  目录:复制文件到指定目录中
cp  -r(recursive) 目录名 目录:复制指定目录到指定目录中,-r表示递归处理,将指定目录下的文件与子目录一并拷贝。
复制代码


2.3.6、mv(move)


   移动文件或目录、文件或目录改名


mv 文件名 新文件名:表示文件改名
mv 文件名 目录名: 表示文件移动
mv 目录名 不存在目录名:表示目录改名 
复制代码


2.3.7、rm


   他有几个常用的参数


-r:同时删除该目录下的所有文件(recursive)
-f:强制删除文件或目录(force)
复制代码

   经常使用组合命令是:rm -rf


2.3.8、rmdir(remove directoriy)


   删除空目录,如果不是空目录会提示报错。


2.3.9、cat(catenate)


   显示文本文件内容,用来展示少量内容,仅限一个屏幕


2.3.10、head


   查看文本中开头或结尾部分的内容


# 查看a.log文件的前5行
head  -n  5  a.log 
复制代码


2.3.11、tail


# 循环读取(fellow,实时展示文件的内容变化)
tail  -f  b.log 
复制代码


2.3.12、echo


   输出命令


# 用来向屏幕输出一句话
echo   I love baby
# 将这段内容输入到 aa.txt文件中,运行两次就是追加
echo I Love baby  >>  aa.txt
复制代码


2.4、网络相关命令


2.4.1、ip addr


   查看IP地址,简化写法为:ip a


2.4.2、ping


   测试网络连通性


2.5、tar命令


tar命令相当于windows的好压,用于解压或者压缩文件。


# 打包命令
tar -cvf 打包文件名 源文件
复制代码


他有几个参数:

  1. -c(create):建立一个压缩文件的参数指令。
  2. -x(extract):解开一个压缩文件的参数指令。
  3. -z :是否需要用 gzip 压缩,  .tar.gz(打包并且用了gzip的压缩)。
  4. -v :压缩的过程中显示文件(verbose)。
  5. -f:使用档名。


通常使用的组合命令:

  1. tar -cvf aaa.tar file1.txt file2.txt:将file1和file2打包成aaa.tar。
  2. tar -zcvf aaa.tar.gz file1.txt file2.txt :将file1和file2打包成aaa.tar
  3. tar -zxvf aaa.tar.gz:将aaa.tar.gz解压


2.6、systemctl 服务命令(Centos独有)


他用于查看服务的状态。


# 查看某个服务的运行状态
systemctl status 服务名
# 启动某个服务
systemctl start 服务名
# 重启某个服务
systemctl restart 服务名
# 停止某个服务
systemctl stop 服务名
复制代码


2.7、进程相关命令


2.7.1、ps


查询在当前控制台上运行的进程。


# 查询系统中所有运行的进程,包括后台进程,其中参数a是所有进程,参数x包括不占用控制台的进程,参数u显示用户。
ps  -aux 
# 查询系统中所有运行的进程,包括后台进程,而且可以显示出每个进程的父进程号。
ps  -ef
ps -aux|grep 进程 服务名
复制代码


2.7.2、top


动态显示系统进程


2.7.3、kill


杀死进程,


# 上述命令中1314是进程号;一般在执行kill命令之前,先用ps或pstree来查询一下将要被杀掉的进程的进程号。 
kill  1314
# 强制终止1314号进程的运行,其中参数-9代表强制的意思,实际上kill命令是向该进程发送信号,该进程接到信号后决定是否停止运行,有些守护进程必须要收到参数9才终止运行。
kill  -9  1314
复制代码


2.8、vi/vim编辑器


2.8.1、概述


vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大。


6.JPG


2.8.2、三种模式


vi编辑器有三种模式:


  1. 编辑模式(命令模式) :所有的机键动作都会理解为编辑整个文档的操作,默认为编辑模式。
  2. 输入模式:大部分机键动作都会理解为输入的字符。
  3. 末行模式:在末行模式,输入很多文件管理命令。


模式之间可以互相转换:


  1. 编辑模式-->输入模式:
    (1). i:在光标所在字符前开始插入。
    (2). a:在光标所在字符后开始插入。
    (3). o:在光标所在行的下面另起一新行插入。
    (4). s:删除光标所在的字符并开始插入。
    (5). I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入。
    (6).A:在光标所在你行的行尾开始插入。
    (7).O:在光标所在行的上面另起一行开始插入。
    (8).S:删除光标所在行并开始插入。
  2. 输入模式-->编辑模式:ESC(键盘左上方的按键)。
  3. 编辑模式--->末行模式:输入
  4. 末行模式:-->编辑模式:ESC(键盘左上方的按键)(一次或者多次)


2.8.3、常用命令


  1. i:在光标前插入。
  2. I:在光标当前行开始插入。
  3. a:在光标后插入。
  4. A:在光标当前行末尾插入。
  5. o:在光标当前行的下一行插入新行。
  6. O:在光标当前行的上一行插入新行。
  7. :set nu:显示行号。
  8. :set nonu:取消行号。
  9. gg:到文本的第一行。
  10. G:到文本的最后一行。
  11. :n:到文本的第n行。
  12. u:undo,取消上一步操作。
  13. Ctrl + r:redo,返回到undo之前。
  14. :wq:保存退出。
  15. 按住shift:保存退出,与“:wq”作用相同。
  16. :wq!:强制保存退出
  17. :q:退出不保存。
  18. :q!:强制退出不保存。
  19. yy:复制光标所在行 (编辑模式)。
  20. 2yy 从光标行开始复制2行(编辑模式)。
  21. p::粘贴命令。
  22. u:撤销(编辑模式)。
  23. 1,$d:全部删除(末行模式)。


2.8.4、移动光标和翻屏操作


2.8.4.1、逐字符移动


  1. h:左移动。
  2. l:右移动。
  3. j:向下移动。
  4. k:向上移动。


2.8.4.2、行内跳转和行间跳转


  1. 0:跳转到行首。
  2. $:跳转到行尾。
  3. G::跳转行最后一行(需要在编辑模式下输入按键盘的G)。
  4. gg: 跳转到第一行(需要在编辑模式下按键盘两下gg)。
  5. ctrl+f:向下翻一页。
  6. ctrl+b:向上翻一页。


2.8.4、查找和替换


  1. /需要匹配的条件:从前往后查找。


/s
复制代码
  1. ?需要匹配的条件:从后往前查找。


?s
复制代码


  1. n:  下一个匹配的字符串(编辑模式)。
  2. N: 上一个匹配的字符串(编辑模式)。
  3. g:全局替换。
  4. i:忽略大小写


2.9、软件相关命令


2.9.1、rpm命令


2.9.1.1、rpm概述


   RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括RedHat、CentOS、SUSE等Linux的分发版本都有采用,可以算是公认的行业标准了。RPM文件在Linux系统中的安装最为简便,


2.9.1.2、rpm命令


rpm命令常用的参数:


  1. i(install):安装应用程序。
  2. e(erase):卸载应用程序。
  3. vh(verbose   hash):显示安装进度。
  4. U(update) :升级软件包。
  5. qa(query all): 显示所有已安装软件包。


# 显示进度安装 gcc-c++-4.4.7-3.el6.x86_64.rpm
rmp  -ivh  gcc-c++-4.4.7-3.el6.x86_64.rpm
复制代码


2.9.2、yum命令


   Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。使用YUM命令必须连接外部网络


2.10、用户和组相关命令


   用户的定义是一类用户具有访问某个资源或服务的能力。     用户组(存放一些列用户的容器),同时用户组还拥有具有访问某个资源的权限


  1. whoami:查看当前用户。
  2. exit:退出用户。
  3. groupadd:添加组.
  4. groupdel:删除组。
  5. useradd:添加用户,可以带一个参数-g,指定组名称,如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
  6. passwd 用户名:设置用户密码。
  7. su 用户名:切换用户。


2.11、权限相关命令


   权限的定义是某一个特定的人资源或者服务的访问能力。     Linux文件有三种典型的权限,即r读权限、w写权限和x执行权限。在长格式输出中在文件类型的后面有9列权限位,实际上这是针对不同用户而设定的。r=4,w=2,x=1

   r(read):表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。     w(write):表表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。     x(excute):表表示可写入,表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。


2.12、搜索相关命令


2.12.3、文件相关


  1. whereis  命令名:搜索该命令所在路径及帮助文档所在位置。


whereis  ls
复制代码


7.JPG


  1. which:搜索命令所在路径及别名


which ls
复制代码


8.JPG


  1. find 搜索范围 搜索条件:find是在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。


# 不区分大小写
find /root -iname install.log 
复制代码


2.12.4、字符串搜索


基本格式为:grep [选项] 字符串 文件名。


可选项为:

  1. -i:忽略大小写。
  2. -v:排除指定字符串。


2.12.5、find命令和grep命令的区别


find命令:在系统中搜索符合条件的文件名。

grep命令:在文件中搜索符合条件的字符串。


2.13、防火墙


   centos7的防火墙程序服务名为:firewalld,他的相关命令如下:


  1. 防火墙配置命令:firewall-cmd。
  2. 防火墙帮助:fireweall-cmd --help。
  3. 查看防火墙状态:firewall-cmd --state。
  4. 查看所有打开的端口:firewall-cmd --zone=public --list-ports。
  5. 开启端口:firewall-cmd --zone=public --add-port=端口号/tcp --permanent(--permanent参数为永久生效,不加则重启后失效)
  6. 更新防火墙规则:firewall-cmd --reload。
  7. 删除端口:firewall-cmd --zone=public --remove-port=端口号/tcp --permanent。



相关文章
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
110 8
|
23天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
50 14
Linux 10 个“who”命令示例
|
2天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
23 8
|
12天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
92 20
|
12天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
36 7
|
1月前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
35 9
|
1月前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
1月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
141 3
|
1月前
|
存储 运维 Linux
如何在 Linux 系统中使用 envsubst 命令替换环境变量?
`envsubst` 是 Linux 系统中用于替换文本中环境变量值的实用工具。本文分三部分介绍其工作原理、使用方法及实际应用,包括配置文件替换、脚本执行中环境变量替换和动态生成文件等场景,帮助用户高效利用 `envsubst` 进行开发和运维工作。
65 4
|
1月前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
39 1