Linux 基础命令

Linux 的目录结构

image-20221027214128453

  • /,根目录是最顶级的目录了
  • Linux 只有一个顶级目录:/
  • 路径描述的层次关系同样适用 / 来表示
  • /home/itheima/a.txt,表示根目录下的 home 文件夹内有 itheima 文件夹,内有 a.txt

ls 命令

功能:列出文件夹信息

语法:ls [-l -h -a] [参数]

  • 参数:被查看的文件夹,不提供参数,表示查看当前工作目录
  • -l,以列表形式查看
  • -h,配合 - l,以更加人性化的方式显示文件大小
  • -a,显示隐藏文件

对应的权限细节

权限共 10 位 eg: lrwxrwxrwx

r— 可读

w— 可写

x— 可执行

无权限 -

第一位:代表文件类型

‘-‘代表普通文件

d 代表目录文件

l 代表链接文件

2~4 代表归属用户权限

5~7 代表归属组权限

8~10 代表其他用户权限

权限位数字表示

权限位数字表示法(8 进制数)

rw- 110 —>6 用户位

r— 100 —>4 组权限位

r— 100 —>4 其他权限位

前面补 0

最后表示为 0644

隐藏文件、文件夹

在 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 itheima,将 cat a.txt 的结果,作为 grep 命令的输入,用来过滤 itheima 关键字

可以支持嵌套:

cat a.txt | grep itheima | grep itcast

echo 命令

功能:输出内容

语法:echo 参数

  • 参数:被输出的内容

` 反引号

功能:被两个反引号包围的内容,会作为命令执行

示例:

  • echo `pwd`,会输出当前工作目录

tail 命令

功能:查看文件尾部内容

语法:tail [-f] 参数

  • 参数:被查看的文件
  • 选项:-f,持续跟踪文件修改

head 命令

功能:查看文件头部内容

语法:head [-n] 参数

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

重定向符

功能:将符号左边的结果,输出到右边指定的文件中去

  • >,表示覆盖输出
  • >>,表示追加输出

vi 编辑器

命令模式快捷键

image-20221027215841573

image-20221027215846581

image-20221027215849668

底线命令快捷键

image-20221027215858967

命令的选项

我们学习的一系列 Linux 命令,它们所拥有的选项都是非常多的。

比如,简单的 ls 命令就有:-a -A -b -c -C -d -D -f -F -g -G -h -H -i -I -k -l -L -m -n -N -o -p -q -Q -r-R -s -S -t -T -u -U -v -w -x -X -1 等选项,可以发现选项是极其多的。

课程中, 并不会将全部的选项都进行讲解,否则,一个 ls 命令就可能讲解 2 小时之久。

课程中,会对常见的选项进行讲解, 足够满足绝大多数的学习、工作场景。

查看命令的帮助

可以通过:命令 --help 查看命令的帮助手册

image-20221027220005610

查看命令的详细手册

可以通过:man 命令查看某命令的详细手册

image-20221027220009949

硬连接

  • 软链接:类似于 Windows 系统中给文件创建快捷方式,即产生一个特殊的文件,该文件用来指向另一个文件,此链接方式同样适用于目录。
  • 硬链接:我们知道,文件的基本信息都存储在 inode 中,而硬链接指的就是给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的 inode,从而读取该文件的数据信息。 硬链接访问同一块文件

Linux 常用操作

软件安装

  • CentOS 系统使用:
    • yum [install remove search] [-y] 软件名称
      • install 安装
      • remove 卸载
      • search 搜索
      • -y,自动确认
  • Ubuntu 系统使用
    • apt [install remove search] [-y] 软件名称
      • 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 到现在的秒数

示例:

  • 按照 2022-01-01 的格式显示日期

    image-20221027220514640

  • 按照 2022-01-01 10:00:00 的格式显示日期

    image-20221027220525625

  • -d 选项日期计算

    image-20221027220429831

    • 支持的时间标记为:

      image-20221027220449312

时区

修改时区为中国时区

image-20221027220554654

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

  1. 修改 VMware 网络,参阅 PPT,图太多

  2. 设置 Linux 内部固定 IP

    修改文件:/etc/sysconfig/network-scripts/ifcfg-ens33

    示例文件内容:

    shell
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    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.88.131" # IP地址,自己设置,要匹配网络范围
    NETMASK="255.255.255.0" # 子网掩码,固定写法255.255.255.0
    GATEWAY="192.168.88.2" # 网关,要和VMware中配置的一致
    DNS1="192.168.88.2" # DNS1服务器,和网关一致即可

ps 命令

功能:查看进程信息

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

kill 命令

image-20221027221303037

nmap 命令

image-20221027221241123

netstat 命令

功能:查看端口占用

用法:netstat -anp | grep xxx

ping 命令

测试网络是否联通

语法:ping [-c num] 参数

image-20221027221129782

wget 命令

image-20221027221148964

curl 命令

image-20221027221201079

image-20221027221210518

top 命令

功能:查看主机运行状态

语法:top,查看基础信息

可用选项:

image-20221027221340729

交互式模式中,可用快捷键:

image-20221027221354137

df 命令

查看磁盘占用

image-20221027221413787

iostat 命令

查看 CPU、磁盘的相关信息

image-20221027221439990

image-20221027221514237

sar 命令

查看网络统计

image-20221027221545822

环境变量

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

PATH 变量

记录了执行程序的搜索路径

可以将自定义路径加入 PATH 内,实现自定义命令在任意地方均可执行的效果

$ 符号

可以取出指定的环境变量的值

语法:$变量名

示例:

echo $PATH,输出 PATH 环境变量的值

echo ${PATH}ABC,输出 PATH 环境变量的值以及 ABC

如果变量名和其它内容混淆在一起,可以使用 ${}

压缩解压

压缩

tar -zcvf 压缩包 被压缩1...被压缩2...被压缩N

  • -z 表示使用 gzip,可以不写

zip [-r] 参数1 参数2 参数N

image-20221027221906247

解压

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

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

unzip [-d] 参数

image-20221027221939899

su 命令

切换用户

语法:su [-] [用户]

image-20221027222021619

sudo 命令

image-20221027222035337

比如:

shell
1
itheima ALL=(ALL)       NOPASSWD: ALL

在 visudo 内配置如上内容,可以让 itheima 用户,无需密码直接使用 sudo

chmod 命令

修改文件、文件夹权限

语法:chmod [-R] 权限 参数

  • 权限,要设置的权限,比如 755,表示:rwxr-xr-x

    image-20221027222157276

  • 参数,被修改的文件、文件夹

  • 选项 - R,设置文件夹和其内部全部内容一样生效

chown 命令

修改文件、文件夹所属用户、组

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

image-20221027222326192

用户组管理

image-20221027222354498

用户管理

image-20221027222407618

genenv 命令

  • getenv group,查看系统全部的用户组

    image-20221027222446514

  • getenv passwd,查看系统全部的用户

    image-20221027222512274

env 命令

查看系统全部的环境变量

语法:env