一、Linux基础命令
1、Linux命令的语法
一条完整的Linux命令的组成部分:
命令 选项 参数
- 命令:是某个具体的功能
- 选项:是对函数的修改(通常以-开头,-表示选项的短格式,–表示选项的长格式)
[En]
option: it is a modification of the function (usually starts with -,-indicates the short format of the option,– indicates the long format of the option)*
- 参数:要操作的所有对象(目录、文件名、用户名)
[En]
parameters: all the objects you want to operate on (directory, file name, user name.)*
命令就是”做什么”,选项就是”怎么做”,参数就是”对谁做”
项与项之间直接用空格隔开,在某些情况下可以省略选项和参数
[En]
Items are directly separated from items by spaces, and options and parameters can be omitted in some cases
多个命令用;隔开
命令行的格式为:用户名+主机名+当前工作目录
输入内容的命令格式为:命令 [-短选项/–长选项] [参数]
例如:更改主机名
hostnamectl set-hostname $主机名
bash
[root@localhost ~]# hostnamectl set-hostname wangzhigang
[root@localhost ~]# bash #环境变量重载
[root@wangzhigang ~]#
2、常用基础命令
1、pwd命令——作用:显示当前所在位置的完整路径
[root@localhost yum.repos.d]# pwd
/etc/yum.repos.d
2、cd命令——作用:进入某个文件夹(某条路径)
蓝色字符代表文件夹
橄榄绿字符表示链接的文件
[En]
The olive green characters represent the linked file
黑色字符代表文本文件
.代表当前路径
..代表上一层路径
~代表当前用户的家目录,cd后面可省略
改变到一个绝对或者相对路径
cd /home/joshua/work; cd project/docs
改变到上层目录
cd ..
将目录更改为以前的工作目录
[En]
Change the directory to the previous working directory
cd –
改变到当前用户的主目录
cd或者cd ~
改变到某个用户的主目录
cd ~username
[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、帮助命令——作用:查看某个命令的使用帮助文档
whatis 查询命令的含义(安装marndb)
whatis 命令
–help 命令本身的帮助信息
特殊符号解读:
在[ ]中的参数是可选的
大写的参数或者在< >中都表示变量
..表示一个列表,可以接多个
x|y|z表示”X或者y或者z”
-abc表示”任意-a, -b或者-c的任意组合”
man 系统的帮助手册
使用方法:
man [章节信息]命令或者配置文件
man -k关键字
使用空格键翻页
info 系统的补充帮助信息
查询命令的产品手册 /usr/share/doc
查询红帽的在线知识库 https://access.redhat.com
5、su命令——作用:切换用户
id命令 显示当前用户信息
[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 显示日期
cal 显示日历
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命令——作用:显示之前使用过的命令列表
history N列出最近的N条历史记录
!N 调用第N条历史记录
!string 调用最近一条以string开头的命令
!$ 调用最后一条命令
上下键查找历史记录
ctrl-r 搜索历史记录
Alt-.调用上一条命令的最后一个参数
[root@localhost ~]# history
[root@localhost ~]# !number #执行历史命令列表中第number号命令
[root@localhost ~]# !string #执行历史命令列表中最近一次与string匹配的命令
[root@localhost ~]# history -c #删除历史命令列表中的所有命令
您可以通过向上键和向下键查找以前使用过的命令
[En]
You can find previously used commands through the up and down keys
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命令——作用:创建一个空文本文件
touch 创建一个空文件或者更新一个文件的时间戳
如果文件不存在则创建,如果文件存在则更新时间戳
[En]
Create if the file does not exist, and update the timestamp if the file exists
[root@localhost ~]# touch /opt/abc
[root@localhost ~]# touch abc
[root@localhost ~]# touch {1..10}
stat 文件名 查看时间戳
access time
atime文件最后一次被访问的时间
modify time
mtime文件最后一次被修改的时间
change time
ctime文件最后一次改变的时间(属性:大小,权限,时间戳)
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
[root@localhost ~]# mkdir -p a/{b,c/{11,22/{zzz}},d}
4、cp命令——作用:复制文件
使用:
cp [option] file destination
如果destination是一个目录,可以一次拷贝多个文件到这个目录中:
cp [option] file1 file2 destination
destination说明:
如果目标是目录,则副本会将文件放在该目录中
[En]
If the target is a directory, the copy places the files in that directory
如果目标是文件,则副本将覆盖目标文件
[En]
If the target is a file, the copy overwrites the target file
如果目标不存在,则会重命名副本
[En]
If the destination does not exist, the copy is renamed
拷贝的文件时候:文件权限问题 cp -p(带权限一起拷贝)
cp -r 复制文件夹(-r递归复制,也就是将当前文件夹里面所有子目录也复制过去)
注意:当复制的旧文件与新文件重名时,旧文件将覆盖新文件。
[root@localhost opt]# cp -r /aaa/ /opt/
5、mv命令——作用:移动文件,重命名文件
使用:
mv [options] file destination
如果目标是目录,则可以同时移动多个文件:
[En]
If the target is a directory, you can move multiple files at the same time:
mv [options] files file2 destination
destination的操作类似cp
[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
单引号中的字符显示为普通字符
[En]
Characters enclosed in single quotation marks appear as ordinary characters
由双引号括起来的字符,除$、反引号(`)和反斜线(\)仍保留其特殊功能外,其余字符均作为普通字符对待。
4、重定向操作符
一个>是重定向符,作用:覆盖写入,文件里的原有数据不保留
两个>>是追加重定向符,作用:追加写入,不覆盖已有内容,直接写在文件末尾,原数据保留
>file重定向stdout以覆盖文件(仅限标准的正确输出到文件)
>>file重定向stdout以追加到文件
2>file重定向stderr以覆盖文件(标准的错误输出重定向到文件)
2>/dev/null重定向stderr到/dev/null
&>file重定向stdout和stderr以覆盖同一个文件,等同于>file 2>&1(全部标准输出重定向)
&>>file重定向stdout和stderr以追加同一个文件,等同于>>file 2>&1
示例:
[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)。
[En]
The process uses a numbered channel called a file descriptor to get input and send output. All processes need to start with at least three file descriptors: * standard input (channel 0), standard output (channel 1), and standard error (channel 2). *
5、管道符”|”的使用
功能:将之前的执行结果抛给要执行的管道字符后面的命令。
[En]
Function: throw the previous execution result to the command after the pipe character to execute.
管道(|)能连接命令:
command1 | command2 | command…等
将command1的标准输出作为command2的标准输入,错误的输出不能通过管道
注意:管道符前面有重定向符号时,管道符后面要加上一个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、按v进入virtual模式
2、上下键选择需要注释内容
3、按Ctrl+v,进入列模式
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键:将所有匹配的命令或者选项或者参数全部罗列出来
Ctrl+Shift+t 创建标签页
Alt+[123…] 在标签页之间切换
Ctrl+Shift+c 复制已选内容
Ctrl+Shift+v 粘贴复制的内容
声明:未经许可,不得转载
Original: https://www.cnblogs.com/wzgwzg/p/15612067.html
Author: 王智刚
Title: Linux——基础命令用法(上)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524323/
转载文章受原作者版权保护。转载请注明原作者出处!