1 基础知识
1.1 基本概念
- 挂载 Mount:将硬盘存储空间指向操作系统目录的操作,通过该目录即可访问存储空间
- 内建命令 / 外建命令:Shell的一部分,运行即加载,不需创建子进程,执行速度快 / 实用程序命令,需要时调用,速度较
- 程序 Program / 进程 Process / 线程 thread:进程(动态)是程序(静态)的一次活动;进程 / 线程的关系相当于:工厂里的车间 / 车间里的工人。每个CPU同一时刻只有一个进程在进行,一个进程可以由CPU调度、分配到多个线程执行,线程间共享进程的所有资源
- 变量的作用域:即变量的有效范围(比如一个函数中、一个源文件中或者全局范围),在该范围内只能有一个同名变量。一旦离开则该变量无效。
- 环境变量:环境变量的作用域比自定义变量的要大,如 Shell 的环境变量作用于自身和它的子进程。环境变量PATH中保存了linux命令对应的可执行文件的路径。
- Shell:UNIX/Linux 操作系统下用户交互的界面(Ubuntu下为GNOME),同时也是控制系统的脚本语言(Ubuntu 下为 bash)。
- 标准输出 stdout:程序在默认情况下输出结果,通常指向显示器。
- 输出重定向:把程序的输出转移到另一个地方的操作。
- 管道:将前面每一个进程的输出直接作为下一个进程的输入。通常用于进程间的通信(也可通过socket进行网络通信)。
1.2 常用缩写
- FHS(Filesystem Hirearchy Standard) 文件系统层次结构标准 APT(Advanced Package Tool)高级软件包工具RE(Regular Expression)正则表达式PCRE(Perl Compatible Regular Expression)Prel语言兼容正则表达式
1.3 常用命令速查
- cat:查看文本内容
- cd:切换目录
- mkdir:创建目录
- cp:复制文件到指定目录
- dir:列出目录内容
- export:将自定义变量导出为环境变量
- file:文件类型
- find:在指定范围内查找文件
- grep:查找文件内容
- join:合并(相同字段)
- less:阅读文本摘要
- ls:查看文件
- man:帮助文件
- mv:移动文件
- rm:删除
- sort:排序
- touch:创建文件
- tr:删除
- paste:合并
- pwd:当前目录
1.4 快捷键
- ctrl+c:中止命令
- ctrl+d:退出终端
- ctrl+a:移动光标到行头
- ctrl+e:移动光标到行末
- ctrl+k:删除从光标位置到行末
- Tab:补全命令/文件路经
2 命令实现
2.1 用户
# 创建新用户lilei
$ sudo adduser lilei
# 切换登陆
$ su -l lilei
# 查看用户所在用户组
$ groups lilei
# 退出登陆(或ctrl+D)
$ exit
# 删除用户
$ sudo deluser lile
2.2 文件
# 更新与安装
$ sudo apt-get update $ sudo apt-get install tree
# 绝对路径与相对路径
$ cd /usr/local/bin
$ cd ../../usr/local/bin
# 上级目录
$ cd ..
# 查看硬盘使用情况
$ df -h
# 为文件添加内容
$ echo "echo \"
# 在当前文件夹中查找包含“ay”字符串的文件
$ ls | grep ay
# 在文件day中查找包含un的行
$ grep un day
# 创建压缩文件
$ zip -r -q -o homework.zip /home/homework
# 删除“hello world”中的“o”
$ echo 'hello world' | tr -d 'o'
# 将“hello”中的ll,去重为一个l
$ echo 'hello' | tr -s 'l'
#将输入文本转换成大写
$ echo 'hello world' | tr '[:upper:]'
# 查看大小
$ du -h homework.zip
# 解压缩文件
$ unzip homework.zip
$ unzip -O GBK 中文压缩文件.zip
# 下载文件
$ wget http://...
# 获取帮助
$ man pwd
# 查看文件所有权
$ ls -l homework
# 修改所有权(属主xiaoming,属组classmate)
$ sudo chown xiaoming:classmate homework
#改变文件权限(增加属主对文件的执行权限)
$ chomd u+x homework
2.3 变量
# 创建变量
$ declare tmp
# 读取变量的值(注意变量前加"$")
$ echo $tmp
参考
别出心裁的linux命令学习法
https://www.cnblogs.com/rocedu/p/4902411.html
cat 命令使用方法
https://www.cnblogs.com/xuxiuxiu/p/6945424.html
tldr
https://blog.csdn.net/tcliuwenwen/article/details/109548043
https://www.cnblogs.com/zi-wang/p/12334862.html
echo
https://www.zsythink.net/archives/96
重定向
https://blog.csdn.net/qq_32224047/article/details/107345350
https://www.runoob.com/linux/linux-shell-io-redirections.html