Linux Shell 入门命令和操作(笔记)

一、基本操作
   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 apt-get         #用于安装、更新、卸载等操作的公共程序集
工具 说明
install 后面加上软件包名,用于安装一个软件包
update 更新本地软件
upgrade 升级本地可更新的全部软件包,但存在依赖关系时不会升级
remove 移除已安装的软件包,包括与被移除软件有依赖关系的软件包,但不包含配置文件
purge 移除软件包和配置文件
clean 移除下载到本地的已经安装好的软件包


                    
                 
                  
                 
                  
                   
                   


注:本文只是作为笔者学习过程中的一份学习笔记,更多更详细的内容请参见相关书籍或相关文档

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。