Linux命令

VI和VIM

Linux系统会内置vi文本编辑器
Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便变成的功能特别丰富。

VI和VIM的三种模式

image.png
正常模式

以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用[上下左右]按键来移动光标,你可以使用[删除字符]和[删除整行]来处理档案内容,也可以使用[复制、粘贴]来处理文件数据。
插入模式

按下 i、I、o、O、a、A、r、R等任何一个字母之后才会进入编辑模式,一般来说按 i 即可
命令行模式

在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成的。
先按ESC,再输入冒号: 进入此模式
[

](https://blog.csdn.net/Augenstern_QXL/article/details/122291032)

VIM快捷键

image.png

复制粘贴

执行4yy 在执行p
image.png

删除

执行4dd
image.png

查找

先输入/进入命令行模式 然后输入查找的词 hello 回车
image.png

设置文件的行号

:set nu
image.png
取消行号 :set nonu
image.png

定位

编辑 /etc/profile 文件,在一般模式下使用快捷键到该文档的最末行[G]和最首行[gg]
image.png
一般模式下输入大写G
image.png
一般模式下输入小写的gg
image.png
将光标移动到 3 行,在一般模式下输入 3,再输入shift+g
image.png

撤销

在文件中输入esc
image.png
返回一般模式 按u 撤销
image.png

快捷键图

Linux命令 - 图14

关机重启

image.png

用户登录和注销

image.png

用户管理

Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

添加用户

基本语法:
useradd 用户名 1
我们使用 root 用户进入 home 文件夹,查看当前的用户列表
添加一个用户 milan,默认该用户的家目录在 /home/milan
image.png
细节说明:
当创建用户成功后,会自动的创建和用户同名的家目录。
也可以通过 useradd -d 指定目录 指定用户名,给新创建的用户指定家目录。
image.png

指定/修改密码

基本用法:
passwd 用户名 1
给 milan 指定密码
image.png
设置milan的密码为milan
登录米兰的账号
image.png
pwd 为显示当前用户所在的目录

删除用户

基本语法:
userdel 用户名 1

  1. 删除用户milan,但是要保留家目录userdel milan

image.png
milan的目录还在

  1. 删除用户以及用户主目录userdel -r milan(这个操作一定要谨慎)image.png

king的家目录不在了

查询用户

基本语法:
id 用户名 1
请查询root信息: id root
image.png

切换用户

基本语法:
su - 用户名 1
切换到milan用户:su - milan
说明:

  • 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要
  • 当需要返回到原来用户时,使用 exit/logout指令

image.png

查看当前用户信息

基本语法:
whoami/who am I
image.png
显示第一次登录的用户

用户组

类似于角色,系统可以对有共性的多个用户进行统一的管理

1、新增组
指令:groupadd 组名

2、删除组
指令:groupdel 组名

3、增加用户时直接加上组
指令:useradd -g 用户组 用户名

4、修改用户的组
基本语法:usermod -g 用户组 用户名

5、用户和组相关文件
/etc/passwd文件:用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
image.pngimage.png
/etc/shadow文件:口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group文件:组的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
[

](https://blog.csdn.net/Augenstern_QXL/article/details/122291032)

实用指令

运行级别

运行级别 说明
0 关机
1 单用户
2 多用户状态没有网络服务
3 多用户状态有网络服务
4 系统未使用保留给用户
5 图形界面
6 系统重启
常用的运行级别是3和5,也可以指定默认运行级别。

命令:

init[0123456]
通过 init 来切换不同的运行级别,比如由5图形界面切换到3无图形界面

如何找回root密码

不同版本找回密码的方式不一样
韩顺平教育—linux找回root密码.docx

帮助指令

man获得帮助信息

  • man 获得帮助信息
    • 基本语法:man[帮助或配置文件] (功能描述:获得帮助信息)
    • 例如查看ls 命令的帮助信息:man ls
    • 在Linux下隐藏文件是 . 开头的

image.png

help指令

基本语法:
help 命令 1
功能描述:获得shell内置命令的帮助信息
help cd 等

文件目录类

pwd指令

基本语法:
pwd
功能描述:显示当前工作目录的绝对路径

ls指令

基本语法:
ls [选项] [目录或是文件]
常用选项:

  • ls -a :显示当前目录所有的文件和目录,包括隐藏的
  • ls -l :以列表的方式显示信息

cd指令

基本语法:cd [参数 ] (功能描述:切换到指定目录)

  • cd ~ 或者 cd : 回到自己的家目录
  • cd .. 回到当前目录的上一级目录

mkdir指令

mkdir指令用于创建目录
基本语法:mkdir [选项] 要创建的目录
常用选项:-p 创建多级目录image.png

rmdir指令

rmdir指令删除空目录
基本语法:rmdir [选项] 要删除的空目录
使用细节:rmdir 删除的是空目录,如果目录下有内容时无法删除。如果需要删除非空目录,需要使用
rm -rf 要删除的目录(这个操作请超级谨慎)
image.png

touch指令

touch指令创建空文件
基本语法:touch 文件名称
image.png

cp指令

cp指令拷贝文件到指定目录
基本语法:cp [选项] source dest

  • source 代表你要拷贝的是哪个文件
  • dest 代表把文件拷贝到哪个地方去

常用选项:-r 递归复制整个文件夹(其实就是Windows系统的复制文件夹)

  1. 将 /home/hello.txt 拷贝到 /home/bbb 目录下

image.png
强制覆盖不提示: \cp [选项] source dest

rm指令

rm指令移除文件或目录
基本语法:rm [选项] 要删除的文件或目录
常用选项:

  • -r 递归删除整个文件夹
  • -f 强制删除不提示
  1. 将 /home/hello.txt 删除

rm /home/hello.txt 1

  1. 递归删除整个文件夹 /home/bbb

rm -rf /home/bbb [删除整个文件夹,不提示] 1
强制删除不提示的方法:带上-f 参数即可

mv指令

mv 移动文件与目录或重命名

基本语法:

mv oldNameFile newNameFile (功能描述:重命名)
两个文件在同一个目录,oldNameFile 代表旧的文件名,newNameFile 代表新的文件名
mv /temp/movefile /targetFolder (功能描述:移动文件)
两个文件不在同一个目录,将/temp/movefile 文件移动到 /targetFolder 目录
将 /home/cat.txt 文件重新命名为 pig.txt
mv cat.txt pig.txt
1
将 /home/pig.txt 文件移动到 /root 目录下
mv /home/pig.txt /root

cat指令

cat查看文件内容 cat查看更安全
基本语法:cat [选项] 要查看的文件
常用选项:-n :显示行号

  1. 查看 /etc/profile 文件内容,并显示行号

cat -n /etc/profile
image.png
cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 |more
cat -n/etc/profile | more

more指令

more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键(交互的指令),如下:
基本语法: more 要查看的文件

操作 功能说明
空格键space 代表向下翻一页
Enter 代表向下翻一行
q 代表立刻离开more,不再显示该文件内容
Ctrl+F 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号

image.png

less指令

less指令用来分屏查看文件内容,它的内容与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

基本语法:less 要查看的文件

操作 功能说明
空格键space 代表向下翻一页
[pagedown] 代表向下翻一行
[pageup] 代表向上翻一行
/字串 向下搜寻[字串]的功能,n:向下查找,N:向上查找
?字串 向上搜寻[字串]的功能,n:向下查找,N:向上查找
q 离开less这个程序

echo指令

echo输出内容到控制台
基本语法: echo [选项] [输出内容]

  1. 使用 echo 指令输出环境变量,比如输出 $PATH 、主机名$HOSTNAME

echo $PATH
echo $HOSTNAME
image.png

head指令

head用于显示文件的开头部分,默认情况下 head 指令显示文件的前10行内容。

基本语法:

head 文件 (功能描述:查看文件头10行内容)
head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
查看 /etc/profile 的前5行代码
head -n 5 /etc/profile
image.png

tail指令

tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的前10行内容

基本语法:

tail 文件 (功能描述:查看文件尾10行内容)
tail -n 5 文件 (功能描述:查看文件尾5行内容,5可以是任意行数)
tail -f 文件 (功能描述:实时追踪该文档的所有更新)
查看/etc/profile 最后5行代码
tail -n 5 /etc/profile
image.png
实时监控 mydate.txt,看看文件是否有变化(Ctrl+C来停止监控)
tail -f /home/mydate.txt
image.png

>指令和>>指令

输出重定向 (覆盖)
>> 追加

基本语法:

ls -l > 文件 (功能描述:列表的内容写入文件中(覆盖写))

ls -al>>文件 (功能描述:列表的内容追加到文件末尾)

cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)

echo “内容”>>文件 (功能描述:将内容追加到文件)

将 /home 目录下的文件列表,写入到 /home/info.txt 中,覆盖写入
ls -l/home > /home/info.txt [如果info.txt没有,则会自动创建
image.png

ln指令

软链接也称为符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径

基本语法:ln -s [原文件或目录][软链接名] (功能描述:给原文件创建一个软链接)

在 /home 目录下创建一个软链接 myroot,链接到 /root 目录
ln -s/root /home/myroot

删除软链接 myroot
rm /home/myroot

当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录
image.png

history指令

查看已经执行过历史命令,也可以执行历史指令
基本语法:history (功能描述:查看已经执行过的历史命令)
显示所有历史命令
history 1
显示最近使用过的10个指令
history 10 1
执行历史编号为5的指令
!5
image.png

时间日期类

设置当前日期

date指令显示当前日期

基本语法:

date (功能描述:显示当前时间)

date+%Y (功能描述:显示当前年份)

date+%m (功能描述:显示当前月份)

date+%d (功能描述:显示当前是哪一天)

date+”+%Y-%m-%d%H:%M:%S” (功能描述:显示年月日时分秒)

显示当前时间信息
image.png

设置日期

基本语法:date -s 字符串时间

  1. 设置系统当前时间,比如设置成 2020-11-23 10:09:09

date -s “2020-11-23 10:09:09”

cal指令

cal指令用于查看日历
基本语法:cal[选项] (功能描述:不加选项,显示本月日历)

  1. 显示当前日历

cal 1

  1. 显示2020年日历

cal 2020
image.png

搜索查找类

find指令

find 指令将从指定目录向下递归地遍历其各个子目录,将蛮族调节的文件或者目录显示在终端
基本语法: find [搜索范围] [选项]
选项如下:

选项 功能
-name<查询方式> 按照指定的文件名查找模式查找文件
-user<用户名> 查找属于指定用户名所有文件
-size<文件大小> 按照指定的文件大小查找文件

按照文件名:根据名称查找 /home 目录下的 hello.txt 文件
find/home -name hello.txt
image.png
按照拥有者:查找/opt目录下,用户名称为 root的文件
find /opt -user root
image.png
查找整个 linux 系统下大于 200M 的文件 (+n 大于 -n 小于 n 等于,单位有 k,M,G)
find / -size +200M
image.png

locate指令

locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。 locate 指令无需遍历整个文件系统,查询速度较快,为了保证查询结果的准确度,管理员必须顶起更新 locate 时刻。

基本语法:locate 搜索文件

特别说明:由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库

使用 locate 指令快速定位 hello.txt 文件所在目录
image.png

Witch指令

which 指令,可以查看某个指令在哪个目录下,比如 ls 指令在哪个目录
which ls
image.png

grep指令和管道符号 |

grep 过滤查找,管道符 “|” ,表示将前一个命令的处理结果输出传递给后面的命令处理,两者通常结合使用
基本语法:grep[选项] 查找内容 源文件
选项说明:

选项 功能
-n 显示匹配行及行号
-i 忽略字母大小写
  1. 在 hello.txt 文件中,查找 “yes” 所在行,并且显示行号

cat /home/hello.txt | grep “yes”
grep -n “yes” /home/hello.txt

压缩和解压类

gzip / gunzip 指令

gzip 用于压缩文件,gunzip 用于解压

基本用法:

gzip 文件 (功能描述:压缩文件,只能将文件压缩为 *.gz文件)

gunzip 文件.gz (功能描述:解压缩文件命令)

将 /home 下的 hello.txt 文件进行压缩
gzip /home/hello.txt

将 /home 下的 hello.txt.gz 文件进行解压缩
gunzip /home/hello.txt.gz

zip/unzip指令

zip 用于压缩文件,unzip用于解压,这个在项目打包发布中很有用

基本语法:

zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
常用选项: -r 递归压缩,即压缩目录
unzip [选项] XXX.zip (功能描述:解压缩文件)
常用选项:-d<目录> 指定解压后文件的存放目录
将 /home 下的所有文件/文件夹进行压缩成 myhome.zip
zip -r myhome.zip /home/ [将home目录及其包含的文件和子文件夹都压缩]
1
将 myhome.zip 解压到 /opt/tmp 目录下
mkdir /opt/tmp
unzip -d/opt/tmp /home/myhome.zip

tar指令

tar指令是打包指令,最后打包后的文件是 .tar.gz 的文件
基本语法:tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式 .tar.gz)

选项 功能
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解压.tar文件

压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt

将 /home 的文件夹压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/

将 pc.tar.gz 解压到当前目录
tar -zxvf pc.tar.gz

将 myhome.tar.gz 解压到 /opt/tmp2 目录下
mkdir /opt/tmp2
tar -zxvf/home/myhome.tar.gz