1.使用指令
1.2.1、正常模式
以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式种,你可以使用【上下左右】按键移动光标,你可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、贴上】来处理你的文件数据。(**在正常模式下,我们可以使用快捷键。**)
1.2.2、插入模式/编辑模式
**在这个模式下,程序员可以输入内容。**
按下【i,I,o,O,a,A,r,R】等任何一个字母之后才会进入编辑模式,一般来说按i即可。
1.2.3、命令行模式
在这个模式种,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成的。、
1.2.4、在vi和vim模式下的命令
i #进入输入模式
a #进入输入模式 光标前进一位
ESC #退出输入模式
wq #保存并退出
q #退出
q! #强制退出
1.3.1、复制
#复制
yy(正常模式) #拷贝当前行
p(正常模式) #粘贴
5yy(正常模式) #拷贝当前行向下5行
1.3.2、删除
#删除
dd(正常模式) #删除一行
5dd(正常模式) #删除当前行向下的5行
1.3.3、查找
#查找
/hello + 回车(正常模式) #查找关键字hello
n(正常模式) #查找下一个
1.3.4、行号
#文件的行号spice
:set nu(命令模式) #设置行号
:set nonu(命令模式) #取消行号
1.3.5、行首/行末
#跳转到最末行
G(正常模式)
#跳转到最首行
gg(正常模式)
1.3.6、撤销
#撤销
u(正常模式)
1.3.7、将光标移到第n行
#将光标移到第10行
#1、显示行号 :set nu (命令模式)
#2、输入10 (正常模式)
#3、输入shift+g (正常模式)
2、实用指令
pwd #查看当前所在目录
2.1、关机&重启
shutdown -h now #立刻进行关机
shutdown -h 1 #"hello,1分钟后会关机了"
shutdown -r now #现在重新启动计算机
halt #关机,作用和上面一样
reboot #现在重新启动计算机
sync #把内存的数据同步到磁盘(把没保存的东西保存,关机之前使用这个命令)
2.2、用户的注销
#注销 此指令在图形运行级别无效 此命令在普通用户下无效
logoutexit #用户退出登录
Ctrl + D #用户退出登录
2.3、用户管理
2.3.1、添加用户
useradd [选项] 用户名 #[选择]是参数
useradd -d 新的用户名 #给新创建的用户指定家目录 ConterOS
useradd -m 新的用户名 #给新创建的用户指定家目录 Unbutu
#比如:
useradd -m yangxinhu #创建了一个用户 并且home下会自动生成一个yangxinhu的目录
2.3.2、删除用户
userdel 用户名 #删除用户 但是保存用户家目录
userdel -r 用户名 #删除用户 同时删除用户家目录删除用户时,一般不将用户家目录删除
2.3.3、设置密码
passwd 用户名
2.3.4、查看用户
w #查看用户列表
id 用户名 #查看指定用户信息
whoami #查看当前用户名
who am i #查看当前登录用户名
2.3.5、切换用户
su - 用户名
2.4.1、新增组
groupadd 组名
useradd -g 用户组 用户名 #增加一个用户的时候直接将他指定到一个组
2.4.2、删除组
groupdel 组名
2.4.3、修改用户的组
usermod -g 用户组 用户名
2.4.4.1、用户配置文件(用户信息)/etc/passwd
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shel
2.4.4.2、组配置文件(组信息)/etc/group
组(group)的配置文件,记录Linux包含的组的信息
每行含义:**组名:口令:组标识号:组内用户列表**
2.4.4.3、口令配置文件(密码和登录信息,是加密)/etc/shadow
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标
2.6.1、启动Ubuntu18操作系统并长按【Shift】键进入选项,选择 Advanced options for Ubuntu 这一项 按回车【Enter】键
2.6.2、选中Ubuntu,with Linux xxxx-generic(recovery mode)按【E】键,不要按回车
2.6.3、使用上下左右键,找到recovery nomodeset,并将其删除
2.6.4、然后在这一行的最后添加:
quiet splash rw init=/bin/bash
2.6.5、按ctrl+x或F10启动系统就可以进入single模式而不需要密码了。
2.7、帮助指令
2.7.1、man
man [命令或配置文件] #获得帮助信息
#案例:查看ls命令的帮助信息
man ls
2.7.2、help
#实例:查看cd的用法
help cd #获得shell内置命令的帮助信息
2.8、文件目录类
2.8.1、pwd
pwd #显示当前工作目录的绝对路径
2.8.2、ls
ls [选择] [目录或是文件] #显示当前目录下的目录和文件
#-a 显示当前目录所有的文件和目录,包括影藏的
#-l 以列表的方式显示信息
#-h 显示更人性化
2.8.3、cd
cd [参数] #切换到指定目录
cd ~ 或者 cd #回到自己的家目录
cd .. #回到上一级目录
2.8.4、mkdir
mkdir [选项] 要创建的目录 #用于创建目录
# -p 创建多级目录
rmdir 目录 #删除指定目录 这个命令只能删除空的目录
rm -rf 目录 #删除指定目录包括目录下的所有文件和目录
2.8.5、tosuch
touch 文件名称 #创建一个空文件
2.8.6、cp
cp [选项] source dest #拷贝 source是源文件 dest是目标路径
#-r 递归复制整个文件夹
#\cp -r sorce dest 强制覆盖,不要提示我
2.8.7、rm
mv #移动文件与目录或者是重命名
#mv oldNameFile newNameFile (重命名)
#mv /temp/movefile /targetFolder (移动)
2.8.9、cat
cat [选项] 文件 #查看文件内容
#-n 显示行号
2.8.10、more
more 文件 #查看文件内容
2.8.11、> & >>
> #输出重定向 (覆盖写)
>> #追加
ls -l>文件 #列表的内容写入文件a.txt中(覆盖写)
ls -al>>文件 #列表的内容追加到文件aa.txt的末尾
cat 文件1>文件2 #将文件1的内容覆盖到文件2 cat /etc/profile > c.txt
echo "内容">>文件 #将内容写入文件中
#使用
#1、将/home目录下的文件列表写入到/home/1.txt中
ls -al>>/home/1.txt
#2、将当前日历信息追加到/home/mycal文件中
cal >> /home/mycal
2.8.12、echo
echo [选择] [输出内容] #输出内容到控制台
#经常使用echo指令输出环境变量 echo $PATH
2.8.13、head
head #显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
head 文件 #查看文件头10行内容
head -n 5 文件 #查看文件头5行内容,5可以是任意行数
2.8.14、tail
tail #显示文件中尾部的内容,默认情况下tail指令显示文件的后10行内容
tail 文件 #查看文件后10行内容
tail -n 5 文件 #查看文件后5行内容,5可以是任意行数
tail -f 文件 #实时追踪该文档的所有更新,工作中经常使用,如实时监控日志文件
2.8.15、ln
tail #显示文件中尾部的内容,默认情况下tail指令显示文件的后10行内容
tail 文件 #查看文件后10行内容
tail -n 5 文件 #查看文件后5行内容,5可以是任意行数
tail -f 文件 #实时追踪该文档的所有更新,工作中经常使用,如实时监控日志文件
2.8.16、history
history #查看已经执行过的历史命令,也可以执行历史指令
history 10 #查看最近使用的10个命令 10这个数字可以改变
!指令编号 #执行第多少条指令 !178 执行编号为178的指令
2.9、时间日期类
2.9.1、date
date #显示当前时间
date +%Y #显示当前年份
date +%m #显示当前月份
date +%d #显示当前是哪一天
date "+%Y-%m-%d %H:%M:%S" #显示年月日时分秒
date -s 字符串时间 #设置系统当前时间 date -s "2019-06-19 10:03:00"
2.9.2、cal
cal #查看当前日历
cal [选项] #显示选择的年份的所有日历 cal 2019
2.10、搜索查找类
2.10.1、find
#find指令 将从指定目录向下递归的遍历其各个子目录,将满足条件的文件或者目录显示在终端 find [搜索范围] [选项] #选项说明 #-name <查询方式> 按照指定的文件名查找模式查找文件 #-user <用户名> 查找属于指定用户名所有文件 #-size <文件大小> 按照指定的文件大小查找文件 #按文件名,根据名称查找/home目录下的hello.txt文件 find /home -name hello.txt #按拥有者,查找/opt目录下,用户名称为root的文件 find /opt -user root #查找整个linux系统下大于20M的文件(+n 大于 -n 小于 n 等于) find / -size +20M #查询根目录下,所有后缀为.txt的文件 find / -name *.txt
2.10.2、locate
#locate指令 可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须顶起更新locate时刻。 locate 搜索文件 #由于locate指令基于数据库进行查询,所以第一次运行前。必须使用updatedb指令创建locate数据库 #使用locate指令快速定位hello.txt文件所在目录 updatedb locate hello.txt
2.10.3、grep & 管道符号 |
#locate指令 可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须顶起更新locate时刻。
locate 搜索文件
#由于locate指令基于数据库进行查询,所以第一次运行前。必须使用updatedb指令创建locate数据库
#使用locate指令快速定位hello.txt文件所在目录
updatedb
locate hello.txt
2.11、压缩和解压缩类
2.11.1、gzip & gunzip
#gzip用于压缩
#gunzip用于解压
gzip 文件 #压缩文件,只能将文件压缩为 *.gz 文件
gunzip 文件.gz #解压缩文件命令
2.11.2、zip & unzip
#zip用于压缩
#unzip用于解压
#在项目打包发布中很有用
zip [选项] xxx.zip 将要压缩的内容 #压缩文件和目录的命令
unzip [选项] xxx.zip #解压缩文件
#zip常用选项:-r 递归压缩,即压缩目录
#unzip常用选项:-d <目录> 指定解压后文件的存放目录
2.11.3、tar
#打包指令 最后打包后的文件是.tar.gz的文件
tar [选择] xxx.tar.gz 打包的内容 #打包目录,压缩后的文件格式是.tar.gz
#常用选项
#-c 产生.tar打包文件
#-v 显示详细信息
#-f 指定压缩后的文件名
#-z 打包同时压缩
#-x 解包.tar文件
#案例
#1、压缩多个文件,将/home/a1.txt和/home/a2.txt压缩成a.tar.gz
tar -zcvf /home/a.tar.gz /home/a1.txt /home/a2.txt
#2、将/home的文件夹压缩成myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
#3、将a.tar.gz解压到当前目录下
tar -zxvf a.tar.gz
#4、将myhome.tar.gz解压到/opt目录下(指定的目录必须是存在的)
tar -zxvf myhome.tar.gz -C /opt/