Linux常用命令总结

基本格式

command [-options] [parameter]

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

基础命令

ls:列出全部文件

语法:ls [-a -l -h] [Linux路径]

  • -a:all,列出全部文件(包含隐藏的文件/文件夹)
  • -l:表示以列表形式展示内容,并展示更多信息
  • -h:表示以易于阅读的形式,列出文件大小。如K、M、G。-h必须要搭配-l一起使用
  • Linux路径:此命令的可选参数
    当不使用选项和参数的时候,直接使用ls命令本体,表示以平铺形式,列出当前工作目录下的内容

cd:切换当前工作目录

语法:cd [Linux路径]

  • cd命令无需选项,只有参数。表示要切换到哪个目录下
  • cd命令直接执行,不写参数,表示切回到用户的HOME目录

pwd:查看当前工作目录

语法:pwd

pwd命令,无选项,无参数,直接输入pwd即可

mkdir:创建目录(文件夹)

语法:mkdir [-p] [Linux路径]

  • 参数必填,表示Linux路径,即要创建的文件夹的路径
  • -p选项表示,自动创建不存在的父级目录,适用于创建连续多层级的目录

touch:创建文件

语法:touch [Linux路径]

  • touch命令无选项,参数必填,表示要创建的文件路径

cat:查看文件内容

语法:cat [Linux路径]

  • cat命令无选项,参数必填,表示被查看的文件路径

more:查看文件内容

cat将内容直接全部显示出来。

more支持分页,如果文件内容过多,可以一页一页展示。

空格翻页,按q退出查看,b切换上一页。

语法:more [Linux路径]

  • more命令没有选项,参数必填,表示被查看的文件路径

cp:复制文件、文件夹

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

  • -r:可选,用于复制文件夹使用,表示递归
  • 参数1:Linux路径,表示被复制的文件或者文件夹
  • 参数2:Linux路径,表示被复制去的地方
    示例:
  • cp a.txt b.txt:复制当前目录下a.txt为b.txt
  • cp a.txt test/:复制当前目录下a.txt到test文件夹内
  • cp -r test test2:复制文件夹test到当前test2文件夹内

mv:移动文件、文件夹

语法:mv 参数1 参数2

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

rm:删除文件、文件夹

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

  • -r:选项,用于删除文件夹
  • -f:表示force,强制删除(不会弹出提示确认信息)
  • 普通用户删除内容时候不会弹出提示,只有root管理员用户删除内容时候会有提示
  • 参数1、参数2、...参数N表示要删除的文件或者文件夹路径,按照空格隔开

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

  • 符号*表示通配符,即匹配任意内容
  • test*:表示匹配任何以test开头的内容
  • *test:表示匹配任何以test结尾的内容
  • test:表示匹配任何包含test的内容

which:查看命令的程序文件存放位置

语法:which 参数

  • 参数:被查看的命令

find:查找文件

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

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

  • 符号*表示通配符,即匹配任意内容
  • test*:表示匹配任何以test开头的内容
  • *test:表示匹配任何以test结尾的内容
  • test :表示匹配任何包含test的内容
    示例:
  • 查找名字中包含test的文件:find / -name "test"

find:按文件大小查找文件

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

  • ±表示大于和小于
  • n表示大小数字
  • kMG表示大小单位,KB、MB、GB。k小写
    示例:
  • 查找小于10KB的文件:find / -size -10K
  • 查找大于100MB的文件:find / -size +100M
  • 查找大于1GB的文件:find / -size +1G

grep:过滤文件内容

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

  • -n:可选,表示在结果中显示匹配的行的行号
  • 关键字:必填。表示过滤的关键字,带有空格或者其他特殊符号
  • 文件路径:必填。表示过滤内容的文件路径,可以作为内容输入的端口

wc:统计内容数量

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

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

管道符 | :将管道符左边命令的结果作为右边命令的输入

示例:

  • cat a.txt | grep test:将cat a.txt的结果,作为grep命令的输入
    支持嵌套:
  • cat a.txt | grep test | grep hello

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

语法:echo 输出的内容

  • 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用""包围
    示例:
  • echo "hello Linux"

反引号`

示例:

  • echo pwd。pwd被作为普通字符输出了,如果使用反引号包括,则会将pwd执行后的结果进行输出

重定向符:> 和 >>

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

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

    示例:

  • echo "hello" > test.txt
  • echo "hello test1" > test.txt:执行后覆盖新内容
  • echo "hello test2" >> test.txt:再次执行,使用>>追加新内容

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

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

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

head:查看文件头部内容

语法:head [-n] 参数

  • 参数:被查看的文件
  • -n:查看的行数

su:切换用户

su [-] [用户名]

  • -:可选,表示是否在切换用户后加载环境变量
  • 用户名:表示要切换的用户。省略时候表示要切换到root用户

用户、用户组

Linux系统中可以

  • 配置多个用户
  • 配置多个用户组
  • 用户可以加入多个用户组
    Linux中关于权限的管控有两个级别,分别是:
  • 针对用户的权限控制
  • 针对用户组的权限控制

用户组管理

  • 创建用户组:groupadd 用户组名
  • 删除用户组:groupdel 用户组名
    用户管理
  • 创建用户:useradd [-g -d] 用户名
  • -g:指定用户的组,不指定时候会创建同名组并自动加入。指定-g需要组已存在
  • -d:指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
  • 示例:
  • useradd test2 -g test -d /home/test
  • 删除用户:userdel [-r] 用户名
  • -r:删除用户的HOME目录,不使用-r,删除用户的时候,HOME目录会保留
  • 查看用户所属组:id [用户名]
  • 用户名:被查看的用户,如果不提供则查看自身
  • 修改用户所属组:usermod -aG 用户组 用户名,将指定的用户加入指定的用户组

getenv:查看系统用户或者组信息

  • getenv passwd:查看系统全部用户信息
  • getenv gropu:查看系统全部组信息

ctrl + c:强制停止

ctrl + d:退出或者登出,不能用于退出vi/vim

history:搜索历史输入过的命令

ctrl + l:清屏

clear:清屏

yum安装

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

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

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

systemctl:控制系统服务的启动或者关闭等

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

  • start:启动
  • stop:关闭
  • restart:重启
  • status:查看状态
  • enable:开启开机自启
  • disable:关闭开机自启

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
  • date +%Y-%m-%d %H:%M:%S

时区

修改时区为中国时区

rm -f /etc/localtime

sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ntp:同步时间

安装:yum install -y ntp

启动管理:systemctl start | stop | restart | status | disabled | enable ntpd

手动校准时间:ntpdate -u ntp.aliyun.com

ifconfig:查看本机ip地址

如果无法使用ifconfig,需要安装yum -y install net-tools

或者使用ip addr

hostname:查看主机名

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

ping:检查服务器是否可以联通

ping [-c num] ip或者主机名

  • -c:检查的次数,不使用-c选项,将无限次数持续检查
  • 参数:ip或者主机名,被检查的服务器的ip地址或者主机名地址

ps:查看进程信息

语法:ps -ef:查看全部进程信息,可以搭配grep做过滤:ps -ef | grep xxx

Kill:关闭进程

语法:kill [-9] 进程ID

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

wget:下载文件

wget是非交互式的文件下载器,可以在命令行内下载网络文件

语法:wget [-b] url

  • -b:可选,后台下载,会将日志写入到当前工作目录的wget-log文件
  • 参数:url,下载链接

curl:发起网络请求

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

语法:curl [-O] url

  • -O:选项,用于下载文件,当url是下载链接的时候,可以使用此选项来保存文件
  • 参数:url,要发起请求的网络地址

nmap:查看端口占用

安装nmap:yum -y install nmap

语法:nmap ip地址

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

语法:netstat -anp | grep xxx

top:查看主机运行状态

语法:top:查看基础信息

df:查看磁盘占用

语法:df [-h]

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

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

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

环境变量

  • 临时设置:export 变量名 = 变量值
  • 永久设置
  • 针对用户,设置用户HOME目录内:.bashrc文件
  • 针对全局,设置/etc/profile

$符号:取出指定的环境变量的值

语法:$变量名

示例:

  • echo $PATH:输出PATH环境变量的值
  • echo P A T H A B C :输出 P A T H 环境变量的值以及 A B C 。如果变量名和其它内容混淆在一起,可以使用 {PATH}ABC:输出PATH环境变量的值以及ABC。如果变量名和其它内容混淆在一起,可以使用 PATHABC:输出PATH环境变量的值以及ABC。如果变量名和其它内容混淆在一起,可以使用{}

压缩

语法:tar -zcvf 压缩包 被压缩...被压缩2...被压缩N

  • -z:表示使用gzip
    语法:zip [-r] 参数1 参数2 参数N
  • -r:被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-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内

解压

语法:tar -zxvf 被解压的文件 -C要解压去的地方

  • -z:表示使用gzip,可以省略
  • -C:指定要解压去的地方,不写默认解压到当前目录

语法:unzip [-d] 参数

  • -d:指定要解压去的位置
  • 参数:被解压的zip压缩包文件
    示例:
  • unzip test.zip:将test.zip解压到当前目录
  • unzip test.zip -d /home/test,将test.zip解压到指定的文件夹内(home/test)

SCP:文件传输

示例:

  • 压缩:zip -r test.zip test
  • 传输:scp -p test.zip root@ip地址:/opt/apache-tomcat-8.5.56-new/webapps
相关推荐
lldhsds1 分钟前
书生大模型实战营第四期-入门岛-1. Linux前置基础
linux
wowocpp24 分钟前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
山河君36 分钟前
ubuntu使用DeepSpeech进行语音识别(包含交叉编译)
linux·ubuntu·语音识别
鹏大师运维40 分钟前
【功能介绍】信创终端系统上各WPS版本的授权差异
linux·wps·授权·麒麟·国产操作系统·1024程序员节·统信uos
筱源源43 分钟前
Elasticsearch-linux环境部署
linux·elasticsearch
萨格拉斯救世主1 小时前
jenkins使用slave节点进行node打包报错问题处理
运维·jenkins
川石课堂软件测试1 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
龙哥说跨境1 小时前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
pk_xz1234563 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强3 小时前
Linux之sed命令详解
linux·运维·服务器