一、Linux基础命令
1、Linux命令行的格式
命令行的格式为:用户名+主机名+当前工作目录
输入内容的命令格式为:命令 [-短选项/--长选项] [参数]
[root@localhost ~]# 命令 [-短选项/--长选项] [参数]
其中命令就是“做什么”,选项就是“怎么做”,参数就是“对谁做”
例如:更改主机名
[root@localhost ~]# hostnamectl set-hostname 主机名
[root@localhost ~]# bash #环境变量重载
2、常用基础命令
1、pwd命令——作用:显示当前所在位置的完整路径
[root@localhost yum.repos.d]# pwd
/etc/yum.repos.d
2、cd命令——作用:进入某个文件夹(某条路径)
蓝色字符代表文件夹
橄榄绿色的字符代表链接文件
黑色字符代表文本文件
.代表当前路径
..代表上一层路径
~代表当前用户的家目录,cd后面可省略
[root@localhost etc]# cd~
[root@localhost ~]# cd /
[root@localhost /]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]#
3、ls命令——作用:显示当前文件夹的所有内容
-l -> 以长文件的形式显示(ls -l 可缩写成 ll 命令)
-a -> 显示隐藏的文件(以.开头的文件)
-la -> 以长文件的形式显示隐藏的文件(ls -al 可缩写成 ll -a)
-r -> 递归显示文件内容
[root@localhost /]# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
[root@localhost /]# ls -a
. bin dev home lib64 mnt proc run srv tmp var
.. boot etc lib media opt root sbin sys usr
4、man命令——作用:查看某个命令的使用帮助文档
[root@localhost ~]# man ls 或 ls --help
5、su命令——作用:切换用户
[root@localhost ~]# #代表管理员root,有且仅有1个
[root@localhost ~]# su – luna 不需要输入普通用户密码
[luna@localhost ~]$ $代表普通用户,可以有多个
[luna@localhost ~]$ su – root 要输入root用户密码
6、passwd命令——作用:设置或更改用户的密码
注意:只有root用户才能使用该命令更改密码
[root@localhost ~]# passwd luna
7、date命令——作用:显示或者设置当前的系统日期和时间
date 单独使用 -> 详细日期和时间
date +%T -> 显示时间
date +%D -> 显示日期
date +%X%x -> 显示日期和时间
[root@localhost /]# date +%d%m%Y
04032021
[root@localhost /]# date +%d%m%y
040321
8、file命令——作用:查看文件类型
注意:linux中后缀名是可以自定义的,所以不要以文件的后缀名来判断文件类型
[root@localhost /]# file /etc/passwd
/etc/passwd: ASCII text
10、head命令(tail命令)——作用:显示文件的前(后)几行,默认显示10行,可带参数-n指定显示行数
[root@localhost /]# head /etc/passwd
...
[root@localhost /]# head -n 2 /etc/passwd
...
[root@localhost /]# tail -n 10 /etc/passwd | head -n 6 #查看/etc/passwd 文件倒数第10 行至第5行
...
11、cat(tac)命令——作用:将整个文档内容从头至尾(从尾到头)显示出来
[root@localhost /]# cat /etc/crontab
...
[root@localhost /]# tac /etc/crontab
...
12、wc命令——作用:统计文件中的行数、字数和字符数,分别对应-l、-w、-c
[root@localhost /]# wc /etc/shadow
42 42 1226 /etc/shadow
[root@localhost /]# wc -l /etc/shadow
42 /etc/shadow
[root@localhost /]# wc -lwc /etc/shadow
42 42 1226 /etc/shadow
13、history命令——作用:显示之前使用过的命令列表
[root@localhost ~]# history
[root@localhost ~]# !number #执行历史命令列表中第number号命令
[root@localhost ~]# !string #执行历史命令列表中最近一次与string匹配的命令
[root@localhost ~]# history -c #删除历史命令列表中的所有命令
可通过上下键查找之前使用过的命令
15、init命令——作用:切换系统状态
[root@localhost ~]# init1 #切换到命令模式,相当于ctrl + alt + F2
[root@localhost ~]# init5 #切换到桌面图形化模式,相当于ctrl + alt + F1
[root@localhost ~]# init0 #关机,相当于ctrl + alt + Del
二、Linux的文件系统
Linux系统一切皆文件!以“/”开头的路径都是绝对路径,不以“/”开头的路径都是相对路径。
1、“/”下面的重要目录
- /usr -> 存放普通用户命令(/usr/bin)、供root用户使用的系统管理命令,(/usr/sbin)、及安装的软件等数据。
- /etc -> 存放系统服务的配置文件。
- /dev -> 存放设备文件,例如硬盘、cpu、网卡等数据。
- /home -> 普通用户的家目录(或主目录),存放普通用户的配置文件。
- /root -> root用户的家目录(或主目录),存放root用户的配置文件。
- /boot -> 存放系统启动过程所需的文件,系统内核等。
- /var -> 存放动态变化的文件,例如日志文件、缓存文件、数据库等。
- /tmp -> 存放临时文件,10天内未访问更改的文件将自动删除。
- /run -> 存放上一次系统启动过的进程文件。
其中有4个链接文件:
- /bin -> /usr/bin -> 存放普通用户使用的命令。
- /sbin -> /usr/sbin -> 存放root用户使用的命令。
- /lib -> /usr/lib -> 库文件
- /lib64 -> /usr/lib64
2、文件相关的命令
1、touch命令——作用:创建一个空文本文件
[root@localhost ~]# touch /opt/abc
[root@localhost ~]# touch abc
2、dd命令——作用:创建一个大容量空文件
dd if=/dev/zero of=/test.file bs=1M count=100
3、mkdir命令——作用:创建文件夹
mkdir -p 创建多级目录
[root@localhost ~]# mkdir /aaa
[root@localhost ~]# mkdir -p /aaa/bbb/ccc
4、cp命令——作用:复制文件
cp -r 复制文件夹(-r递归复制,也就是将当前文件夹里面所有子目录也复制过去)
注意:当复制的旧文件与新文件重名时,旧文件将覆盖新文件。
[root@localhost opt]# cp -r /aaa/ /opt/
5、mv命令——作用:移动文件,重命名文件
[root@localhost ~]# mv /aaa /mnt
[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls
aaa
[root@localhost mnt]# mv aaa bbb
[root@localhost mnt]# ls
bbb
6、rm命令——作用:删除文件
rm -r 删除文件夹
rm -f 强制删除,不提示删除确认
[root@localhost /]# rm -f abc
[root@localhost /]#
[root@localhost /]# rm -rf /aaa
[root@localhost /]#
7、echo命令——作用:将命令后面的参数显示出来
$符号后面跟系统变量,这个变量可以是大写也可以是小写。
[root@localhost /]# echo $HOSTNAME
localhost.localdomain
[root@localhost /]# echo date
date
[root@chenglu213 /]# echo `date`
p 8 11:36:21 CST 2020
echo还可以修改文本内容,语法是:echo “XXX” > 、 >> filename
3、通配符的使用
*号简单模式匹配 -> 由0个或更多字符组成的字符串
?号简单模式匹配 -> 任何1个字符
{ }大括号 -> 批量执行命令,可以连续使用或者嵌套使用
[root@localhost /]# echo file{a{1,2},b,c}.log
filea1.log filea2.log fileb.log filec.log
[root@localhost /]# echo file{a,b,c}{1..3}.log
filea1.log filea2.log filea3.log fileb1.log fileb2.log fileb3.log filec1.log filec2.log filec3.log
``反引号命令替换
[root@localhost /]# echo today is `date +%X%x`
today is 12:59:11 PM11/13/2021
\反斜杠转意字符
[root@localhost /]# echo the hostname is \&HOSTNAME
the hostname is &HOSTNAME
由单引号括起来的字符都作为普通字符出现
由双引号括起来的字符,除$、反引号(`)和反斜线(\)仍保留其特殊功能外,其余字符均作为普通字符对待。
4、重定向操作符
一个>是重定向符,作用:覆盖写入,文件里的原有数据不保留
两个>>是追加重定向符,作用:追加写入,不覆盖已有内容,直接写在文件末尾,原数据保留
[root@localhost /]# touch err.txt
[root@localhost /]# systemctl restart unbound
Failed to restart unbound.service: Unit not found.
[root@localhost /]# systemctl restart unbound 2>err.txt
[root@localhost /]# cat err.txt
Failed to restart unbound.service: Unit not found.
在linux中,一个运行的程序(或称为进程)需要通过shell从键盘读取输入并将输出写入到终端或者文件。
进程使用一个名为文件描述符的编号通道来获取输入并发送输出。所有进程在开始时至少需要具有三个文件描述符:标准输入(通道0)、标准输出(通道1)、标准错误(通道2)。
5、管道符"|"的使用
作用:将前面的执行结果丢到管道符后面的命令去执行。
注意:管道符前面有重定向符号时,管道符后面要加上一个tee命令
[root@chenglu etc]# ls | grep ssh
ssh
[root@localhost /]# ls -l > 1.txt |tee less
三、vim文本编辑器
Vim有四种模式,分别是:插入模式、命令模式、末行模式和可视化模式。
1、插入模式
先按i/a/O/o -> 进入编辑状态(插入模式)
i -> 在当前光标处进行编辑
a -> 在当前光标下一格进行编辑
O -> 在当前光标上一行插入一个空行进行编辑
o -> 在当前光标下一行插入一个空行进行编辑
2、命令模式
先按Esc -> 退出编辑状态(插入模式)
yy -> 复制一行
nyy -> 复制n行
p -> 粘贴
dd -> 删除一行
ndd -> 删除n行
u -> 撤销上一次操作
U -> 撤销之前所有的操作
G -> 光标跳到末行
gg -> 光标跳到首行
3、末行模式
先按Esc -> 退出编辑状态(插入模式)
:(w/q/wq/wq!=x) -> 退出vim(w保存,q退出)
:set nu -> 显示行号
:set nonu -> 不显示行号
/word -> 从上而下查找某个单词内容
?word -> 从下而上查找某个单词word
N -> 从尾至头进行查找
n -> 从头至尾进行查找
:%s/XXX/YYY/g -> 将文档中所有的XXX替换为YYY
4、可视模式
先按Esc -> 退出编辑状态(插入模式)
V(大写的) -> 用光标选择 -> Y
vim多行注释:
1、先按Esc进入命令行模式
2、按Ctrl+v,进入列模式
3、上下键选择需要注释内容
4、按大写“I”键,进入插入模式
5、然后输入注释符“#”
6、最后按两下“Esc”键完成
四、常用快捷键
-
Ctrl + a -> 光标跳到命令行的开头
-
Ctrl + e -> 光标跳到命令行的结尾
-
Ctrl + u -> 将光标处到命令行开头的所有内容清除
-
Ctrl + k -> 将光标处到命令行结尾的所有内容清除
-
Ctrl + ← -> 将光标跳到命令行前一字的开头(在桌面图形化状态下)
-
Ctrl + → -> 将光标跳到命令行下一字的末尾
-
Alt + backspace -> 删除光标所在的单词
-
Ctrl + g -> 光标进入
-
Ctrl + Alt -> 光标退出
-
Ctrl + L -> 清屏 = clear命令
-
Tab键补全——补全命令、选项和参数
按一次Tab键:补全唯一匹配的命令或者选项或者参数
按两次Tab键:将所有匹配的命令或者选项或者参数全部罗列出来