快捷指令
- Ctrl+C:中断当前运行的命令或程序。
- Ctrl+D:在终端中输入EOF(End of File)信号,通常用于退出终端或结束标准输入。
- Ctrl+Z:将当前运行的命令置于后台,并暂停它的执行。
- Ctrl+R:在命令行历史记录中反向搜索之前输入的命令。
- Ctrl+L:清屏,相当于执行"clear"命令。
- Ctrl+A:将光标移到命令行的开头。
- Ctrl+E:将光标移到命令行的末尾。
- Ctrl+K:删除光标后的内容。
- Ctrl+U:删除光标前的内容。
- Ctrl+W:删除光标前的一个单词。
- Ctrl+T:交换光标位置前面的两个字符。
- Ctrl+Y:粘贴之前使用Ctrl+K、Ctrl+U或Ctrl+W删除的内容。
数据流和重定向
标准输入stdin (stadard input):从键盘获取的输入
代码:0
标准正确输出(standard output):命令执行后的正确信息会输出到屏幕上
代码:1
标准错误输出saderr(standard error output):命令执行后失败后的错误信息会输出到屏幕上
代码:2
重定向操作符
输出重定向符
>输出重定向符(覆盖);>>追加输出重定向符(不覆盖)
>文件名 可以创造文件
输入重定向操作符
<输入重定向符;<<输入终止
EOF 终止
echo 显示一行文本
用法:echo[字符串][$]
tee从标准输入读取并写入标准输出和文件
| 管道符
用法:命令 管道符 tee 命令
vim
s删一个字符S删
基本编辑命令
- i:进入插入模式,允许在当前光标位置输入文本。
- a:在光标后插入文本。
- A:行尾插入
- o:在当前行下方插入一行。
- O:光标所在上一行
- Esc:退出插入模式,返回普通模式。
- x:删除当前光标所在的字符。
- dd:删除当前行。
- yy:复制当前行。
- p:将已复制或删除的文本粘贴到当前光标位置下方。
- u:撤消上一次操作。
- Ctrl + r:重做上一次被撤销的操作。
光标移动命令
- h:向左移动一个字符。
- j:向下移动一行。
- k:向上移动一行。
- l:向右移动一个字符。
- 0:跳转到当前行的开头。
- $:跳转到当前行的结尾。
- gg:跳转到文件的第一行。
- G:跳转到文件的最后一行。
- w:跳转到下一个单词的开头。
- b:跳转到上一个单词的开头。
- Ctrl + u:向上滚动屏幕。
- Ctrl + d:向下滚动屏幕。
查找和替换命令
- /pattern:查找匹配正则表达式"pattern"的文本。
- n:查找下一个匹配项。
- N:查找前一个匹配项。
- :%s/old/new/g:全局替换"old"为"new"。
- :s/old/new/g:在当前行中替换"old"为"new"。
- :s/old/new/gc:在当前行中替换"old"为"new",并要求用户逐一确认是否替换。
复杂操作命令
- :w:保存文件。
- :wq:保存文件并退出Vim。
- :q:退出Vim。
- :q!:强制退出Vim,不保存任何更改。
- :set number:显示行号。
- :set nonumber:隐藏行号。
- :set ignorecase:设置查找时忽略大小写。
- :set noignorecase:设置查找时区分大小写。
- :set expandtab:设置Tab键为空格。
- :set noexpandtab:取消Tab键为空格设置。
查找文件的路径
whereis 查找命令的二进制文件、源文件和手动页面文件
whereis参数 命令名称
-b 查找二进制文件。
-m 查找手册。
-s 查找源代码文件
which
显示 (shell) 命令的完整路径
find
路径 匹配表达式
-name 文件名 (*,?)
-type 文件类型 (f 普通文件、d目录文件、l链接文件)
-size 文件大小 +1M -1M c(字节) w (字数) b(块数)KMG
-user 文件的所有者
-group 文件的所属组
-atime n分钟 查找n分钟内被访问的文件
-ctime n分钟
-mtime n小时
-mmin n分钟
-exec ......{}\;
locate 选项 要查找的内容
grep
用于查找文件里面的字符串或者正则表达式grep 选项 字符串文件的路径
-n 查找到字符串所在行4查找到字符串在的行号(C
I-只打印匹配到文件名
-v 反向查找
-r 递归查找
grep hello 文件名
grep -c hello 文件名
grep ^[h] 匹配以h开头的行
grep r 文件 查找文件里有字符r的行
grep grep ^[gf] 文件
grep ^[^gf] 文件
grep ^[0-9] 文件
grep^$ 文件
grep ^[AA$] 文件
浏览普通文件内容
cat (concatenate)
显示文件内容
语法格式:cat 选项 文件(路径)
-n 由1开始对行数进行编号
-b 由1开始对行数进行编号,空白行不编号
head
可用于查看文件的开头部分的内容,默认显示前十行。“语法格式:head 参数文件u
-q 隐藏文件名
-v显示文件名
-c<数目>显示的字节数
-n<行数>显示的行数
对文本内容进行排序显示Sort
-f忽略大小写+
-b忽略缩进与空格“
-n依照数值的大小排序c
-r反向排
-去除重复行心
-指定间隔符心
-设置字段范围心
压缩和解压缩
.zip: zip 程序压缩打包的档案;(很常见,但是因为不包含文档名编码信息跨平台可能会乱码)
.rar: rar 程序压缩打包的档案;(在windows上很常见,但是是商业软件。)
.gz: gzip 程序压缩的档案;(linux目前使用最广泛的压缩格式
.bz2: bzip2 程序压缩的档案
.xz: xz程序压缩的档案
.tar: tar 程序打包的资料,并没有压缩过。(但是tar打包的时候可以指定文件格式,就相当于压缩了)
.tar.gz: tar程序打包的档案,其中并且经过gzip 的压缩(最常见)
.tar.bz2: tar 程序打包的档案,其中并且经过 bzip2的压缩
tar.xz: tar程序打包的档案,其中并且经过xz的压缩 (新一代压缩选择).
7z: .7zip 程序压缩打包的档案
zip 可以压缩文件和目录
zip file
unzip file
tar 选项 包名 (压缩文件) 文件名
scp -r 当前主机文件 目标主机的对应路径
命令解释器-shell
type命令是用来查看命令类型的
格式: type 命令
命令类型
命令分为两类:
内置命令
alias 别名 = ’原命令 选项‘
history
-c 清空当前历史记录
-a
-r 文件名 将历史文件命令读入缓冲区
-w
-d 按序号删除
用户和组管理
1、在Linux中用户可以分为三类
第一种是超级用户一一用户名为root,它具有一切权限,只有进行系统维护(例如: 建立用户等)或其他必要情形下才用超级用户登录,以避免系统出现安全问题。
第二种是系统用户 (伪用户) 一一是Linux系统正常工作所必需的用户。主要是为了满足相应的系统进程对文件属主的要求而建立的,专门用来运行后台进程和服务的用户,系统用户不能用来登录系统。例如: bin、daemon! adm、Ip等用户
第三种是普通用户一一是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类。
2、在Linux中的组有两类:
第一种是基本组(私有组): 建立账户时,若没有指定账户所属的组系统会建立一个和用户名相同的组,这个组就是基本组。
第二种是附加组(公有组): 可以容纳多个用户,组中的用户都具有组所拥有的权利。
passwd
-n
-x
-w
-d 删除用户密码
Useradd
-u uid
-g gid
-G 指定附加组
-c “注释信息”,
-d 指定某个目录为用户的家目录
-s 指定用户使用的shell
passwd
-n 指定密码最短使用权限
-x 指定密码最长使用权限
-w 指定警告时间
-d 删除密码
useradd 用户名 (增加用户名)
usermod
-l 新用户名
-L 冻结用户账户
-U 解锁用户账户
userdel 用户名 (删除账户)
-r
groupadd 选项 组名
groupmod
groupdel
文件权限
rw- --- ---- . 数字 root root 数字
A B C D
A:该文件的所有者对文件的权限
B:该文件的所属组对该文件的权限
C:其他人对该文件的权限
D:扩展权限
数字是硬链接的引用次数
root 指该符号链接的所有者用户名
root 该符号链接所属组名
数字 该符号链接的大小(以字节为单位)
d rwx r-x r-x
r 读取的权限 查看目录下的文件列表
w 对文件内容进行更改的权限 对目录下的文件进行删除添加
x 对文件的执行权限 对目录的进入
- 代表没有权限
a(all) 所有人
- 增加权限
- -减少权限
- = 覆盖权限
数字设定法
- - 没有权限0
- x 执行权限1
- w 修改权限2
- r 读取权限4
格式:chmod n1n2n3 文件名称
N1:所属者的权限
N2:所属组的权限
N3:其他人的权限
特殊权限
SUID
作用: 是为了让一般用户执行某些程序的时候,在程序运行的期间,暂时获得该程序文件的所属者的权限。
SGID
文件: 如果 SGID 设置在二进制文件上面,则不论用户是谁,都可以在执行该程序的时候程序的所属组将变成该文件的所属组。
目录:如果SGID设置A目录上。则在该目录内创建的文件或者目录的所属组会变成AA目录的所属组。
chgrp
Sticky Bite
SBit 只针对目录有效,在具有 SBit 权限的目录下,如果该用户在该目录下拥有 wx 权限,则当用户在该目录下创建文件或者目录的时候,只有文件拥有者和root 用户才有权限去删除里面的东西。
拓展权限
ACL:给指定的用户分配指定的权限
查看acl权限
getfacl 文件名
setfacl 选项 文件名