Linux——基础命令用法(上)

一、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键:将所有匹配的命令或者选项或者参数全部罗列出来