黑马程序员新版Linux教程笔记整理
Linux基础命令
Linux的目录结构
/
,根目录是最顶级的目录了- Linux只有一个顶级目录:
/
- 路径描述的层次关系同样适用
/
来表示 - /home/itheima/a.txt,表示根目录下的home文件夹内有itheima文件夹,内有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 参数
- 参数:被查看的文件路径
- 在查看过程中:
- 参数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编辑器
命令模式快捷键
模式 | 命令 | 描述 |
---|---|---|
命令模式 | i |
在当前光标位置进入输入模式 |
命令模式 | a |
在当前光标之后进入输入模式 |
命令模式 | I |
在当前行的开头进入输入模式 |
命令模式 | A |
在当前行的结尾进入输入模式 |
命令模式 | o |
在当前光标下一行进入输入模式 |
命令模式 | 0 |
在当前光标上一行进入输入模式 |
命令模式 | esc |
任何情况下输入ese 都能回到命令模式 |
命令模式 | 键盘上、键盘k |
向上移动光标 |
命令模式 | 键盘下、键盘j |
向下移动光标 |
命令模式 | 键盘左、键盘h |
向左移动光标 |
命令模式 | 键盘右、键盘l |
向后移动光标 |
命令模式 | 0 |
移动光标到当前行的开头 |
命令模式 | $ |
移动光标到当前行的结尾 |
命令模式 | PageUp(PgUp) |
向上翻页 |
命令模式 | PageDown(PgDn) |
向下翻页 |
命令模式 | / |
进入搜索模式 |
命令模式 | n |
向下继续搜索 |
命令模式 | N |
向上继续搜索 |
命令模式 | dd |
删除光标所在行的内容 |
命令模式 | ndd |
n是数字,表示删除当前光标向下n行 |
命令模式 | yy |
复制当前行 |
命令模式 | nyy |
n是数字,复制当前行和下面的n行 |
命令模式 | p |
粘贴复制的内容 |
命令模式 | u |
撤销修改 |
命令模式 | Ctrl + r |
反向撤销修改 |
命令模式 | gg |
跳到首行 |
命令模式 | G |
跳到行尾 |
命令模式 | dG |
从当前行开始,向下全部删除 |
命令模式 | dgg |
从当前行开始,向上全部删除 |
命令模式 | d$ |
从当前光标开始,删除到本行的结尾 |
命令模式 | d0 |
从当前光标开始,删除到本行的开头 |
底线命令快捷键
模式 | 命令 | 描述 |
---|---|---|
底线命令模式 | :wq | 保存并退出 |
底线命令模式 | :q | 仅退出 |
底线命令模式 | :q! | 强制退出 |
底线命令模式 | :w | 仅保存 |
底线命令模式 | :set nu | 显示行号 |
底线命令模式 | :set paste | 设置粘贴模式 |
更多关于VI/VIM的快捷键用法请参照我的另外一篇文章
命令的选项
我们学习的一系列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
查看命令的帮助手册
查看命令的详细手册
可以通过:man 命令
查看某命令的详细手册
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 到现在的秒数
示例:
- 按照2022-01-01的格式显示日期
- 按照2022-01-01 10:00:00的格式显示日期
- -d选项日期计算
- 支持的时间标记为:
- 支持的时间标记为:
时区
修改时区为中国时区
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
- 修改VMware网络,参阅PPT,图太多
- 设置Linux内部固定IP
修改文件:/etc/sysconfig/network-scripts/ifcfg-ens33
示例文件内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19TYPE="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命令
nmap命令
netstat命令
功能:查看端口占用
用法:netstat -anp | grep xxx
ping命令
测试网络是否联通
语法:ping [-c num] 参数
wget命令
curl命令
top命令
功能:查看主机运行状态
语法:top
,查看基础信息
可用选项:
交互式模式中,可用快捷键:df命令
查看磁盘占用iostat命令
查看CPU、磁盘的相关信息sar命令
查看网络统计环境变量
- 临时设置:export 变量名=变量值
- 永久设置:
压缩解压
压缩
tar -zcvf 压缩包 被压缩1...被压缩2...被压缩N
- -z表示使用gzip,可以不写
zip [-r] 参数1 参数2 参数N
解压
tar -zxvf 被解压的文件 -C 要解压去的地方
- -z表示使用gzip,可以省略
- -C,可以省略,指定要解压去的地方,不写解压到当前目录
unzip [-d] 参数
su命令
切换用户
语法:su [-] [用户]
sudo命令
比如:1
itheima ALL=(ALL) NOPASSWD: ALL
在visudo内配置如上内容,可以让itheima用户,无需密码直接使用sudo
chmod命令
修改文件、文件夹权限
语法:chmod [-R] 权限 参数