本文介绍Linux系统下的vim操作、用户和组的管理、权限管理、文件目录操作、搜索查找、压缩解压、时间日期以及运行级别方面的基础操作
vim常用快捷键
- 拷贝当前行 [yy] 拷贝当前行的向下n [nyy] 粘贴 [p]
- 删除当前行 [dd] 删除当前行向下n行 [ndd]
- 查找关键字 命令行状态 [/关键字]
- 设置文件的行号/取消行号 命令行状态 [:set nu/set nonu]
- 编辑文件的最末行 [G] 最首行 [gg]
- 撤销 [u]
- 定位到具体行 [行号]+[shift]+[g]
- 屏幕向下移动一页 [ctrl]+[f]
- 屏幕向上移动一页 [ctrl]+[b]
- 屏幕向下移动半页 [ctrl]+[d]
- 屏幕向上移动半页 [ctrl]+[u]
- 屏幕最上方的那一行 [H]
- 屏幕中央的那一行 [M]
- 下一行 [+]
- 上一行 [-]
关机细节
sync命令:把内存的数据同步到磁盘
无论是重启还是关闭系统,首先要运行sync命令。尽管目前的shutdown/reboot/halt等命令均在关机前进行了sync,但小心起见,输一下sync以防万一。
用户管理
添加用户:
useradd 用户名
用户创建成功后会自动创建与用户名同名目录保存在/home目录下。也可以通过__useradd -d 指定目录 新的用户名__给新创建的用户指定家目录。
修改密码 passwd 用户名
删除用户
用户的删除操作有两种,保留用户主目录的删除和不保留用户主目录的删除。
userdel -r 用户名 //连带用户主目录一起删除
userdel 用户名 //只删除用户但保留用户主目录
- 显示当前用户所在的目录 pwd
- 查询用户信息 id
- 切换用户 su
- 查看当前用户 whoami who am i 显示的是登录的用户,用su切换用户依旧显示登录的用户信息
- 用户组
新增组 groupadd 组名
删除组 groupdel 组名
添加用户时进组 useradd -g 用户组 用户名
默认添加到用户名同名组
修改用户的组 usermod -g 用户组 用户名
用户和组相关文件:
/etc/passwd 用户配置文件
/etc/shadow 口令配置文件
/etc/group 组配置文件
运行级别
0:关机
1:单用户 (找回丢失密码)
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
init 指令切换
文件目录操作
ls
-a : 显示当前目录所有的文件和目录,包含隐藏文件
-l : 以列表的方式显示信息
cd
- cd ~ 回到用户目录 如果当前是yestin用户,执行命令后pwd查看当前目录结果是 /home/yestin
- cd.. 返回上一级目录
mkdir 创建目录
- -p 创建多级目录 mkdir -p /home/film/FreeGuy home目录下创建了film目录,film目录下创建了FreeGuy目录。
rmdir 删除空目录
rmdir默认删除空目录,如果要删除非空目录,需要使用 rm-rf 其中-r表示递归删除,-f表示强制删除不提示
- __touch__创建空文件
如 touch hello.txt
cp 拷贝文件到指定目录
- -r 递归复制整个文件夹
- 遇见是否覆盖问题,可以通过\cp取消(y/n)的频繁输入
mv 移动文件(不同的文件目录下的操作)重命名(同一个文件目录下的操作)
cat 查看文件内容 之查看不修改 -n显示行号
more 和 less 命令
more命令是一个基于VI编辑器的文本过滤器,以全屏的方式按页显示文本文件的内容。
less命令用来分屏擦好看文本的内容,它的功能与more命令类似。但是比more命令更强大,支持各种显示终端。它并不是一次性将整个文件加载后才显示,而是根据显示需要加载的内容。对于显示大型文件具有较高的效率。
/字串 向下搜寻 n:向下查找 N:向上查找
?字串 向上搜寻 n:向上查找 N:向下查找
echo 输出内容到控制台
head 显示文件的开头内容(默认前10行)
更改显示行数 -n 行数
- tail 显示文件尾部内容 细节同head
-f 实时追踪该文档的所有更新
- > 输出重定向 (覆盖原有内容) >>追加
- ls -l >文件 列表的内容写入文件
- ls -l >>文件 列表的内容追加写入文件
- cat 文件1>文件2 将文件1覆盖写到文件2
- echo “内容”>>文件 内容追加写到文件中
- ln 建立软链接
如 ln -s /root /home/link link为指向/root的软链接
cd link 表面上是进入了link目录,实际上是进入到了/root
删除软连接 rm /home/link
- history 查看历史命令
时间日期
- date 显示当前日期
date + ………..
%Y%m%d%H%M%S 年月日时分秒 (区分大小写), 如果需要加空格加双引号
date -s “时间” 修改时间
搜索查找
find 从指定目录向下递归遍历其各个子目录,将满足条件的文件或者目录显示在终端
find[搜索范围][选项]
选项 功能 -name<查询方式> 按照指定的文件名查找模式查找文件 -user<用户名> 查找属于指定用户名所有文件 -size<文件大小 > 按照指定的文件大小查找文件 +[文件大小] 大于 -[]小于 []等于 locate 快速定位文件路径。 locate不遍历整个文件系统,利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件
第一次运行前必须使用updatedb创建locate数据库
which 检索命令所在目录
__grep __ 过滤查找
通常和管道符”|”一起使用,”|”表示将前一个命令的处理结果输出传递给后面的命令处理。
- -n 显示匹配的行号
- -i 忽略字母大小写
请在hello.txt 文件中查找”yes”所在行,并显示行号
1 | cat hello.txt |grep -n "yes" |
压缩解压
gzip 压缩 gunzip 解压(解压和压缩后不会创建源文件副本)
zip/unzip
zip -r 递归压缩,压缩目录
1
zip -r myhome.zip /home/ [将home目录及其包含的文件和子文件压缩到myhome.zip中]
unzip -d <dir> 指定解压后文件的存放目录
1
unzip -d /root /home/myhome.zip [将myhome.zip解压到/root下]
tar 打包&解压
打包的文件是.tar.gz后缀
tar [选项] XXX.tar.gz 打包的内容
选项 | 功能 |
---|---|
-c | 产生.tar打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包.tar 文件 |
案例演示
压缩多个文件,将/home/pig.txt 和 /home/cat.txt 压缩成 animal.tar.gz
1 | tar -zcvf animal.tar.gz /home/pig.txt /home/cat.txt |
将 animal.tar.gz 解压到当前文件目录下
1 | tar -zxvf animal.tar.gz |
将animal.tar.gz 解压到/opt/test文件目录下
1 | tar -zxvf /home/animal.tar.gz -C /opt/test |
组管理
- 组操作
命令 | 解释 | 备注 |
---|---|---|
groupadd | 组创建 | |
chgrp | 修改文件所在组 | chgrp 组名 文件名 |
usermod | 修改用户所在组 | usermod -g 改变用户所在组 usermod-d 改变用户登录的初始目录 |
权限管理
- 权限说明
drwxr-xr-x. 2 root root 6
说明
(对应文件:[r] 可读 [w]可写 [x]可执行
对应目录:[r] 可读,可查看目录内容 [w]对目录可创建删除重命名 [x]可进入该目录
r=4,w=2,x=1 )
- dspanrwxr-xr-x. 2 root root 6
文件类型(d,-,l,c,b) l:链接 d:目录 c:字符设备文件 b:块设备
drwxr-xr-x. 2 root root 6
该文件所有者拥有的权限
__drwxr-xr-x. 2 root root 6 __
该文件所属组拥有的权限
- __drwxr-xr-x. 2 root root 6 __
其他用户拥有该文件的权限
- __drwxr-xr-x. 2 root root 6 __
2 文件:硬连接数 目录:子目录数
root 用户
root 组
6 文件大小(单位:字节)
- chmod 修改权限 (u:所有者 g:所有组 o:其他人 a:所有用户 r=4,w=2,x=1)
给test.txt的所有者rwx权限,所在组rx权限,其他组r权限
1 | chmod u=rwx,g=rx,o=x test.txt //法一 |
给test.txt的所有者除去执行权限,增加组w权限
1 | chmod u-x,g+w test.txt |
给test.txt的所有用户添加r权限
1 | chmod a+r test.txt |
- chown 修改文件所有者
chown newowner 文件/目录 改变所有者
chown newowner:newgroup 文件/目录 改变所有者和所有组
-R 如果是目录 则使其下所有子文件或者目录递归生效