# Linux 基础命令
# Linux 的目录结构
/
,根目录是最顶级的目录了- Linux 只有一个顶级目录:
/
- 路径描述的层次关系同样适用
/
来表示 - /home/qingyeling/a.txt,表示根目录下的 home 文件夹内有 qingyeling 文件夹,内有 a.txt
# ls 命令
功能:列出文件夹信息
语法: ls [-l -h -a] [参数]
- 参数:被查看的文件夹,不提供参数,表示查看当前工作目录
- -l,以列表形式查看
- -h,配合 - l,以更加人性化的方式显示文件大小
- -a,显示隐藏文件
# 隐藏文件、文件夹
在 Linux 中以 .
开头的,均是隐藏的。
默认不显示出来,需要 -a
选项才可查看到。
# pwd 命令
功能:展示当前工作目录
语法: pwd
# cd 命令
功能:切换工作目录
语法: cd [目标目录]
参数:目标目录,要切换去的地方,不提供默认切换到 当前登录用户HOME目录
# HOME 目录
每一个用户在 Linux 系统中都有自己的专属工作目录,称之为 HOME 目录。
-
普通用户的 HOME 目录,默认在:
/home/用户名
-
root 用户的 HOME 目录,在:
/root
FinalShell 登陆终端后,默认的工作目录就是用户的 HOME 目录
# 相对路径、绝对路径
-
相对路径,非
/
开头的称之为相对路径相对路径表示以
当前目录
作为起点,去描述路径,如test/a.txt
,表示当前工作目录内的 test 文件夹内的 a.txt 文件 -
绝对路径,以
/
开头的称之为绝对路径绝对路径从
根
开始描述路径
# 特殊路径符
.
,表示当前,比如./a.txt,表示当前文件夹内的a.txt
文件..
,表示上级目录,比如../
表示上级目录,../../
表示上级的上级目录~
,表示用户的 HOME 目录,比如cd ~
,即可切回用户 HOME 目录
# mkdir 命令
功能:创建文件夹
语法: mkdir [-p] 参数
- 参数:被创建文件夹的路径
- 选项:-p,可选,表示创建前置路径
# touch 命令
功能:创建文件
语法: touch 参数
- 参数:被创建的文件路径
# cat 命令
功能:查看文件内容
语法: cat 参数
- 参数:被查看的文件路径
# more 命令
功能:查看文件,可以支持翻页查看
语法: more 参数
- 参数:被查看的文件路径
- 在查看过程中:
空格
键翻页q
退出查看
# cp 命令
功能:复制文件、文件夹
语法: cp [-r] 参数1 参数2
- 参数 1,被复制的
- 参数 2,要复制去的地方
- 选项:-r,可选,复制文件夹使用
示例:
- 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:被移动的
- 参数 2:要移动去的地方,参数 2 如果不存在,则会进行改名
# rm 命令
功能:删除文件、文件夹
语法: rm [-r -f] 参数...参数
- 参数:支持多个,每一个表示被删除的,空格进行分隔
- 选项:-r,删除文件夹使用
- 选项:-f,强制删除,不会给出确认提示,一般 root 用户会用到
rm 命令很危险,一定要注意,特别是切换到 root 用户的时候。
# which 命令
功能:查看命令的程序本体文件路径
语法: which 参数
- 参数:被查看的命令
# find 命令
功能:搜索文件
语法 1 按文件名搜索: find 路径 -name 参数
- 路径,搜索的起始路径
- 参数,搜索的关键字,支持通配符 *, 比如:
*
test 表示搜索任意以 test 结尾的文件
# grep 命令
功能:过滤关键字
语法: grep [-n] 关键字 文件路径
- 选项 - n,可选,表示在结果中显示匹配的行的行号。
- 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用”” 将关键字包围起来
- 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
参数文件路径,可以作为管道符的输入
# wc 命令
功能:统计
语法: wc [-c -m -l -w] 文件路径
- 选项,-c,统计 bytes 数量
- 选项,-m,统计字符数量
- 选项,-l,统计行数
- 选项,-w,统计单词数量
- 参数,文件路径,被统计的文件,可作为内容输入端口
参数文件路径,可作为管道符的输入
# 管道符 |
写法: |
功能:将符号左边的结果,作为符号右边的输入
示例:
cat a.txt | grep qingyeling
,将 cat a.txt 的结果,作为 grep 命令的输入,用来过滤 qingyeling
关键字
可以支持嵌套:
cat a.txt | grep qingyeling | grep itcast
# echo 命令
功能:输出内容
语法: echo 参数
- 参数:被输出的内容
# ` 反引号
功能:被两个反引号包围的内容,会作为命令执行
示例:
- echo `pwd`,会输出当前工作目录
# tail 命令
功能:查看文件尾部内容
语法: tail [-f] 参数
- 参数:被查看的文件
- 选项:-f,持续跟踪文件修改
# head 命令
功能:查看文件头部内容
语法: head [-n] 参数
- 参数:被查看的文件
- 选项:-n,查看的行数
# 重定向符
功能:将符号左边的结果,输出到右边指定的文件中去
>
,表示覆盖输出>>
,表示追加输出
# 权限控制
# su 命令
切换用户
语法: su [-] [用户]
# sudo 命令
比如:
qingyeling ALL=(ALL) NOPASSWD: ALL |
在 visudo 内配置如上内容,可以让 qingyeling 用户,无需密码直接使用 sudo
# chmod 命令
修改文件、文件夹权限
语法: chmod [-R] 权限 参数
-
权限,要设置的权限,比如 755,表示:
rwxr-xr-x
-
参数,被修改的文件、文件夹
-
选项 - R,设置文件夹和其内部全部内容一样生效
# chown 命令
修改文件、文件夹所属用户、组
语法: chown [-R] [用户][:][用户组] 文件或文件夹
# 用户组管理
# 用户管理
# genenv 命令
-
getenv group
,查看系统全部的用户组 -
getenv passwd
,查看系统全部的用户
# env 命令
查看系统全部的环境变量
语法: env
# Linux 常用操作
# 软件安装
- CentOS 系统使用:
- yum [install remove search] [-y] 软件名称
- install 安装
- remove 卸载
- search 搜索
- -y,自动确认
- yum [install remove search] [-y] 软件名称
- Ubuntu 系统使用
- apt [install remove search] [-y] 软件名称
- install 安装
- remove 卸载
- search 搜索
- -y,自动确认
- apt [install remove search] [-y] 软件名称
yum 和 apt 均需要 root 权限
# systemctl
功能:控制系统服务的启动关闭等
语法: systemctl start | stop | restart | disable | enable | status 服务名
- start,启动
- stop,停止
- status,查看状态
- disable,关闭开机自启
- enable,开启开机自启
- restart,重启
# 软链接
功能:创建文件、文件夹软链接(快捷方式)
语法: ln -s 参数1 参数2
- 参数 1:被链接的
- 参数 2:要链接去的地方(快捷方式的名称和存放位置)
# 日期
语法: 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 到现在的秒数
# 时区
修改时区为中国时区
# ntp
功能:同步时间
安装: yum install -y ntp
启动管理: systemctl start | stop | restart | status | disable | enable ntpd
手动校准时间: ntpdate -u ntp.aliyun.com
# ip 地址
格式:a.b.c.d
- abcd 为 0~255 的数字
特殊 IP:
- 127.0.0.1,表示本机
- 0.0.0.0
- 可以表示本机
- 也可以表示任意 IP(看使用场景)
查看 ip: ifconfig
# 主机名
功能:Linux 系统的名称
查看: hostname
设置: hostnamectl set-hostname 主机名
# 配置 VMware 固定 IP
-
修改 VMware 网络,参阅 PPT,图太多
-
设置 Linux 内部固定 IP
修改文件:
/etc/sysconfig/network-scripts/ifcfg-ens33
示例文件内容:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" # 改为 static,固定 IP
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="1b0011cb-0d2e-4eaa-8a11-af7d50ebc876"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.101.131" # IP 地址,自己设置,要匹配网络范围
NETMASK="255.255.255.0" # 子网掩码,固定写法 255.255.255.0
GATEWAY="192.168.101.2" # 网关,要和 VMware 中配置的一致
DNS1="192.168.101.2" # DNS1 服务器,和网关一致即可
# ps 命令
功能:查看进程信息
语法: ps -ef
,查看全部进程信息,可以搭配 grep 做过滤: ps -ef | grep xxx
# kill 命令
功能:杀死进程
语法: kill [-9] 进程id
# nmap 命令
nmap 主机地址
# netstat 命令
功能:查看端口占用
用法: netstat -anp | grep xxx
# ping 命令
测试网络是否联通
语法: ping [-c num] 参数
选项:-c, 检查的次数,不使用 - c 选项,将无限次数持续检查
参数:ip 或主机名,被检查的服务器的 ip 地址或主机名地址
# wget 命令
# curl 命令
# top 命令
功能:查看主机运行状态
语法: top
,查看基础信息
可用选项:
交互式模式中,可用快捷键:
# df 命令
查看磁盘占用
语法: df[-h]
选项:-h, 以更加人性化的单位显示
# iostat 命令
查看 CPU、磁盘的相关信息
# sar 命令
查看网络统计
# 环境变量
- 临时设置:export 变量名 = 变量值
- 永久设置:
- 针对用户,设置用户 HOME 目录内:
.bashrc
文件 - 针对全局,设置
/etc/profile
- 针对用户,设置用户 HOME 目录内:
# PATH 变量
记录了执行程序的搜索路径
可以将自定义路径加入 PATH 内,实现自定义命令在任意地方均可执行的效果
# $ 符号
可以取出指定的环境变量的值
语法: $变量名
示例:
echo $PATH
,输出 PATH 环境变量的值
echo ${PATH}ABC
,输出 PATH 环境变量的值以及 ABC
如果变量名和其它内容混淆在一起,可以使用 ${}
# 压缩解压
# 压缩
tar -zcvf 压缩包 被压缩1...被压缩2...被压缩N
- -z 表示使用 gzip,可以不写
zip [-r] 参数1 参数2 参数N
# 解压
tar -zxvf 被解压的文件 -C 要解压去的地方
- -z 表示使用 gzip,可以省略
- -C,可以省略,指定要解压去的地方,不写解压到当前目录