文章目录
Linux基础
常用快捷键
按键 | 作用 |
---|---|
Ctrl+d |
键盘输入结束或退出终端 |
Ctrl+s |
暂停当前程序,暂停后按下任意键恢复运行 |
Ctrl+z |
将当前程序放到后台运行,恢复到前台为命令fg |
Ctrl+a |
将光标移至输入行头,相当于Home 键 |
Ctrl+e |
将光标移至输入行末,相当于End 键 |
Ctrl+k |
删除从光标所在位置到行末 |
Alt+Backspace |
向前删除一个单词 |
Shift+PgUp |
将终端显示向上滚动 |
Shift+PgDn |
将终端显示向下滚动 |
shell 常用通配符
字符 | 含义 |
---|---|
* |
匹配 0 或多个字符 |
? |
匹配任意一个字符 |
[list] |
匹配 list 中的任意单一字符 |
[^list] |
匹配 除list 以外的任意单一字符 |
[c1-c2] |
匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] |
{string1,string2,...} |
匹配 string1 或 string2 (或更多)其一字符串 |
{c1..c2} |
匹配 c1-c2 中全部字符 如{1…10} |
man 手册区段命令含义
区段 | 说明 |
---|---|
1 | 一般命令 |
2 | 系统调用 |
3 | 库函数,涵盖了C标准函数库 |
4 | 特殊文件(通常是/dev中的设备)和驱动程序 |
5 | 文件格式和约定 |
6 | 游戏和屏保 |
7 | 杂项 |
8 | 系统管理命令和守护进程 |
- 要查看只需在man后面相应区段加上数字即可
- 要搜索关键字使用
/<你要搜索的关键字>
,k, j
向前或向后滚动一行
用户及文件权限
who 命令
参数 | 说明 |
---|---|
-a |
打印能打印的全部 |
-d |
打印死掉的进程 |
-m |
同am i ,mom likes , 打印当前用户信息 |
-q |
打印当前登录用户数及用户名 |
-u |
打印当前登录用户登录信息 |
-r |
打印运行等级 |
/etc/group 文件格式说明
/etc/group 的内容包括用户组(Group)、用户组口令、GID 及该用户组所包含的用户(User),每个用户组一条记录。格式如下:
group_name:password:GID:user_list
你看到上面的 password 字段为一个 x
并不是说密码就是它,只是表示密码不可见而已.
使用usermod为用户添加用户组
使用 usermod
命令可以为用户添加用户组,同样使用该命令你必需有 root 权限,你可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令。
这里我用 shiyanlou 用户执行 sudo 命令将 lilei 添加到 sudo 用户组,让它也可以使用 sudo 命令获得 root 权限:
$ su shiyanlou # 此处需要输入 shiyanlou 用户密码,shiyanlou 的密码可以通过 `sudo passwd shiyanlou` 进行设置。
$ groups lilei
$ sudo usermod -G sudo lilei
$ groups lilei
然后你再切换回 lilei 用户,现在就可以使用 sudo 获取 root 权限了。
添加&删除用户
$ sudo adduser <用户名> # 添加用户
$ sudo deluser lilei --remove-home # 删除用户
adduser
和 useradd
的区别是什么?
答:useradd 只创建用户,创建完了用 passwd lilei 去设置新用户的密码。adduser 会创建用户,创建目录,创建密码(提示你设置),做这一系列的操作。其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。
修改文件所有者
$ sudo chown shiyanlou iphone6
修改文件权限
- 文件权限说明
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GwR9pPrF-1576563295298)(pic/shiyanlou_2_1.png)]
- 用数字表示, 二进制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G7RHqjqT-1576563295301)(pic/shiyanlou_2_3.png)]
执行权限 | 二进制 | 十进制 |
---|---|---|
rwx | 111 | 7 |
rw- | 110 | 6 |
r-x | 101 | 5 |
r– | 100 | 4 |
-wx | 011 | 3 |
-w- | 010 | 2 |
–x | 001 | 1 |
— | 000 | 0 |
- 修改权限
$ sudo chmod <权限代号> <文件名>
$ sudo chmod 755 <文件名>
Linux的目录组织
FHS(Filesystem Hierarchy Standard) 标准
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iryfVbZr-1576563295302)(pic/shiyanlou_3_1.png)]
环境变量&搜索文件
为了与普通变量区分,通常我们习惯将环境变量名设为大写。
本质上的定义与普通变量无异, 只是在Linux系统中赋予了它一些其他的意思, 代表的范围也比较大, 所以变得重要. 其实不光是Linux系统, Windows系统也是如此, 需要一些变量来保证系统的运行.
基本说明
通常会涉及到的变量类型有三种:
- 当前 Shell 进程私有用户自定义变量
- Shell 本身内建的变量
- 从自定义变量导出的环境变量
设计到的相关命令包括: set
, env
, export
命 令 | 说 明 |
---|---|
set |
显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。 |
env |
显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。 |
export |
显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。 |
按变量的生存周期来划分,Linux 变量可分为两类:
- 永久的:需要修改配置文件(当前环境下是
.profile
仅对于当前使用的用户有效, 要对所有用户生效需要修改/etc/profile
),变量永久生效; - 临时的:使用 export 命令行声明即可,变量在关闭 shell 时失效。
修改变量
变量设置方式 | 说明 |
---|---|
${变量名#匹配字串} |
从头向后开始匹配,删除符合匹配字串的最短数据 |
${变量名##匹配字串} |
从头向后开始匹配,删除符合匹配字串的最长数据 |
${变量名%匹配字串} |
从尾向前开始匹配,删除符合匹配字串的最短数据 |
${变量名%%匹配字串} |
从尾向前开始匹配,删除符合匹配字串的最长数据 |
${变量名/旧的字串/新的字串} |
将符合旧字串的第一个字串替换为新的字串 |
${变量名//旧的字串/新的字串} |
将符合旧字串的全部字串替换为新的字串 |
变量删除
$ unset <变量名>
让环境变量立即生效
$ source .zshrc
搜索文件
whereis
简单快速
locate 快而全
参数 | 含义 |
---|---|
-c | 统计数目 |
-i | 忽略大小写查找 |
-b | 只搜索二进制文件 |
-m | 只搜索man和infos等说明信息 |
-s | 只搜索源码 |
find 精而细
$ find <位置> <操作> (<限制条件>) <文件名>
- 与时间相关的参数:
参数 | 说明 |
---|---|
-atime |
最后访问时间 |
-ctime |
最后修改文件内容的时间 |
-mtime |
最后修改文件属性的时间 |
以mtime为例:
-mtime n
:n 为数字,表示为在 n 天之前的“一天之内”修改过的文件-mtime +n
:列出在 n 天之前(不包含 n 天本身)被修改过的文件-mtime -n
:列出在 n 天之内(包含 n 天本身)被修改过的文件-newer file
:file 为一个已存在的文件,列出比 file 还要新的文件名
文件打包与压缩
总结:
- zip:
- 打包 :zip something.zip something (目录请加 -r 参数)
- 解包:unzip something.zip
- 指定路径:-d 参数
- tar:
- 打包:tar -cf something.tar something
- 解包:tar -xf something.tar
- 指定路径:-C 参数
文件后缀名 | 说明 |
---|---|
*.zip |
zip 程序打包压缩的文件 |
*.rar |
rar 程序压缩的文件 |
*.7z |
7zip 程序压缩的文件 |
*.tar |
tar 程序打包,未压缩的文件 |
*.gz |
gzip 程序(GNU zip)压缩的文件 |
*.xz |
xz 程序压缩的文件 |
*.bz2 |
bzip2 程序压缩的文件 |
*.tar.gz |
tar 打包,gzip 程序压缩的文件 |
*.tar.xz |
tar 打包,xz 程序压缩的文件 |
*tar.bz2 |
tar 打包,bzip2 程序压缩的文件 |
*.tar.7z |
tar 打包,7z 程序压缩的文件 |
zip 压缩打包程序
参数 | 含义 |
---|---|
-r | 递归打包包含子目录的全部内容 |
-q | 安静模式,即不向屏幕输出信息 |
-o | 表示输出文件, 在其后紧跟打包输出文件名 |
-[1~9] | 设置压缩级别(9最大, 1最小) |
-x | 排除某个文件(必须使用绝对路径) |
-e | 创建加密压缩包 |
-l | 将LF转换为CR& |