# 非常实用的Linux命令

# 系统服务管理

# systemctl

systemctl命令是Systemd系统和服务管理器的一部分,用于控制systemd系统和服务管理器。Systemd是大多数最新的Linux发行版使用的初始化系统和服务管理器,它用于启动守护进程并管理它们的运行。systemctl提供了一个命令行界面,允许你管理和查询系统状态和服务。

# 常用的命令

  • 启动服务:启动一个或多个服务。

    systemctl start <service_name>.service
    
    1
    # 示例
    systemctl start firewalld
    
    1
    2
  • 停止服务:停止一个或多个正在运行的服务。

    systemctl stop <service_name>.service
    
    1
    # 示例
    systemctl stop firewalld
    
    1
    2
  • 重启服务:重启一个或多个服务。

    systemctl restart <service_name>.service
    
    1
    # 示例
    systemctl restart firewalld
    
    1
    2
  • 重新载入配置信息而不中断服务。

    systemctl reload <service_name>.service
    
    1
    # 示例
    systemctl reload firewalld
    
    1
    2
  • **

  • 显示服务状态:显示一个或多个服务的当前状态。

    systemctl status <service_name>.service
    
    1
    # 示例
    systemctl status firewalld
    
    1
    2
  • 启用服务:使服务在启动时自动启动。

    systemctl enable <service_name>.service
    
    1
    # 示例
    systemctl enable firewalld
    
    1
    2
  • 禁用服务:禁止服务在启动时自动启动。

    systemctl disable <service_name>.service
    
    1
    # 示例
    systemctl disable firewalld
    
    1
    2
  • 检查所有服务的状态:如你提到的,systemctl可以用来输出系统中各个服务的状态。

    systemctl list-units --type=service
    
    1

    image-20240216094517985

  • 查看已启动的服务:列出当前已经启动的服务。

    systemctl list-units --type=service --state=running
    
    1

image-20240216094603267

# 使用场景

  • 服务管理systemctl是管理Linux服务的主要工具,允许你启动、停止、重启和查看服务状态。
  • 系统启动:通过systemctl可以配置哪些服务在系统启动时自动启动,以及在什么条件下启动。
  • 故障诊断:通过查看服务的状态和日志(使用journalctl命令与systemctl配合),可以帮助你诊断系统问题。

systemctl提供的功能比旧的servicechkconfig命令更加强大和灵活,是现代Linux系统管理的核心工具之一。

# 文件管理

# ls

列出指定目录下的所有文件,列出/目录下的文件:

ls -l /
1

image-20240216121407667

# pwd

获取目前所在工作目录的绝对路径:

pwd
1

image-20240216121509899

# cd

改变当前工作目录:

cd /usr/local
1

image-20240216121611399

# date

date '+%Y-%m-%d %H:%M:%S'
1

image-20240216121705921

# passwd

passwd root
1

image-20240216121829994

# su

改变用户身份(切换到超级用户):

su root
1

image-20240216121927758

# clear

用于清除屏幕信息

# man

显示指定命令的帮助信息:

man ls
1

image-20240216122051270

# who

  • 查询系统处于什么运行级别:
who -r 
1

image-20240216122212681

  • 显示目前登录到系统的用户:
who -buT
1

image-20240216122248862

# free

显示系统内存状态(单位MB):

free -m
1

image-20240216122349856

# ps

  • 显示系统进程运行动态:
ps -ef
1

image-20240216122455225

  • 查看sshd进程的运行动态:
ps -ef | grep sshd
1

image-20240216122528991

# top

查看即时活跃的进程,类似Windows的任务管理器。

image-20240216122617800

# mkdir

创建目录:

mkdir /data/mydata
1

image-20240216122926201

# more

用于分页查看文件,例如每页10行查看boot.log文件:

 more -c -10 /usr/local/openresty/nginx/conf/nginx.conf
1

image-20240216123758855

# cat

用于查看文件,例如查看Linux启动日志文件文件,并标明行号:

cat -Ab /usr/local/openresty/nginx/conf/nginx.conf
1

image-20240216124049774

# touch

用于创建文件,例如创建text.txt文件:

touch text.txt
1

image-20240216124156849

# rm

  • 删除文件:
rm text.txt
1
  • 强制删除某个目录及其子目录:
rm -rf testdir/
1

# cp

用于拷贝文件,例如将test1目录复制到test2目录

cp -r /mydata/test1 /mydata/test2
1

# mv

用于移动或覆盖文件:

mv text.txt text2.txt
1

# 压缩与解压

# tar

  • /etc文件夹中的文件归档到文件etc.tar(并不会进行压缩):
tar -cvf /data/mydata/etc.tar /etc
1

image-20240216124803880

  • gzip压缩文件夹/etc中的文件到文件etc.tar.gz
tar -zcvf /data/mydata/etc.tar.gz /etc
1

image-20240216124856628

  • bzip2压缩文件夹/etc到文件/etc.tar.bz2
tar -jcvf /data/mydata/etc.tar.bz2 /etc
1

image-20240216124919801

  • 分页查看压缩包中内容(gzip):
tar -ztvf /data/mydata/etc.tar.gz |more -c -10
1

image-20240216125011545

  • 解压文件到当前目录(gzip):
tar -zxvf /data/mydata/etc.tar.gz
1
  • 解压文件到指定目录(gzip):
tar -zxvf /data/mydata/etc.tar.gz -C /mydata/etc
1

# 磁盘和网络管理

# df

查看磁盘空间占用情况:

df -hT
1

image-20240216125301741

# dh

查看当前目录下的文件及文件夹所占大小:

du -h --max-depth=1 ./*
1

image-20240216125345253

# ifconfig

显示当前网络接口状态:

ifconfig
1

image-20240216125622142

# netstat

  • 查看当前路由信息:
netstat -rn
1

image-20240216125850803

  • 查看所有有效TCP连接:
netstat -an
1

image-20240216125948968

  • 查看系统中启动的监听服务:
netstat -tulnp
1

image-20240216130014457

  • 查看处于连接状态的系统资源信息:
netstat -atunp
1

image-20240216130117889

# wget

wget 是一款广泛使用的命令行工具,它允许用户通过HTTP、HTTPS和FTP协议下载网络上的文件。这里有一些基础和高级的使用示例:

# 基础示例

  1. 下载单个文件:

    wget http://example.com/file.zip
    
    1
  2. 下载并保存为不同的文件名:

    wget -O newfilename.zip http://example.com/file.zip
    
    1
  3. 下载整个网站:

    wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://example.com
    
    1

# 高级示例

  1. 限制下载速度: 使用--limit-rate选项来限制下载速度,防止占用过多带宽。

    wget --limit-rate=100k http://example.com/file.zip
    
    1
  2. 断点续传: 如果下载过程中断,可以使用-c--continue选项从中断的地方继续下载文件。

    wget -c http://example.com/file.zip
    
    1
  3. 下载多个文件: 创建一个包含多个URL的文本文件(例如urls.txt),然后使用-i选项从该文件读取并下载。

    wget -i urls.txt
    
    1
  4. 使用代理服务器下载: 如果你需要通过代理服务器下载,可以配置wget来使用代理。

    export http_proxy="http://proxyserver:port/"
    export https_proxy="https://proxyserver:port/"
    wget http://example.com/file.zip
    
    1
    2
    3
  5. 只下载网站的HTML文件而不下载任何其他资源:

    wget --execute robots=off --recursive --no-parent --no-clobber --html-extension --domains website.com --no-directories http://website.com
    
    1

# 文件上传下载

  • 安装上传下载工具lrzsz
yum install -y lrzsz
1
  • 上传文件,输入以下命令XShell会弹出文件上传框;
rz
1
  • 下载文件,输入以下命令XShell会弹出文件保存框;
sz fileName
1

# 软件的安装与管理

# rpm

RPM是Red-Hat Package Manager的缩写,一种Linux下通用的软件包管理方式,可用于安装和管理.rpm结尾的软件包。

  • 安装软件包:
rpm -ivh nginx-1.12.2-2.el7.x86_64.rpm
1
  • 模糊搜索软件包:
rpm -qa | grep nginx
1
  • 精确查找软件包:
rpm -qa nginx
1
  • 查询软件包的安装路径:
rpm -ql nginx-1.12.2-2.el7.x86_64
1
  • 查看软件包的概要信息:
rpm -qi nginx-1.12.2-2.el7.x86_64
1
  • 验证软件包内容和安装文件是否一致:
rpm -V nginx-1.12.2-2.el7.x86_64
1
  • 更新软件包:
rpm -Uvh nginx-1.12.2-2.el7.x86_64
1
  • 删除软件包:
rpm -e nginx-1.12.2-2.el7.x86_64
1

# yum

Yum是Yellow dog Updater, Modified的缩写,能够在线自动下载RPM包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,非常方便!

  • 安装软件包:
yum install nginx
1
  • 检查可以更新的软件包:
yum check-update
1
  • 更新指定的软件包:
yum update nginx
1
  • 在资源库中查找软件包信息:
yum info nginx*
1
  • 列出已经安装的所有软件包:
yum info installed
1
  • 列出软件包名称:
yum list nginx*
1
  • 模糊搜索软件包:
yum search nginx
1
上次更新时间: 2024年2月16日星期五下午1点15分