vim的使用
使用Linux系统的过程中,需要编辑文件时候,直接使用vim比较方便。
三种模式
vim 有三种模式,分别为一般模式,编辑模式,末行(命令行)模式,关系如下:
常用快捷键和命令
- (一般模式)复制当前行
yy
,复制后面5行5yy
,粘贴p
. - (一般模式)删除当前行
yy
,删除后面5行5dd
. - (一般模式)撤销, 按
u
. - (一般模式)移动光标到第5行. “
5
shift
+g
” - (命令行模式)查找某个单词,“/关键字”,按“回车查找”,输入n查找下一个
- (命令行模式)显示行号:“
:set nu
”;取消行号:“:set nonu
”.
基本指令
开关机指令
- shutdown
shutdown -h now :表示立即关机
shutdown -h 1 :表示1分钟后关机
shutdown -r now :立即重启 - halt :直接使用,关机
- reboot :重启系统
- sync :把内存的数据同步到磁盘上
注意:最好在关机和重启之前输入一遍sync命令,防止数据丢失
用户注销
在远程登录时输入logout注销。(在图形界面无效)
用户管理
基本概念
添加、删除、查询、切换用户
useradd [选项] username
案例1: 添加一个用户 xm
ueradd xm
- 当创建用户成功后,会自动的创建和用户同名的家目录
- 当创建用户时,通过
-d
+ 目录 + 用户名,给新创建的用户指定家目录
如:useradd -d /home/xqhome xq
注意:不同版本的linux系统上述指令可能会有所不同,需要单独查询。比如:ubuntu18.04 就需要加入-m
才可以自动创建家目录
passwd username
给用户username指定或修改密码
userdel uername
删除用户保留目录
如果想同时删除其家目录,则输入:
userdel -r username
实际开发中删除用户时,一般不删除家目录
id username
uid:用户id
gid:所在组的id号
groups:组名称
用户不存在时,返回无此用户no such user
-su - username
通过上述命令切换用户,当从高权限登入低权限时不需要输入密码,返回上一个用户时可以输入
exit
.
用户组相关内容
相关命令
- 增加组
groupadd groupname
- 删除组
groupdel groupname
- 创建用户时指定所在组
useradd -g groupname username
- 修改用户组
usermod -g groupname username
该指令将用户username 修改到groupname组内。
/etc/passwd 文件
user(用户)的配置文件,记录用户的各种信息
每行的含义:
用户名:口令:用户标志号:组标志号:注释描述:主目录:登录shell
/etc/shadow
口令配置文件(密码和登录信息,加密的)
/etc/group
组(group)的配置文件,记录linux包含的组的信息。
每行的含义:
组名:口令:组标志号:组内用户列表
实用指令
系统运行级别和找回root密码
运行级别的示意图如下/etc/inittab(常用的运行级别是3和5):
注意:该图为linux系统的运行级别,针对具体系统可能不同,比如ubuntu系统的分级可能和下图有所不同,同时也没有/etc/initab文件
- 切换到指定运行级别
init [0123456]
- 找回root密码(针对具体系统操作有不同)
- 进入单用户模式1
- 修改root密码
因为单用户模式,root不需要密码就可以登录。
此方法的前提,不能远程操作,只能用该电脑操作,因此也是安全的
- 设置默认运行级别,根据系统操作也有所不同。
有趣的问题:如果被人设置了默认运行级别0(开机就关机),则可使用类似找回root密码的方式,再修改默认运行模式级别即可。
帮助指令
man [命令或配置文件]
比如man ls
查看ls命令的帮助信息help [命令]
比如’help cd
’
具体用法百度最直接
文件目录类指令
pwd 指令
pwd
显示当前工作目录的绝对路径
ls指令
- 基本语法
ls [选项] [目录或是文件]
- 常用选项
-a:显示当前目录所有的文件和目录,包括隐藏的
-l: 以列表的方式显示信息
cd指令
- 基本语法
cd [参数]
- 常用参数
绝对路径和相对路径
cd ~
或者cd
: 回到自己的家目录
cd ..
:回到当前目录的上一级目录
mkdir指令
该指令用于创建目录
- 基本语法
mkdir [选项] 要创建的目录
- 基本选项
-p:创建多级目录
rmdir指令
用该指令删除空目录
- 基本语法
rmdir [选项] 要删除的空目录
- 注意:当目录中有文件时,需要用 rm -rf删
touch指令
该指令用于创建空文件
- 基本语法
touch 文件名称
- 一次性创建多个文件也可以
cp指令(不同系统可能有差异)
cp 指令拷贝文件到指定目录
- 基本语法
cp [选项] source dest
- 常用选项
-r :递归复制整个文件夹 - 强制覆盖
\cp [选项] source dest
注意
在ubuntu18.04中,不加\即表示直接覆盖,如果需要弹出覆盖提示,则要在选项中加入
-i
.
rm指令
移除文件或者目录
- 基本语法
rm [选项] 要删除的文件或目录
- 常用选项
-r:递归删除整个文件夹
-f:强制删除不提示
mv指令
mv 移动文件与目录 或 重命名
- 基本语法
mv oldfilename newfilename
(功能:重命名,似乎新的文件名必须要有后缀)
mv /temp/movefle /targetfolder
(功能:移动文件)
cat指令(查看文件)
cat 查看文件内容(只能浏览,不能修改——只读)
- 基本语法
cat [选项] 要查看的文件
- 常用选项
-n 显示行号 - 为了浏览方便,再命令后加上管道命令
| more
分页显示(按空格跳下一页)
more指令(查看文件)
more指令是一个基于VI编辑器的文本过滤器,全屏方式,按页显示。
用法:more 要查看的文件
该指令有一些快捷键,在此就不列出。
less指令(适合查看大文件)
less指令分屏查看文章内容,在显示文件时,并不是一次将整个文件加载后再显示,而是根据需要显示加载的内容,对于显示大型文件具有较高的效率。
- 基本语法
less 要查看的文件
>指令和>>指令
>
:输出重定向,会将原来的文件内容覆盖
>>
:追加,不会覆盖原来的内容,而是会追加到文件尾部
- 基本语法
ls -l > 文件
(功能:列表内容覆盖文件)ls -al >> 文件
(功能:列表内容追加到文件末尾)cat 文件1 > 文件2
(功能:将文件1的内容覆盖文件2)echo "内容" >> 文件
(功能:内容追加到文件末尾)
说明:在使用上述命令时,如果文件不存在,则自动创建该文件。
echo指令
echo 输出内容到控制台
- 基本语法
echo [选项] [输出内容]
- 实例
echo $PATH
(输出当前环境变量)
echo "hello"
(直接输出字符串hello)
head指令
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
- 基本语法
head 文件
(查看文件头10行内容)
head -n 5 文件
(查看文件头5行内容,5是任意行数)
tail指令
tail用于输出文件中尾部的内容,默认情况tail指令显示文件的后10行内容。
- 基本语法
tail 文件
(查看文件尾10行)
tail -n 5 文件
(查看文件尾5行)
tail -f 文件
(实时追踪该文档的所有更新,比较常用)
ln指令
软连接也叫符号链接,类似于windows里的快捷方式。
- 基本语法
ln -s [原文件或目录] [软链接名]
(功能描述:给原文件创建一个软连接)
删除软链接时用rm -rf 软链接名
history指令
查看已经执行过历史命令,也可以执行历史指令
- 基本语法
history
(查看已经执行过的历史命令)
history n
(显示最近执行过的n条指令)
!n
(执行编号为n的指令)
时间日期类指令
date指令-显示当前日期
date
(显示当前时间)date +%Y
(显示当前年份)date "+%Y-%m-%d %H:%M:%S"
(显示年月日时分秒)
date 指令-设置时间
- 基本语法
date -s 字符串时间
- 例子
date -s "2018-10-10 11:22:22"
,设置时间
cal指令
查看日历指令
- 基本语法
cal [选项]
(不加选项,显示本月日历,选项可以选择年份)
搜索查找类指令
find指令
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端。
- 基本语法
find [搜索范围] [选项]
- 选项说明
-name <文件名>
(按照指定的文件名查找文件)
-user <用户名>
(按照属于指定用户名查找所有文件)
-size <文件大小>
(按照指定的文件大小查找文件) - 实例
find /home -name hello.txt
find /opt -user nobody
find / -size +20M (具体用法可以参照帮助,+:大于,-:小于)
locate指令
locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径额locate数据库实现快速定位给定的文件。locate指令无需遍历整个系统文件,查询速度比较快。为了保证查询结果的准确度,管理员必须顶起更新locate时刻。
- 基本语法
locate 搜索文件
- 说明
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb
指令创建locate数据库。
grep指令和管道符号|
grep过滤查找,管道符,"|",表示将前一个命令的处理结果传递给后面的命令处理。
- 基本语法
grep [选项] 查找内容 源文件 - 常用选项
-n 显示匹配行以及行号
-i 忽略字母大小写 - 实例:在hello.txt文件中,查找"yes"所在行,并且显示行号
cat hello.txt | grep -ni yes
压缩和解压缩类指令
gzip和gunzip指令
- 基本语法
gzip 文件
(压缩文件,只能将文件压缩成*.gz文件)
gunzip 文件.gz
(加压文件命令) - 细节说明:
当使用gzip
和gunzip
指令后,不会保留原来的文件。
zip/unzip指令
zip用于压缩文件,unzip用于解压的,在项目打包发布中很有用。
- 基本语法
zip [选项] xxx.zip 将要压缩的内容
(压缩,xxx.zip为压缩以后的压缩包名,可以压缩文件或者目录)
unzip [选项] xxx.zip
(解压缩文件) - zip常用选项
-r :递归压缩,即压缩目录 - unzip常用选项
-d <目录>: 指定解压后文件的存放目录
tar指令
tar指令是打包指令,最后打包后的文件是.tar.gz 的文件。
- 基本语法
tar [选项] xxx.tar.gz 打包的内容
(打包目录,压缩后的文件的格式是.tar.gz) - 选项说明
-c: 产生.tar打包文件
-v: 显示详细信息
-f: 指定压缩后的文件名
-z: 打包同时压缩
-x: 解包.tar文件 - 注意
压缩时候指定文件名时选项使用-zcvf
,f放最后,因为要跟文件名。
解压时,选项使用-zxvf
,需要指定解压路径时候,加-C 目录
。