Man can conquer nature.
"人定胜天"
一、基本操作
1、重要快捷键
Tab | 补全命令、目录、参数、文件名等 |
Ctrl+c | 强制终止当前的程序 |
Ctrl+d | 键盘输入结束或退出终端 |
Ctrl+z | 将当前程序放到后台运行,恢复为前台使用fg |
Ctrl+a | 将光标移至输入行首,相当于Home键 |
Ctrl+e | 将光标移至输入行末,相当于End键 |
Ctrl+k | 删除从光标所在位置到行末 |
Alt+Backspace | 向前删除一个单词 |
Shift+PgUp | 将终端显示向上滚动 |
Shift+PgDn | 将终端显示向下滚动 |
方向键"上"键 | 恢复之前输入过的命令 |
2、通配符
* | 匹配0各或多个字符 |
? | 匹配任意一个字符 |
[list] |
匹配list中的任意单一字符 |
[!list] | 匹配除list中字符外的任意单一字符 |
[c1-c2] | 匹配c1-c2中任意单一字符 如:[0-9][a-z] |
[str1,str2,...] | 匹配str1或str2(或更多)其一字符串 |
{c1..c2} | 匹配c1-c2中全部字符 如{1..10},注意是每个字符匹配一次 |
3、man
1 man <name> #查看name指定内容的详细说明,可以是命令,C库函数等,具体见man man
二、用户及文件权限管理
1、用户管理
1 who [选项]... [ 文件 | 参数1 参数2 ] #显示当前已登录的用户信息 2 sudo adduser <name> #添加新用户 3 sudo passwd <name> #为用户设置密码,不加<name>则设置当前用户的密码 4 su <name> #切换登录用户 5 groups <name> #查看用户属于哪些用户组 6 sudo usermod -G <g-name> <u-name> #为用户添加用户组 7 sudo deluser <u-name> --remove-home #删除用户并删除该用户的Home目录
2、文件权限
1 ls [选项]... [文件]... #列出文件的信息 2 chown [选项]... [所有者] 文件名 #修改文件的所有者 3 chgrp [选项]... 用户组 文件... #修改文件所属的用户组 4 chmod [选项]... 模式... 文件... #修改文件的读写执行权限
三、文件和目录操作
1、目录操作
1 tree <name> #以树形结构显示目录的结构,注意tree工具需要自行安装 2 cd <name> #切换到指定目录 3 pwd #获取当前目录的绝对路径 4 mkdir <name> #创建新目录
2、文件操作
1 touch <name> #创建空白文件 2 cp <name> <p-name> #复制文件到指定目录 3 rm [选项]... <name> #删除文件或空目录,加上-r参数可以删除非空目录 4 mv <name> <p-name> #移动文件到指定目录,或者修改文件名 5 cat [选项] <name> #正序打印文件内容 6 tac [选项] <name> #倒序打印文件内容 7 nl [选项] <name> #添加行号并打印文件内容 8 more <name> #分页查看文件内容 9 less <name> #类似于more 10 head <name> #查看文件开头的内容 11 tail <name> #类似于head但是是从末尾开始 12 file <name> #查看文件类型
四、环境变量与文件查找
1、变量
1 declare var #声明变量 2 var=XXX #给变量赋值 3 echo $var #打印变量内容 4 unset var #删除一个环境变量
2、环境变量
1 set #显示当前shell所有环境变量 2 env #显示与当前用户相关的环境变量 3 export #显示从shell中导出成环境变量的变量
3、命令的查找路径与顺序
1 echo $PATH #输出的内容为系统查找命令的各个路径,按照排列的顺序查找并调用找到的第一个命令
4、添加自定义路径到PATH
1 PATH=$PATH:path-name #临时修改当前shell的PATH变量
5、文件查找
1 whereis <name> #搜索二进制文件、man帮助文件或者源代码文件 2 locate <name> #查找指定目录下不同类型的文件 3 which <name> #用来确定是否安装了某个指定的软件 4 find [path] [opt] [act] #在指定目录下搜索满足指定条件的文件
五、文件打包与解压缩
常用的文件压缩打包/解压缩工具:
1 zip / unzip 2 rar 3 tar
具体参见man手册
六、文件系统操作与磁盘管理
1、查看磁盘和目录容量
1 df #查看磁盘容量,常加上 -h 参数以易读的方式打印
2、磁盘操作
1 dd #用于转换和复制文件 2 mount [opt] [sour] [dir] #挂在磁盘到指定目录 3 umount [dir] #卸载已挂载的磁盘 4 sudo fdisk [opt] #查看硬盘分区表信息
七、命令执行顺序控制与管道
1、命令执行顺序
1 cmd1;cmd2;cmd3;... #按顺序执行cmd1,cmd2,... 2 cmd1 && cmd2 #只有cmd1执行成功才执行cmd2 3 cmd1 || cmd2 #只有cmd1执行失败才执行cmd2 4 cmd1 | cmd2 #将cmd1的输出作为cmd2的输入
2、常用到管道的命令
1 cut #打印每一行的某一字段 2 grep #在文本中或标准输入中查找匹配字符串 3 wc #统计并输出一个文件中行、单词和字节的数目 4 sort #将输入按照一定方式排序后输出 5 uniq #用于过滤或者输出重复行
八、简单文本处理
1、文本处理命令
1 tr #删除或替换一段文本信息中的某些文字 2 col #将Tab换成对等数量的空格,或者反转这个操作 3 join #将两个文件中包含相同内容的那一行合并在一起 4 paste #将多个文件合并在一起,并以tab隔开
九、数据流重定向
1、简单重定向
1 cmd > name #将cmd1执行的结果重定向到指定文件或指定设备中,替换原来的内容 2 cmd >> name #类似于 > ,但是这里是追加到文件末尾,而不是替换 3 cmd < name #方向与 > 相反 4 cmd << name #方向与 >> 相反
2、重定向到多个文件
1 cmd | tee name1 name2 ... #将cmd1的执行结果重定向到标准输出和指定文件中
3、完全屏蔽命令输出
1 cmd > /dev/null #将命令的执行结果导入"黑洞"文件中
十、软件安装
1、在线安装
1 sudo apt-get [工具] #用于安装、更新、卸载等操作的公共程序集
工具 | 说明 |
install | 后面加上软件包名,用于安装一个软件包 |
update | 更新本地软件 |
upgrade | 升级本地可更新的全部软件包,但存在依赖关系时不会升级 |
remove | 移除已安装的软件包,包括与被移除软件有依赖关系的软件包,但不包含配置文件 |
purge | 移除软件包和配置文件 |
clean | 移除下载到本地的已经安装好的软件包 |
注:本文只是作为笔者学习过程中的一份学习笔记,更多更详细的内容请参见相关书籍或相关文档