本篇文章不会讲述如何安装虚拟机或者如何安装
双系统哦, 因为网上相关的教程已经很多了, 我默认你环境已经配置好了哟!
首先我来谈一谈系统内核, Bash解释器之间的关系
系统内核是基于硬件的第一层软件扩充, 提供操作系统最基本的功能. 具体点来说就是, 让你的机箱中的各种设备: 比如运算器, 控制器, 存储器, 输入以及输出设备等 各司其职的东西.
内核负责驱动硬件, 管理活动以及分配管理硬件资源, 所以普通的用户是没有权限来操作内核的, 于是就诞生了基于"系统调用接口"开发程序的模式. 也就是说, 你编写的应用程序调用系统调用接口, 接口调用内核, 而内核操作硬件!
现在我应该可以向你解释为什么许多计算机大牛喜欢直接在命令行上敲命令而不用图形化界面了: 一方面操作鼠标点确实慢, 但另一个很重要的方面就是, 你所操作的图形工具其实也是调用脚本来进行工作的, 但是功能却受到了很大的限制, 缺乏灵活性, 我直接在命令行上, 参数可以很灵活的更改, 命令的组合也可以灵活的更改, 更快, 效率更高! 而且一般服务器上面都不会安装图形界面(没错, 桌面其实也是软件的范畴, 你可以卸载的), 因为图形界面占内存啊, 你想想, 你的服务器集群有多少台机器, 每一台机器上一个图形界面, 这得浪费多少资源啊!
接下来我们谈谈shell, 英文翻译过来就是 "壳", 这个很形象, 因为这层壳把内核 "包裹"了起来, 充当着人们与内核之间的翻译官, 是大多数linux系统的默认字符解释器, 当然, 最强大的还是
, 但
还是得学好!
下面我们步入
常用命令的学习
上的命令一般有如下的格式: 命令名称 [命令参数] [命令对象] (它们之间有空格隔开).
命令参数反正我是记不住的, 因为不同于图形化界面, 它们一般有统一的标准, 比如这个按钮取名文件, 那个叫菜单之类的, 而命令的参数没有一个统一的标准. 我当时学习的时候, 这个也让我挺害怕的, 但幸好, 我们有 命令, 遇到不熟悉的命令,
它就对了.
1. man: 用于查看命令的具体可用参数的详细信息以及对象的格式
的一些常用操作按键:
- 空格: 向下翻一页
- /关键词: 从上至下搜索某个关键词
- ?关键词: 从下至上搜索某个关键词
- n: 定位到下一个搜索的关键词
- N: 定位到上一个搜索的关键词
- q: 退出
还有几个电脑上的page down, page up, home, end按键之类的, 是什么意思应该不用说. 关于这个命令你需要掌握的就是这么多了, 这个命令掌握了, 其他的命令忘记了也没关系, 就完事了.


下面介绍一些非常常用的命令, 希望你们能够记忆下来, 因为非常常用
2. echo : 用于在终端显示字符串或者变量

3. wget, curl命令: 用于从网络下载文件
等你用熟了就知道这个命令有多么好用, 下载东西, 一条命令搞定, 不用再在浏览器上面点来点去了, 有时候还会点到小广告(手动狗头).
格式: wget [参数] 下载地址
这里我就介绍一下常用的参数:
- -b: 后台下载模式, 也就是说你可以继续在命令行上执行其他的操作
- -O: 后面解一个目录, 即下载到你指定的这个目录
如果还有其他的需求到时候就可以了
4. ifcongig: 用于获取网卡配置与网络状态
这个命令也非常常用, 当你网络出现异常的时候, 你就可以执行这个命令来排查一下
5. free, ps, top: 这几个都是用来显示当前系统中内存的使用情况, 类似于win里面的任务管理器吧
6. history: 用于查看历史执行过的命令
这个命令的常用语强大不用过多的解释吧.这里介绍一个小窍门, 用!加上你想要执行的历史命令前面的序号就可以执行那一条命令了

7. pwd: 用于显示当前的工作目录
就是显示你自己当前处在哪一个目录, 用一次就知道了.
8. cd :切换工作路径
这个命令不用解释了, 没学过的想必都知道.
这里介绍一下相关的参数:
- -: 切换到上一次的目录: 比如
cd - - ~: 切换到家目录
- ..: 切换到上级目录
9. ls: 用于查看目录里面有哪些文件
这个命令用的非常多, 它的几个参数也务必记住:
- -a: 查看全部文件(包括隐藏的文件, 因为默认以 . 开头的文件是隐藏文件)
- -d: 仅查看目录本身
- -h: 将文件的容量转换成human(人)容易读得懂的, 即(K, M, G)等单位
- -l: 查看文件的更详细的信息
10. cat: 用于查看纯文本文件
就是显示文件的内容
11. more: 也是查看纯文本文件, 不过是用在更长的文件上面
12. head: 用于查看纯文本文件的前
行
比如:
- head -n 10: 显示10行
- head -n -10 不显示最后10行, 其他的正常输入显示
13. tail: 与head相反, 用于显示纯文本文件的后N行
14. wc: 用于统计指定文本的行数, 字数, 字节数
wordCount的缩写
15. diff:用于比较多个文本文件之间的差异
有几个参数挺重要的:
- -b: 忽略空格引起的差异
- -B: 忽略空行引起的差异
- --brief: 仅报告是否存在差异
- -c: 使用上下文输出格式
16. touch: 用于创建空白文件与修改文件时间
Linux中的文件有三种时间:
- 更改时间: 内容修改时间
- 更改权限: 更改权限与属性的时间
- 读取时间: 读取文件内容的时间 参数:
- -a: 仅修改"访问时间"
- -m: 仅修改"更改时间"
- -d: 同时修改atime 和 mtime
17. mkdir: 创建空白的文件夹
有几个重要的参数:
- -m=MODE: 指定这个目录的权限, Linux系统有严格的权限机制
- -p: 连续创建多层目录
- -v: 显示创建的过程

linux的哲学: 没有消息就是好消息
18. cp: 复制文件或者目录
- 目标文件是一个目录, 那么会把源文件复制到该目录中
- 目标文件是一个文件, 会将源文件覆盖该文件
- 目标文件不存在, 将会复制源文件并修改为目标文件的名称
19. mv: 用于移动文件或者改名
mv [选项] 文件名 [目标路径|目标文件名]
20. rm: 用于删除文件或者目录
哈哈, 想必大家都见过大名鼎鼎的 rm -rf /吧, 删库跑路. 那么学了这个以后, 你就会知道这条命令是什么意思啦!
参数:
- -f: 忽略警告信息. 若不加此参数, 每删一个文件之前都会提示一次: 是否删除该文件
- -i: 删除前先询问
- -r: 递归删除文件夹及下面的所有文件及文件夹
这个命令可千万不要乱用哟, 造成的一切后果笔者概不负责的哟!
21. tar: 用于对文件打包压缩或者解压
这个命令参数很多, 我只介绍一下常用的用法
打包并压缩文件: tar -czvf 压缩包名.tar.gz 文件名
解压并展开压缩包: tar -xzvf 压缩包名.tar.gz
22. grep: 对文本进行搜索
格式: grep [选项] [文件]
常用参数:
- -i: 忽略大小写
- -n: 显示行号
- -v: 反向选择, 即仅列出没有"关键词"的行
23. find: 用于查找文件
格式: find [查找路径] 寻找条件 操作
这个命令太灵活了, 参数很多, 用法也多样, 所以推荐用的时候再查
关于常用命令的介绍就到这里了, 后续还会出关于
的文章的, 如果觉得这篇文章对您有帮助, 那么就给我点一个赞吧, 您的一个赞将是对我的极大鼓励
参考书籍
- 鸟哥的Linux私房菜(基础篇)