Linux基本知识——总结
系统调用层、内核
内核:多任务、硬件管理
桌面环境
X 窗口系统:工具包及架构协议
xorg是实现了 X 协议规范的一个提供图形用户界面服务的服务器,就像实现了 http 协议提供 web 服务的 Apache。
只有服务器也是不能实现一个完整的桌面环境的,还需要一个客户端,我们称为 X Client:KDE,GNOME,XFCE,LXDE,
终端
终端模拟器:接受用户的输入和显示输出。xfce 桌面环境自带的 xfce-terminal。
终端(Terminal)和控制台(Console)区别:
终端对应:/dev/tty设备
Shell
Shell命名来源:隐藏了操作系统底层细节。类似cmd,“提供给使用者使用界面”的命令解析器
图形界面:图形Shell
核:内核
Ubuntu 终端默认使用的是 bash,默认的桌面环境是 GNOME 或者 Unity(基于 GNOME),
实验楼使用的分别是zsh 和 xfce。
Shell
- 用户交互的界面
- 控制系统的脚本语言
Ctrl+z | 将当前程序放到后台运行,恢复到前台为命令fg |
Ctrl+a | 将光标移至输入行头,相当于Home 键 |
Ctrl+e | 将光标移至输入行末,相当于End 键 |
Ctrl+k | 删除从光标所在位置到行末 |
Alt+Backspace | 向前删除一个单词 |
通配符
字符 | 含义 |
---|---|
* | 匹配 0 或多个字符 |
? | 匹配任意一个字符 |
[list] | 匹配 list 中的任意单一字符 |
[!list] | 匹配 除list 中的任意单一字符以外的字符 |
[c1-c2] | 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] |
{string1,string2,...} | 匹配 sring1 或 string2 (或更多)其一字符串 |
{c1..c2} | 匹配 c1-c2 中全部字符 如{1..10} |
man:
/<你要搜索的关键字>,查找到后
- 使用n键切换到下一个关键字所在处
- shift+n为上一个关键字所在处
$ ls --help
用户管理
whoami
pts 表示伪终端
创建用户:必须在sudo组里面。
增加用户:$ sudo adduser lilei
用户组
- 查看用户组:groups shiyanlou,冒号之前表示用户,后面表示该用户所属的用户组
- 查看是否属于sudo组:cat /etc/group | grep -E "shiyanlou"
- 加入sudo组:执行sudo usermod -G sudo lilei
- 删除用户:sudo deluser lilei --remove-home
文件权限
链接到该文件所在的 inode 结点的文件名数目
改变所有者:sudo chown shiyanlou iphone6
1 2 4
$ chmod go-rw iphone6
'g''o'还有'u',分别表示group,others,user,'+','-' 就分别表示增加和去掉相应的权限。
目录结构
Linux 的磁盘是“挂在”(挂载在)目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。
二层规范:针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统登录文件、/usr/share 放置共享数据等等。
路径
rm -f test
$ touch file{1..5}.txt//创建5个文件
$ rename 's/\.txt/\.c/' *.txt//把*.txt变为*.c
$ rename 'y/a-z/A-Z/' *.c//把小写改为大写。
$ cat -n passwd显示行号
环境变量
- 自定义环境变量
- 导出的环境变量
- set:显示所有环境变量
- env:显示与当前用户相关的环境变量
- export:自定义变量导出为环境变量。
在当前进程的子进程是否有效,有效则为环境变量,否则不是
执行命令是从$ PATH=$PATH:/home/shiyanlou/mybin来进行搜索的。
echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
${变量名%%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最长数据
使用source命令来让其立即生效,如:source .zshrc或者. ./.zshrc
搜索文件
whereis :可以搜索-b ,-m , -s
使用前先updatedb
locate:如果想只统计数目可以加上-c参数,-i参数可以忽略大小写进行查找,
列出 home 目录中,当天(24 小时之内)有改动的文件:
$ find ~ -mtime 0
列出用户家目录下比Code文件夹新的文件:
$ find ~ -newer /home/shiyanlou/Code
文件打包
zip -r -q -o shiyanlou.zip /home/shiyanlou
-r:递归
-q:安静
-o:输出的名称
-x:排除上一次创建的
rar a shiyanlou.rar .
-c:压缩包
-f:文件名
-v:可视化
也可以参见简书主页:https://www.jianshu.com/u/482f183ec380