Linux常用命令总结

发布于:2024-12-06 ⋅ 阅读:(118) ⋅ 点赞:(0)

目录

学习视频:https://www.bilibili.com/video/BV1n84y1i7td

命令通用格式

Command [-options] [parameter]
  • Command:命令本身。
  • -options:可选命令选项,可以通过选项控制命令的行为细节。
  • parameter:可选命令的参数,多数用于命令的指向目标。

示例:

  • ls -l /home/test
  • cp -r test1 test2

基础命令

clear/ctrl + l:清除屏幕内容

ls:列出目录下的内容

  • ls -a:列出目录下全部文件,包含隐藏的文件/文件夹
  • ll:以列表竖向排列的形式展示内容
  • ll -h:显示文件大小单位

示例:
请添加图片描述

cd [Linux路径]:切换目录到指定的文件夹下

pwd:查看当前所在的工作目录请添加图片描述

mkdir:创建新的目录或者文件夹

语法:mkdir [-p] Linux路径

  • -p:可选。表示自动创建不存在的父级目录,适用于创建连续多层级的目录。

示例:
请添加图片描述

touch:创建文件

语法:touch Linux路径

  • touch命令无选项,路径代表要创建的文件路径,相对、绝对路径、特殊路径均可使用。

cat:查看文件内容

语法:cat Linux路径

  • cat命令无选项,路径代表要查看的文件路径,相对、绝对路径、特殊路径均可使用。

示例:

请添加图片描述

more查看大文件内容,适用于分页查看

语法:more Linux路径

  • 空格翻页,q退出查看。

cp复制文件或文件夹

语法:cp [-r] 参数1 参数2

  • -r:选项,可选。用于复制文件夹使用,表示递归
  • 参数1,Linux路径,表示被复制文件或文件夹
  • 参数2,Linux路径,表示要复制去的地方

请添加图片描述

mv:移动文件或文件夹

语法:mv 参数1 参数2

  • 参数1:Linux路径,表示要被移动的文件或文件夹
  • 参数2:Linux路径,表示要被移动去的地方,如果目标不存在,则进行改名

请添加图片描述

rm:删除文件、文件夹

语法:rm [-r -f] 参数1 参数2 ...参数N

  • -r:选项用于删除文件夹

  • -f:表示force,强制删除(不会弹出提示确认删除的信息)

  • 参数1、参数2…参数N表示要删除的文件或文件夹路径,按照空格隔开
    请添加图片描述

  • rm命令支持通配符*,用来做模糊匹配

    • test*,表示匹配任何以test开头的内容
    • *test,表示匹配任何以test结尾的内容
    • test,表示匹配任何包含test的内容

which:查看所有的一系列命令的程序文件存放在哪里

语法:Which 要查找的命令

请添加图片描述

find:查找文件

语法:find 起始路径 -name "被查找的文件名"

请添加图片描述

  • find命令支持通配符*,用来做模糊匹配
    • test*,表示匹配任何以test开头的内容
    • *test,表示匹配任何以test结尾的内容
    • test,表示匹配任何包含test的内容

语法:Find 起始路径 -size +|- n[kMG]

  • +、-表示大于和小于
  • n表示大小数字
  • kMG表示大小单位,k(小写字母)表示kb,M表示MG,G表示GB

示例:

  • 查找小于10kb的文件:find / -size -10k
  • 查找大于100MB的文件:find / -size +100M
  • 查找大于1G的文件:find / -size +1G

grep:从文件中通过关键字过滤文件行

语法:grep [-n] 关键字 文件路径

  • -n:可选,表示在结果中显示匹配的行的行号
  • 关键字:必填,表示过滤的关键字,带有空格或者其他特殊符号,建议使用双引号将关键字包围起来
  • 文件路径:必填,表示过滤的文件路径,可作为内容输入端口

请添加图片描述

wc:数量统计

语法:wc [-c -m -l -w] 文件路径

  • -c:统计bytes数量
  • -m:统计字符数量
  • -l:统计行数
  • -w:统计单词数量
  • 文件路径:被统计的文件,可作为内容输入端口

请添加图片描述

|:管道符,将左边的结果作为右边内容的输入。

echo:在命令行内输出指定内容

语法:echo 输出的内容

  • 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用""包围
  • 带有空格或者\等特殊符号,建议使用双引号包围
  • 使用双引号

请添加图片描述

\>和>>:重定向符,将左侧命令的结果写入到右侧指定的文件中

  • >:将左侧命令的结果覆盖写入到右侧指定的文件中

  • >>:将左侧命令的结果追加写入到右侧指定的文件中

请添加图片描述

tail:查看文件尾部内容,跟踪文件的最新更新

语法:tail [-f -num] Linux路径

  • Linux路径:表示被跟踪的文件路径
  • -f:表示持续跟踪
  • -num:表示查看尾部多少行,不填默认为10

请添加图片描述

vim|vi:编辑文件

语法:

  • vi 文件路径
  • vim 文件路径,vim兼容全部的vi功能
    • 如果文件路径表示的文件不存在,则会用于编辑新文件
    • 如果文件路径表示的文件存在,则会用于编辑已有文件

流程:

  1. vim 文件路径
  2. i:在当前光标位置进入输入模式
  3. esc:回到命令模式
  4. 退出:
    1. 退出不保存::q!
    2. 仅退出::q
    3. 退出并保存::wq

用户权限

root用户,超级管理员

root用户拥有最大的系统操作权限,普通用户的权限,一般在其HOME目录内是不受限的,一旦出了HOME目录,大多数地方,普通用户仅仅只有只读和操作权限,无修改权限

su:切换账户命令

语法:su [-] [用户名]

  • -:可选,表示是否在切换用户后加载环境变量
  • 用户名:表示要切换的用户,用户名不写表示切换到root
  • 切换用户后,可以使用exit命令退回到上一个用户,也可以使用快捷键ctrl + d退回到上一个用户
  • 使用普通用户切换到其他用户需要输入密码
  • 使用root用户切换到其他用户不需要输入密码,可以直接切换

sudo:为普通命令授权,临时以root身份执行

语法:sudo 其它命令

  • 在其他命令之前,带上sudo,即可为这一条命令临时赋予root授权
  • 并不是所有用户,都有权使用sudo,需要为普通用户配置sudo认证

配置认证:

  1. 切换到root用户,执行visudo命令,会自动通过编译器打开/etc/sudoers
  2. 在文件最后添加
用户名 ALL = (ALL) NOPASSWD:ALL
  1. 通过wq命令保存
  2. 切换回普通用户,此时执行的命令均以root执行

请添加图片描述

请添加图片描述

用户、用户组

Linux系统中可以配置多个用户;可以配置多个用户组;用户可以加入到多个用户组中。

Linux系统中关于权限的管控级别有两个:

  • 针对用户的权限控制
  • 针对用户组的权限控制

用户组管理(需要root权限)

创建用户组:groupadd 用户组名
删除用户组:groupdel 用户组名

用户管理(需要root权限)

创建用户:useradd [-g -d] 用户名
  • -g:指定用户的组,不指定用户的组,会在创建用户时候自动创建和用户名相同的组并加入。指定-g需要组一定存在,如果已存在同名组,必须使用-g

  • -d:指定用户的HOME路径,不指定,HOME目录会默认为/home/用户名

删除用户:userdel [-r] 用户名
  • -r:删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
查看用户所属组:id [用户名]
  • 用户名:被查看的用户,如果不写则查看自身
修改用户所属组:usermod -aG 用户组 用户名

gentent passwd查看系统中的用户

  • 共有7份信息,分别是:
    • 用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
      请添加图片描述

gentent group:查看系统中的用户组

  • 共有3份信息,分别是:
    • 组名称:组认证(显示为x):组ID
      请添加图片描述

权限信息

请添加图片描述

  1. 第一部分表示文件、文件夹的权限控制信息
  2. 第二部分表示文件、文件夹所属用户
  3. 第三部分表示文件、文件夹所属用户组

在Linux系统中,rwx分别代表文件或目录的读(read)、写(write)和执行(execute)权限。

  • r(read):读权限,表示可以读取文件的内容,或者列出目录中的文件列表。
  • w(write):写权限,表示可以修改文件的内容,或者向目录中添加、删除文件。
  • x(execute):执行权限,表示可以执行文件(如果文件是可执行程序),或者进入目录。

chmod:修改文件、文件夹的权限信息

  • 只有文件、文件夹的所属用户或者root用户可以修改

语法:chmod [-R] 权限 文件或文件夹

  • -R:对文件夹内的全部内容应用同样操作

示例:

  • chmod u=rwx,g=rx hello.txt:将文件权限修改为rwxr-x–x。u表示user所属用户权限,g表示group组权限,o表示other其他权限
  • chmod -R u=rwx,g=rx,o=x test:将文件夹test及文件夹内全部内容设置为rwxr-x–x

权限数字序号

权限可以用3位数字代表:第一位数字表示用户权限,第二位数字表示用户组权限,第三位数字表示其他用户权限

  • 0:无任何权限,即—
  • 1:仅有x权限,即–x
  • 2:仅有w权限,即-w-
  • 3:仅有w和x权限,即-wx
  • 4:仅有r权限,即r–
  • 5:有r和x权限,即r-x
  • 6:有r和w权限,即rw-
  • 7:有全部权限,即rwx

示例:

777:拥有全部权限

chown:修改文件、文件夹所属用户和用户组

普通用户无法修改所属为其他用户或用户组,此命令只适用于root用户执行

语法:chown [-R] [用户][:][用户组] 文件或文件夹

  • -R:同chmod,对文件夹内全部内容应用相同规则
  • 用户:修改为所属用户
  • 用户组:修改为所属用户组
  • ::用于分割用户和用户组

示例:

  • chown root hello.txt:将hello.txt所属用户修改为root
  • chown :root hello.txt:将hello.txt所属用户组修改为root
  • chown -R root test:将文件夹test所属用户修改为root并对文件夹全部内容应用同样规则

实用快捷键

命令 作用
Ctrl + c 强制停止
Ctrl + d 退出登出
history 查看历史命令
Ctrl + l 或 clear 清屏

软件安装

yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题

语法:yum [-y] [install | remove | search] 软件名称

  • -y:自动确认,无需手动确认安装或卸载过程
  • install:安装
  • remove:卸载
  • search:搜索
  • yum命令需要root权限,可以su切换到root或者使用sudo提权
  • yum命令需要联网

控制软件启动/关闭

systemctl:控制软件的启动和关闭

语法:systemctl start | stop | status | enable | disable 服务名

  • start:启动
  • stop:关闭
  • status:查看状态
  • enable:开启开机自启
  • disable:关闭开机自启
  • 对应安装的第三方软件如果通过服务注册,也可以使用systemctl进行控制
  • 部分软件安装后没有自动集成到systemctl,需要手动添加

请添加图片描述

软连接

ln:创建软连接

在系统中创建软连接,可以将文件、文件夹链接到其他位置,类似windows的快捷方式

语法:ln -s 参数1 参数2

  • -s:创建软连接
  • 参数1:被链接的文件或文件夹
  • 参数2:链接到的目的地

示例:

  • ln -s /etc/yum.conf ~/yum.conf
  • ln -s /etc/yum ~/yum

日期和时区

date:在命令行中查看系统的时间

语法:date [-d] [+格式化字符串]

  • -d:按照给定的字符串显示日期,一般用于日期计算
  • 格式化字符串:通过特定的字符串标记,用来控制显示的日期格式
    • %Y:年
    • %y:年份后两位数字(00-99)
    • %m:月份(01_12)
    • %d:日(01_31)
    • %H:小时(00_23)
    • %M:分钟(00_59)
    • %S:秒(00_60)
    • %s:自1970-01-01 00:00:00 UTC到现在的秒数
  • 格式化年月日时分秒时候需要加上双引号来标记字符串是一个整体
  • date '+%Y-%m-%d'

请添加图片描述

修改时区

Linux系统默认时区非中国的东八区

  • 使用root权限,修改时区为东八区时区。将系统自带的localtime文件删除,并将/usr/sharz/zoneinfo/Asia/Shanghai文件链接为localtime文件即可
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

请添加图片描述

ntp程序:自动校准系统时间

  • 安装ntp:yum -y install ntpd
  • 启动并设置开机自启,设置自启后会定期更新校准时间:
    • systemctl start ntpd
      systemctl enable ntpd
      

或者手动校准(需要root权限):ntpdate -u ntp.aliyun.com

请添加图片描述

修改主机名

  • 查看主机名:hostname
  • 修改主机名:hostnamectl set-hostname 要修改主机名,需要root权限

请添加图片描述

ping:检查指定的网络服务器是否可联通

语法:ping [-c num] ip或主机名

  • -c:检查的次数,不使用-c将无限次持续检查

示例:

  • 检查到baidu是否联通:ping baidu.com

请添加图片描述

wget:在命令行内下载网络文件

语法:Wget [-b] url

  • -b:可选,后台下载,将日志写入到当前工作目录的wget-log文件
  • url:下载链接
  • tail -f wget-log:通过tail命令可以在后台查看下载进度
  • 无论是否下载完成,都会生成要下载的文件

curl:发送http网络请求,用户下载文件、获取信息等

语法:Curl [-O] url

  • -O:用于下载文件,当url是下载链接时,可以使用此选项保存文件

nmap:查看端口占用情况

  • 安装nmap:yum -y install nmap

语法:nmap 被查看的地址

netstat:查看指定端口的占用情况

语法:netstat -anp | grep 端口号

  • 安装:yum -y install net-tools

ps:查看系统中的进程信息

语法:ps [-e -f]

  • -e:显示全部的进程
  • -f:以完全格式化的形式展示信息(展示全部信息)
  • 一般固定用法:ps -ef 列出全部进程的全部信息

列说明:

  • UID:进程所属用户ID
  • PID:进程的进程号ID
  • PPID:进程的父ID(启动此进程的其他进程)
  • C:此进程的CPU占用率
  • STIME:进程的启动时间
  • TTY:启动此进程的终端序号,如果显示?表示非终端启动,是系统内置启动
  • TIME:进程占用CPU的时间,累计使用CPU的时间
  • CMD:进程对应的启动命令或者启动路径

Kill:关闭进程

语法:kill -9 [进程ID]

  • -9:表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭进程需要看自身的处理机制。

top:查看CPU、内存使用情况

语法:直接输入top即可,按q或者ctrl + c退出

默认每5s刷新一次

请添加图片描述

参数说明

行数 说明
第一行 top:命令名称;18:29:08:当前系统时间;up 2:09:已经启动了2个小时9分钟;2 users:表示2个用户登录了系统;load average:代表当前1、5、15分钟的负载
第二行 Tasks 103 total:103个进程;1 running:1个进程正在进行;102 sleeping:102个进程正在休眠;0 stopped:0个停止进程;0 zombie:0个僵尸进程
第三行 %Cpu(s):CPU使用率;0.0 us:用户cpu使用率;sy:系统使用率;ni:高优先级进程占用CPU时间百分比;id:空闲CPU率;wa:IO等待CPU占用率;hi:CPU硬件中断率;st:强制等待占用CPU率
第四行 KiB Mem:物理内存;total:总量;free:空闲;used:使用;buff/cache:buff和cache占用
第五行 KiB Swap:虚拟内存(交换空间);total:总量;free:空闲;used:使用,buff/cache:buff和cache占用
  • PID:进程ID
  • USER:进程所属用户
  • PR:进程优先级,越小越高
  • NI:负值表示高优先级,正值表示低优先级
  • VIRT:进程使用虚拟内存,单位KB
  • RES:进程使用物理内存,单位KB
  • SHR:进程使用共享内存,单位KB
  • S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
  • %CPU:进程占用CPU率
  • %MEM:进程占用内存率
  • TIME+:进程使用CPU时间总计,单位10毫秒
  • COMMAND:进程的命令或者名称或者程序文件路径

top命令选项

  • -p:只显示某个进程的信息
  • -d:设置刷新时间,默认5s
  • -c:显示产生进程的完整命令,默认是进程名
  • -n:指定刷新次数,比如top -n -3,刷新3次后退出
  • -b:以非交互非全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指定文件,比如top -p -n 3 > /tmp/top.tmp
  • -i:不显示任何闲置(idle)或者无用(zombie)的进程
  • -u:查找特定用户启动的进程

df:查看硬盘的使用情况

语法:df [-h]

  • -h:以更加人性化的单位显示

请添加图片描述

iostat:查看CPU、磁盘的相关信息

语法:iostat [-x] [num1] [num2]

  • -x:显示更多信息
  • num1:数字,刷新间隔
  • num2:数字,刷新几次

请添加图片描述

  • Device:设备硬盘
  • tps:设备每秒的传输次数
  • KB_read/s:设备每秒的读速度(KB)
  • KB_wrn/s:设备每秒写速度(KB)
  • KB_read:总的读数据量
  • KB_wrtn:总的写数据量

环境变量

  • env:查看已经配置的环境变量,键值对形式

    请添加图片描述

  • PATH:记录了系统执行任何命令的搜索路径。以冒号分隔路径,windows中PATH变量通过分号分隔路径。

    请添加图片描述

  • $符号:用于取变量的值

示例:

Echo $PATH:将PATH环境变量的值,通过echo语句输出出来。

请添加图片描述

  • 设置环境变量:
    • 临时设置:export 变量名 = 变量值
    • 永久生效:
      • 针对当前用户生效,配置在当前用户的:~/.bashrc文件中
      • 针对所有用户生效,配置在系统的:/etc/profile文件中
      • 通过source 配置文件,立刻生效

示例:

  • vim /etc/profile
  • echo $PATH
  • export PATH=$PATH:~Coot/myenv
  • source /etc/profile

tar

Linux常用两种压缩格式

  • .tar:tarball,归档文件,即简单的将文件组装到一个.tar文件内,并没有太多文件体积的减少,仅仅是简单的封装。
  • .gz:常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大减少压缩后的体积。

语法:tar [-c -v -x -f -z -C] 参数1 参数2 ...参数N

  • -c:创建压缩文件,用于压缩模式
  • -v:显示压缩,解压过程,用于查看进度
  • -x:解压模式
  • -f:要创建的文件夹或者要解压的文件夹,-f选项必须在所有选项中位置处于最后一个
  • -z:gzip模式,不使用-z就是普通的tar格式
  • -C:选择解压的目的地,用于解压模式

压缩示例:

  • tar -cvf test.rar 1.txt 2.txt 3.txt:将1.txt、2.txt、3.txt压缩到test.rar文件内
  • tar -zcvf test.rar 1.txt 2.txt 3.txt:将1.txt、2.txt、3.txt压缩到test.tar.gz文件内,使用gzip模式

解压示例:

  • tar -xvf test.tar:解压test文件
  • tar -xvf test.tar -C /home/test:解压至指定目录
  • tar -xvf test.tar.gz -C /home/test:解压至指定目录

zip:压缩文件为zip压缩包

语法:zip [-r] 参数1 参数2 ... 参数N

  • -r:被压缩得包含文件夹的时候,需要使用-r选项

示例:

  • zip test.zip a.txt b.txt c.txt:将a.txt,b.txt,c.txt文件压缩到test.zip文件内。
  • zip -r test.zip test a.txt:将test、a.txt文件压缩到test.zip文件内。

unzip:解压zip压缩包

语法:unzip [-d] 参数

  • -d:指定要解压的位置
  • 参数:被解压的zip压缩包文件

示例:

  • unzip test.zip:将zip解压到当前目录
  • unzip test.zip -d /home/test:将test.zip解压到home下的test文件夹

网站公告

今日签到

点亮在社区的每一天
去签到