基本格式
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