• 命令行相对于图形化界面操作的本质不同是:命令行操作时不需要鼠标的,而对于鼠标写一个操作功能又是比较麻烦的,所以命令行是最原始的交互方式,只要一个键盘,就能干所有的事。而鼠标操作可能各种移动什么的还比较慢,所以效率低。
  • Linux中都是以文件作为操作对象,任何的东西都能在系统中对应一个文件。所以Linux系统内核无论怎么裁剪,文件系统是必须要的。那么Linux的文件组织形式是如下:

根目录(图形化界面中显示的是系统盘,反正就是一个存储盘文件系统的入口,用‘/’来表示)包含了bin,boot,etc,home,mnt,....sys,root(用户root的目录)等目录,而home目录就是登陆用户的目录里面会包含多个用户,比如zhangsan,lisi,wagner等等,对于张三目录zhangsan(用‘~’来表示)内就包含了桌面,图片,下载。。。等等目录


  • 命令行中,# 代表root用户,$代表普通用户,/ 代表根目录,~ 代表本用户的目录,.. 代表上一层目录,- 代表上一次历史目录
  • mkdir 新建目录,touch 新建文件,top 显示系统状态和所有进程信息,clear 屏幕向上翻一页,达到清屏的目的
  • 打包:把所有文件和文件夹打包成一个文件xx.tar,这是方便别的程序处理,比如压缩软件只能压缩一个文件。解包:也就是相反的过程。打包:tar -c -f  all.tar file1 file 2 file3。解包:tar -x -f all.tar。    所以xx.tar就是一个普通的,一种格式的单个文件罢了
  • tar [选项] [源文件或目录],这里大括号表示此参数为可填可不填,也就是说会有默认值的,都不填的话,会提示输入--help试试,实际上这个也是这个命令的一种返回结果,而不是说错了
  • 压缩:把一个文件进行压缩文一个更小的文件,比如gzip命令(gzip实际上是一个程序),gzip xx.tar就变成了xx.tar.zip,如果解压就是gunzip xx.tar.zip。因此xx.tar.zip也是一种格式的文件罢了
  • rm命令用于删除文件,删除目录得加 -r 参数,即recursive,诋毁的意思。rm会什么都删,连自己本身系统都可以删,那么系统就再也启动不了了。xx --help出来的解释比man xx出来的详细,且有deepin系统中显示中文,这个应该是deepin自己翻译过了。
  • 终端terminal为一个命令行界面,shell为命令行交互的统称,bash是一个命令行解释程序,专门读取我们在terminal中输入的命令行,然后进行解释处理后,反馈和输出信息到terminal中,所以bash所解释的对象是一种简单版编程语言,也叫做脚本语言,里面也可以进行条件跳转,for循环等,所以也是具有语法的,可以学学​​Linux bash shell脚本语法入门​​。这些语句的集合就是批处理文件,在terminal中可以一次性执行,为我们直接在terminal中一行一行输入的命令,只是我们自己刚好单行输入罢了,bash在遇到tar,gcc,rm等标识符时候,这个不是bash脚本语言的关键词或者变量,就会去环境变量中找是否有此程序(找不到就报错了),找到了就把此条命令后面的参数给这个tar,gcc程序传进去,这些程序如gcc内会有printf称为标准输出,输出的会被bash程序获取到然后显示在terminal终端中。
  • makefile文件也是一种批处理文件(也是具有语法的,可以学学,​​Makefile基本语法​​​,​​makefile的基础知识,特别又用​​),是由make程序(类似上面的bash)解释执行的,最初是用于gcc编译(编译过程是可以自己控制的,而且是没有集成开发环境IDE(搞嵌入式系统,这个基本没有,所以基本上都是命令行gcc自己指定各种编译),所以比如单独编译?交叉编译?编译参数?等等各种指定,非常灵活,所以需要makefile这种文件来指定编译过程)方便用的,里面的语法比起bash更加的智能(比如某文件不存在,会先去生成这个文件,如果某文件做了修改,能根据修改时间自动重新编译此源文件,从而正确生成最后的编译结果,比较聪明),所以很多bash命令可以写的功能都用makefile来写了,然后在terminal命令行中,make makefile1(这一句本身就是bash脚本),这样bash调make程序,然后make程序解释执行makefile了。