Linux常用命令

本文介绍了Linux系统中常用的命令,包括文件和目录操作(如cd、ls、mkdir、rm、cp、mv)、文本处理(如cat、less、head、tail、grep)、网络管理(如ping、traceroute、ifconfig、netstat、nslookup)、进程管理(如ps、top、kill)以及系统和软件包管理。这些命令是Linux日常管理和维护的基础工具。
摘要由CSDN通过智能技术生成

Linux常用命令

1. 文件和目录操作命令:

  • cd:切换当前工作目录。用法:cd [目录名]。例如,cd /home表示切换到/home目录下。如果不指定目录名,则表示切换到当前用户的主目录。如果目录名是..,则表示切换到上一级目录。
  • ls:列出目录内容。用法:ls [选项] [文件或目录]。例如,ls -l /etc表示以长格式列出/etc目录下的所有文件和子目录。如果不指定文件或目录,则表示列出当前工作目录下的内容。常用的选项有:
    • -a:显示所有文件和目录,包括隐藏文件(以.开头的文件)。
    • -l:显示文件和目录的详细信息,如大小、权限、所有者、修改时间等。
    • -h:以人类可读的格式显示文件大小,如KB、MB、GB等。
    • -r:以反向顺序显示结果,即按字母表的逆序排列。
    • -S:按文件大小排序,从大到小。
    • -t:按修改时间排序,从近到远。
  • mkdir:创建目录。用法:mkdir [选项] [目录名]。例如,mkdir test表示在当前工作目录下创建一个名为test的子目录。常用的选项有:
    • -p:创建多级目录,即如果父目录不存在,则一并创建。
    • -m:指定创建目录的权限,如-m 755表示创建一个权限为755(即rwxr-xr-x)的目录。
  • rm:删除文件或目录。用法:rm [选项] [文件或目录]。例如,rm test.txt表示删除当前工作目录下的test.txt文件。常用的选项有:
    • -i:在删除前询问用户是否确认删除。
    • -f:强制删除,不询问用户,也不报错。
    • -r:递归删除,即如果是目录,则删除该目录及其所有子目录和文件。
  • cp:复制文件或目录。用法:cp [选项] [源文件或目录] [目标文件或目录]。例如,cp test.txt /tmp/test.txt.bak表示将当前工作目录下的test.txt文件复制到/tmp目录下,并命名为test.txt.bak。常用的选项有:
    • -i:在覆盖前询问用户是否确认复制。
    • -f:强制复制,不询问用户,也不报错。
    • -r:递归复制,即如果是目录,则复制该目录及其所有子目录和文件。
    • -p:保留源文件或目录的属性,如权限、所有者、修改时间等。
  • mv:移动文件或目录的位置,给文件/文件夹改名。用法:mv [选项] [源文件或目录] [目标文件或目录]。例如,mv test.txt /tmp/test.txt.bak
    表示将当前工作目录下的test.txt文件移动到/tmp目录下,并命名为test.txt.bak。常用的选项有:
    • -i: 在覆盖前询问用户是否确认移动。
    • -f: 强制移动,不询问用户,也不报错。

下面是一个使用这些命令的示例:

# 创建一个名为demo的多级子目录
mkdir -p demo/test1/test2
# 在demo目录下创建一个名为test.txt的文件,并写入一些内容
echo "Hello, world!" > demo/test.txt
# 切换到demo目录下
cd demo
# 列出demo目录下的所有文件和子目录的详细信息
ls -al
# 复制test.txt文件到test1目录下,并命名为test1.txt
cp test.txt test1/test1.txt
# 移动test1目录到test2目录下,并改名为test3
mv test1 test2/test3
# 删除test.txt文件
rm test.txt
# 删除test2目录及其所有子目录和文件
rm -r test2

2. 文本处理命令:

  • cat:显示文件内容。用法:cat [选项] [文件]。例如,cat test.txt表示显示test.txt文件的内容。如果不指定文件,则表示从标准输入读取文本内容,输出到标准输出中。常用的选项有:
    • -n:显示行号。
    • -b:显示非空行的行号。
    • -s:压缩连续的空行为一行。
    • -A:显示所有不可打印的字符,如制表符、换行符等。
  • less:逐页显示文件内容。用法:less [选项] [文件]。例如,less test.txt表示逐页显示test.txt文件的内容。如果不指定文件,则表示从标准输入读取文本内容,输出到标准输出中。常用的选项有:
    • -N:显示行号。
    • -S:不换行,即如果一行太长,则只显示屏幕能容纳的部分,超出部分不显示。
    • -i:忽略大小写,即在搜索时不区分大小写。
    • -p:指定一个模式,打开文件后立即搜索该模式。
      在less命令的交互模式下,可以使用以下按键进行操作:
    • 空格键或Page Down键:向下翻页。
    • Page Up键或b键:向上翻页。
    • 上下箭头键或j和k键:向上或向下滚动一行。
    • Home键或g键:跳转到文件的开头。
    • End键或G键:跳转到文件的结尾。
    • /键:输入一个正向搜索的模式,按回车键开始搜索,按n键查找下一个匹配,按N键查找上一个匹配。
    • ?键:输入一个反向搜索的模式,按回车键开始搜索,按n键查找上一个匹配,按N键查找下一个匹配。
    • q键:退出less命令。
  • head:显示文件头部内容。用法:head [选项] [文件]。例如,head test.txt表示显示test.txt文件的前10行内容。如果不指定文件,则表示从标准输入读取文本内容,输出到标准输出中。常用的选项有:
    • -n:指定显示的行数,如-n 5表示显示前5行内容。
    • -c:指定显示的字节数,如-c 10表示显示前10个字节的内容。
  • tail:显示文件尾部内容。用法:tail [选项] [文件]。例如,tail test.txt
    表示显示test.txt文件的后10行内容。如果不指定文件,则表示从标准输入读取文本内容,输出到标准输出中。常用的选项有:
    • -n: 指定显示的行数,如-n 5表示显示后5行内容。
    • -c: 指定显示的字节数,如-c 10表示显示后10个字节的内容。
    • -f: 持续监视文件的变化,并实时显示最新的内容。
  • grep:在文件中搜索指定的模式。用法:grep [选项] [模式] [文件]。例如,grep hello test.txt表示在test.txt文件中搜索包含hello的行,并显示匹配的结果。如果不指定文件,则表示从标准输入读取文本内容,输出到标准输出中。常用的选项有:
    • -i:忽略大小写,即在搜索时不区分大小写。
    • -v:反向匹配,即显示不包含模式的行。
    • -n:显示行号,即在每行的开头显示该行在文件中的行号。
    • -c:显示匹配的行数,即统计有多少行包含模式。
    • -l:显示匹配的文件名,即只显示包含模式的文件的文件名,而不显示具体的匹配内容。
    • -r:递归搜索,即如果是目录,则搜索该目录及其所有子目录和文件。

3. 网络管理命令:

  • ping:测试与目标主机的网络连通性。用法:ping [选项] [主机名或IP地址]。例如,ping www.baidu.com表示向百度的服务器发送数据包,并显示回应的时间和丢包率。常用的选项有:
    • -c:指定发送数据包的次数,如-c 5表示发送5次数据包后停止。
    • -i:指定发送数据包的间隔,单位为秒,如-i 2表示每隔2秒发送一次数据包。
    • -s:指定发送数据包的大小,单位为字节,如-s 64表示发送64字节的数据包。
    • -t:指定数据包的生存时间(TTL),即数据包经过多少个路由器后被丢弃,如-t 10表示数据包的TTL为10。
  • traceroute:追踪数据包到达目标主机的路径,即显示经过的所有路由器的IP地址和响应时间。用法:traceroute [选项] [主机名或IP地址]。例如,traceroute www.baidu.com
    表示追踪到达百度服务器的路径。常用的选项有:
    • -n: 不进行域名解析,即只显示IP地址,而不显示主机名。
    • -m: 指定最大跳数(hops),即最多经过多少个路由器,如-m 15表示最大跳数为15。
    • -q: 指定每个路由器发送的查询次数,如-q 3表示每个路由器发送3次查询。
    • -w: 指定等待响应的超时时间,单位为秒,如-w 2表示等待2秒后超时。
  • ifconfig: 显示或配置网络接口的信息,如IP地址、子网掩码、广播地址等。用法:ifconfig [选项] [接口名] [参数]。例如,ifconfig eth0
    表示显示eth0接口的信息。常用的选项有:
    • -a: 显示所有接口的信息,包括未激活的接口。
    • -s: 显示简略格式的接口信息,只包括接口名、IP地址、MTU等。
      常用的参数有:
    • up: 激活接口,使其能够传输数据。
    • down: 停止接口,使其不能传输数据。
    • mtu [value]: 设置接口的最大传输单元(MTU),即每个数据包能够传输的最大字节数,如mtu 1500
      表示设置MTU为1500字节。
    • [ip-address]: 设置接口的IP地址,如192.168.1.100
      表示设置IP地址为192.168.1.100。
  • netstat: 显示网络连接、路由表、接口状态等信息。用法:netstat [选项]。例如,netstat -an
    表示显示所有连接和监听端口的信息,并不进行域名解析。常用的选项有:
    • -a: 显示所有连接和监听端口的信息。
    • -n: 不进行域名解析,即只显示IP地址和端口号,而不显示主机名和服务名。
    • -t: 只显示TCP协议的连接信息。
    • -u: 只显示UDP协议的连接信息。
    • -r: 显示路由表信息。
    • -i: 显示接口信息。
  • nslookup: 查询域名服务器,获取域名或IP地址的信息。用法:nslookup [选项] [主机名或IP地址] [域名服务器]。例如,nslookup www.baidu.comnslookup www.baidu.com 8.8.8.8表示使用Google的公共DNS服务器(8.8.8.8)查询百度的域名对应的IP地址。
    表示查询百度的域名对应的IP地址。常用的选项有:
    • -type: 指定查询的记录类型,如A、MX、NS等,如-type=MX表示查询邮件交换记录。
    • -timeout: 指定查询的超时时间,单位为秒,如-timeout=5表示查询5秒后超时。
    • -debug: 显示调试信息,如查询过程中的详细信息。

4. 进程管理命令

进程是指在系统中运行的程序的实例。Linux系统中有多种命令可以用来管理和监控进程,如查看进程信息、终止进程、调整进程优先级等。本节将介绍三个常用的进程管理命令:pstopkill

4.1 ps命令

ps命令用于显示当前运行的进程信息,如进程ID、用户、CPU占用、内存占用等。它有多种选项可以用来控制输出的格式和内容。下面是一些常见的用法:

  • ps:不带任何选项的ps命令只显示当前终端下的进程信息

  • ps -e:使用-e选项可以显示所有进程的信息

  • ps -f:使用-f选项可以显示完整格式的进程信息,包括用户、进程ID、父进程ID、启动时间、终端、CPU时间和命令等

  • ps -l:使用-l选项可以显示长格式的进程信息,包括优先级、内存占用、状态、信号等

  • ps -u [user]:使用-u [user]选项可以只显示指定用户的进程信息

  • ps -p [pid]:使用-p [pid]选项可以只显示指定进程ID的进程信息

4.2 top命令

top命令用于动态显示当前系统的进程状态,如CPU占用、内存占用、运行时间等。它会不断刷新屏幕,以实时反映系统的变化。它也有多种选项可以用来控制输出的格式和内容。下面是一些常见的用法:

  • top:不带任何选项的top命令会显示系统概况和所有进程的状态,按CPU占用率从高到低排序

  • top -d [seconds]:使用-d [seconds]
    选项可以指定刷新间隔,单位为秒

  • top -p [pid]:使用-p [pid]选项可以只显示指定进程ID的进程状态

top命令的交互模式下,可以使用以下按键进行操作:

  • 空格键或Enter键:立即刷新屏幕。
  • P键或Shift+P键:按CPU占用率排序,从高到低。
  • M键或Shift+M键:按内存占用率排序,从高到低。
  • T键或Shift+T键:按时间/累计时间排序,从高到低。
  • N键或Shift+N键:按进程ID排序,从低到高。
  • U键或Shift+U键:指定用户,如输入root表示只显示root用户的进程状态。
  • K键或Shift+K键:杀死进程,如输入1234表示杀死进程ID为1234的进程。
  • Q键或Shift+Q键:退出top命令。

4.3 kill命令

kill命令用于发送信号给指定的进程,用于终止进程。它有多种选项可以用来指定发送的信号类型。下面是一些常见的用法:

  • kill [pid]:不带任何选项的kill命令会向指定进程ID的进程发送终止信号(SIGTERM)

  • kill -l:使用-l选项可以列出所有可用的信号名称和编号

  • kill -s [signal] [pid]:使用-s [signal]选项可以指定发送的信号名称

  • kill -n [number] [pid]:使用-n [number]选项可以指定发送的信号编号

在Linux系统中,有多种信号可以用来控制进程的行为,其中最常用的两种是:

  • SIGTERM:终止信号,编号为15,是kill命令的默认信号。它会向进程发送一个请求,要求进程自行结束。进程可以捕获并忽略该信号,或者在结束前执行一些清理操作。
  • SIGKILL:强制终止信号,编号为9,是kill命令的最强力的信号。它会直接终止进程,不给进程任何机会做任何处理。进程无法捕获或忽略该信号。

通常情况下,应该优先使用SIGTERM信号来终止进程,以避免造成数据丢失或系统不稳定。只有当SIGTERM信号无效时,才应该使用SIGKILL信号。

5. 系统管理命令:

  • date:显示或设置系统时间和日期。用法:date [选项] [时间字符串]。例如,date表示显示当前系统的时间和日期。常用的选项有:
    • -s: 设置系统时间和日期,如-s "2021-12-31 23:59:59"表示将系统时间和日期设置为2021年12月31日23时59分59秒。
    • -d: 显示指定时间字符串的时间和日期,如-d "next year"表示显示下一年的时间和日期。
    • -u: 显示UTC(协调世界时)的时间和日期,而不是本地时区的时间和日期。
    • +FORMAT: 指定显示的时间和日期格式,如+FORMAT "%Y-%m-%d %H:%M:%S"表示以年-月-日 时:分:秒的格式显示时间和日期。
  • uname:显示系统信息,如内核版本、操作系统类型等。用法:uname [选项]。例如,uname -a
    表示显示所有系统信息。常用的选项有:
    • -s: 显示内核名称,如Linux。
    • -n: 显示主机名,如localhost.localdomain。
    • -r: 显示内核版本,如3.10.0-957.el7.x86_64。
    • -v: 显示内核发行版本,如#1 SMP Thu Nov 8 23:39:32 UTC 2018。
    • -m: 显示机器硬件名称,如x86_64。
    • -p: 显示处理器类型,如x86_64。
    • -i: 显示硬件平台,如x86_64。
    • -o: 显示操作系统名称,如GNU/Linux。
  • free:显示系统内存使用情况。用法:free [选项]。例如,free -h
    表示以人类可读的格式显示系统内存使用情况,如KB、MB、GB等。常用的选项有:
    • -b: 以字节为单位显示内存使用情况。
    • -k: 以KB为单位显示内存使用情况。
    • -m: 以MB为单位显示内存使用情况。
    • -g: 以GB为单位显示内存使用情况。
    • -t: 显示内存总计行,即所有内存类型的总和。
  • df:显示文件系统的磁盘空间使用情况。用法:df [选项] [文件或目录]。例如,df -h /home
    表示以人类可读的格式显示/home目录所在的文件系统的磁盘空间使用情况。常用的选项有:
    • -a: 显示所有文件系统,包括特殊文件系统和虚拟文件系统。
    • -h: 以人类可读的格式显示磁盘空间使用情况,如KB、MB、GB等。
    • -i: 显示inode信息,而不是磁盘块信息。
    • -T: 显示文件系统类型,如ext4、xfs等。

6. 软件包管理命令:

  • yum:用于基于RPM的Linux发行版,如CentOS、Fedora等。用法:yum [选项] [命令] [软件包名]。例如,yum install httpd
    表示安装httpd软件包及其依赖。常用的选项有:
    • -y: 自动回答yes,即在安装或卸载过程中不询问用户是否确认操作。
    • --enablerepo: 启用指定的软件仓库,如--enablerepo=epel表示启用epel仓库。
    • --disablerepo:禁用指定的软件仓库。用法:--disablerepo=[仓库名]。例如,--disablerepo=base表示禁用base仓库。如果要禁用多个仓库,可以用逗号分隔,如--disablerepo=base,updates表示禁用base和updates仓库。如果要禁用所有仓库,可以用星号代替仓库名,如--disablerepo=*表示禁用所有仓库。
    • install:安装指定的软件包及其依赖。用法:install [软件包名]。例如,install httpd表示安装httpd软件包及其依赖。如果要安装多个软件包,可以用空格分隔,如install httpd mysql-server表示安装httpd和mysql-server软件包及其依赖。
    • update:更新指定的软件包或所有已安装的软件包。用法:update [软件包名]。例如,update httpd
      表示更新httpd软件包。如果不指定软件包名,则表示更新所有已安装的软件包。
    • remove:卸载指定的软件包及其依赖。用法:remove [软件包名]。例如,remove httpd
      表示卸载httpd软件包及其依赖。如果要卸载多个软件包,可以用空格分隔,如remove httpd mysql-server
      表示卸载httpd和mysql-server软件包及其依赖。
    • list:列出指定的或所有的软件包。用法:list [选项] [软件包名]。例如,list httpd
      表示列出httpd软件包的信息,如版本、大小、仓库等。如果不指定软件包名,则表示列出所有可用的软件包。常用的选项有:
      • installed: 只列出已安装的软件包。
      • available: 只列出可用的但未安装的软件包。
      • updates: 只列出可更新的已安装的软件包。
      • extras: 只列出已安装但不在任何仓库中的软件包。
      • obsoletes: 只列出已过时的已安装的软件包。

7. 服务管理命令:

在Linux系统中,有一些命令可以用来管理系统服务,即一些在后台运行的程序,如网络服务器、数据库服务器等。这些命令可以让我们启动、停止、重启或者查看服务的状态,以及设置服务是否随系统启动而自动运行。常用的服务管理命令有两个:servicesystemctl

7.1 service命令

service命令是一个通用的服务管理命令,它可以用来管理各种类型的服务。它的基本用法是:

service [服务名] [命令]

其中,[服务名]是要管理的服务的名称,如httpd、mysqld等;[命令]是要执行的操作,如启动、停止、重启等。例如,如果我们想要启动httpd服务,就可以输入:

service httpd start

如果我们想要停止httpd服务,就可以输入:

service httpd stop

如果我们想要重启httpd服务,就可以输入:

service httpd restart

service命令支持的操作有以下几种:

  • start: 启动服务。如果服务已经运行,则不会有任何效果。
  • stop: 停止服务。如果服务已经停止,则不会有任何效果。
  • restart: 重启服务。相当于先执行stop操作,再执行start操作。
  • reload: 重新加载服务配置文件。这个操作可以让服务读取最新的配置文件,而不影响服务的运行。如果服务不支持这个操作,则会显示错误信息。
  • status: 显示服务状态。这个操作可以让我们查看服务是否运行、进程ID、内存占用等信息。

7.2 systemctl命令

systemctl命令是一个专门用来管理systemd服务的命令,它可以用来管理使用systemd机制启动和管理的服务。它的基本用法是:

systemctl [选项] [命令] [服务名]

其中,[选项]是一些可选的参数,用来指定一些额外的信息,如服务类型、显示方式等;[命令]是要执行的操作,如启动、停止、重启等;[服务名]是要管理的服务的名称,通常以.service为后缀,如httpd.service、mysqld.service等。例如,如果我们想要启动httpd.service服务,就可以输入:

systemctl start httpd.service

如果我们想要停止httpd.service服务,就可以输入:

systemctl stop httpd.service

如果我们想要重启httpd.service服务,就可以输入:

systemctl restart httpd.service

systemctl命令支持的选项有以下几种:

  • -t: 指定服务类型。这个选项可以让我们只显示或操作某一类别的服务,如service、socket、target等。例如,如果我们想要查看所有类型为service的服务,就可以输入:

    systemctl -t service
    
  • -a: 显示所有服务。这个选项可以让我们查看系统中所有存在的服务,无论它们是否运行。

  • -r: 显示运行中的服务。这个选项可以让我们只查看系统中正在运行的服务。

systemctl命令支持的操作有以下几种:

  • start: 启动服务。如果服务已经运行,则不会有任何效果。
  • stop: 停止服务。如果服务已经停止,则不会有任何效果。
  • restart: 重启服务。相当于先执行stop操作,再执行start操作。
  • reload: 重新加载服务配置文件。这个操作可以让服务读取最新的配置文件,而不影响服务的运行。如果服务不支持这个操作,则会显示错误信息。
  • status: 显示服务状态。这个操作可以让我们查看服务是否运行、进程ID、内存占用等信息。
  • enable: 启用服务。这个操作可以让服务在系统启动时自动运行。如果服务已经启用,则不会有任何效果。
  • disable: 禁用服务。这个操作可以让服务在系统启动时不自动运行。如果服务已经禁用,则不会有任何效果。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值