小合
小合
发布于 2025-07-01 / 25 阅读
0
0

Linux常用命令大全

1.什么是Linux?

Linux可划分为Linux内核、GNU工具、图形化桌面环境、应用软件。对于Linux内核,其主要负责系统内存管理、软件程序管理、硬件设备管理、文件系统管理等功能,实现计算机软硬件的控制。

2. 基本的bash shell 命令

  • man: 查看命令使用方法man

  • pwd: 显示当前目录的绝对路径

  • ls: 查看当前的文件和目录(-a: 所有文件/-l: 详细信息或过滤特定文件)

    • 统计当前目录下文件数量:ls -l | wc -l

  • touch: 创建文件

  • cp: 复制文件(加-i选项,强制shell询问是否覆盖已有文件/-r选项,复制文件夹时使用)

  • ln: 文件链接(待扩展)

  • mv: 移动文件/重命名文件

  • rm: 删除文件(-r:删除文件夹)

  • mkdir: 创建目录(-p:创建多个目录)

  • file: 查看文件类型

  • cat: 查看文件内容

  • more: 分页显示文件内容,只能向前翻页

  • less: 高级分页工具,支持前后双向翻页(less is more)

  • tail: 查看尾几行

  • head:查看头几行

  • ps: 查看进程(-ef: 系统所有进程)

  • top: 实时监测进程

  • kill: 结束进程(-9: 无条件终止)

  • killall: 通过进程名结束进程,可使用通配符

  • df: 查看已挂载磁盘使用情况(-h: 用户易读形式)

  • du: 查看特定目录的磁盘使用情况 (-h: 用户易读形式;--max-depth=1:当前目录下的文件夹)

    • 查看当前目录所有文件夹的占用空间大小:du -h --max-depth=1

  • sort: 对文件内容进行排序(-M: 按月份排序,针对日志文件)

  • grep: 搜索数据

  • gzip/gunzip: GNU压缩工具,用Lempel-Ziv编码

  • zip/unzip: Windows上PKZIP工具的Unix实现

  • tar: 归档数据(-zxvf: 解压缩.tar.gz或.tgz文件)

  • history: 查看最近使用的历史命令

3. 设置环境变量

3.1 全局环境变量

配置文件:/etc/profile 或 /etc/environment

  • export LANG=en_US.UTF-8 # 配置语言

  • export TZ=Asia/Shanghai # 配置时区

3.2 用户级环境变量

配置文件:~/.bashrc 或 ~/.bash_profile

  • export JAVA_HOME=/usr/lib/jvm/java-11-openjdk

  • export M2_HOME=/opt/apache-maven-3.8.6

  • export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin # 配置JAVA和Maven

3.3 应用特定变量

配置文件:服务启动脚本(如:/etc/systemd/system/myapp.service)

  • [Service]

  • Environment="SPRING_PROFILES_ACTIVE=prod"

  • Environment="DB_URL=jdbc:mysql://db-prod:3306/app"

3.4 临时会话变量

配置方式:当前会话命令(如HTTP代理)

  • export http_proxy=http://proxy.crop.com:8080

  • export http_proxy=http://proxy.crop.com:8080

3.5 安全敏感变量

配置方式:当前会话命令(如:文件权限控制)

  • echo 'export API_KEY=secret123' > ~/.app_secrets

  • chmod 600 ~/.app_secrets # 仅允许当前用户访问

3.6 开发/生产环境切换

配置文件:~/.bashrc

if [ "$(hostname)" = "dev-server" ]; then
  export ENV=dev
  export DEBUG=true
else
  export ENV=prod
fi

3.7 动态加载配置

  • source ~/.bashrc

4. 理解Linux文件权限

4.1 关于用户

  • useradd : 添加新用户(-c:添加备注; -d:指定主目录名称; -m: 创建用户的HOME目录)

    • useradd -d [用户目录所在路径] -m -s /bin/bash [用户名] passwd [用户名]

  • userdel: 删除用户 (-r:删除用户的HOME目录及其邮件目录)

  • usermod:修改用户(-l: 修改登录名; -L:锁定帐户使其无法登录; -p:修改密码; -U:解除锁定)

  • passwd/chpasswd: 修改用户密码(后者适合对大量用户修改密码)

4.2 关于组

  • groupadd: 创建新组(初始状态没有用户,通过usermod -G [GROUPNAME] [USERNAME]方式将用户添加到组中)

  • groupmod: 修改GID或组名 (-g: GID; -n: 组名)

4.3 关于文件权限

  • 文件类型

    • -: 代表文件

    • d: 代表目录

    • l: 代表链接

    • c: 代表字符型设备

    • b: 代表块设备

    • n: 代表网络设备

  • 文件权限

    • r: 可读 / w: 可写/ x: 可执行

    • chmod: 改变权限(+:增加权限; -: 移除权限;=: 设置权限)

    • chown: 改变属主

    • chgrp: 改变属组

    • 文件的全权限值:666; 目录的全全权限值为: 777

4.4 共享文件功能实现流程

  1. groupadd shared_group: 创建共享组

  2. mkdir /home/shared_dir: 创建共享目录

  3. chmod 2770 /home/shared_dir: 设置特殊权限(2:自动继承组权限, 770:群主和群成员可读写)

  4. usermod -aG shared_group user_1/user_2... : 添加用户到组,每次添加一个用户

  5. setfacl -d -m g::rwx /home/shared_dir :设置新创建文件默认权限,保证新文件组成员都能读写

5. 管理文件系统

  • fdisk /dev/sdb : 创建分区(sdb为物理磁盘名称,系统默认分配)

    • p: 显示存储设备的详细信息

    • n: 创建新的分区

    • w: 保存更改

  • type mkfs.ext4 /dev/sdb1 : 创建文件系统(在将数据存储到分区之前,必须用某种文件系统对其进行格式化)

  • mount -t ext4 /dev/sdb1 /mnt/my_partition: 将新文件系统挂载到虚拟目录中(-t: 指定文件系统类型)

  • fsck: 文件系统检查与修复

    • -a: 如果检测到错误,自动修复文件系统

    • -A:检查/etc/fstab文件中列出的所有文件系统

6. 安装软件程序

  • apt-get:Debian/Ubuntu系安装命令,从软件源仓库在线安装,自动处理依赖关系

  • dpkg -i 软件包名.deb:仅操作本地.deb文件,不自动解决依赖

  • yum: RHEL/CentOS系安装命令

7. 使用编辑器(一图足以!)


评论