简介
一般说的“命令行”是指命令,linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。
常用命令行
- 文件或目录的进本操作:
- mkdir 创建目录
- mkdir -p 递归创建
- tree 以树形结构显示文件目录结构
- cd 进入根目录
- cd .. 退回上层目录
- cd dir 进入某目录
- ls -l 详情模式列出文件夹的内容
- ls -a 列出文件夹里包括以"."开头的隐藏文件的内容
- rm 删除文件
- rm -r 删除目录
- rm -rf 强制删除文件或目录
- cp 复制文件到目录
- cp -r 复制目录到目录
- cp -a 复制之后的目标文件/目录和原文件/目录一模一样
- mv 原文件或目录 目标目录
- cat 查看文件内容
- chmod -R 递归改变文件夹权限
- wc -l * 查看目录下所有文件的总行数
- source 设置文件中的环境变量
- setenv 设置环境变量
- 查找命令
- find 用来在指定目录下查找文件
- grep 查找文件里符合条件的字符串
- strings 文件 | grep 关键字 匹配文件中的关键字
- vi编辑
- i 在光标前插入文本
- I 在当前行首插入文本
- a 光标后插入文本
- A 在当前行尾插入文本
- o 在当前行之下新开一行
- O 在当前行之上新开一行
- r 替换当前字符
- :%s#well#good#g 替换每一行中所有 well 为 good
- 账号操作命令
- su 切换用户
- sudo 切换为管理者
- whoami 打印当前用户信息
- passwd 用于修改用户的密码
- 系统及进程命令
- ps 用于显示当前进程的状态
- kill 用于杀死进程
- top 查看cpu利用资源
- df -h . 查看memory
- ctrl+c 强制中断程序
- ctrl+z 将程序挂机
- ipcs 显示调用进程读取访问一些ipc设备信息
- ipcrm 移除消息对象或共享内存段或信号集,同时会将与ipc对象相关链的数据也一起移除
shell版本
之前实习工作中较多使用bash,csh,在此我对shell各版本进行对比,并且学习zsh。
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,每个Shell都有它的用途,有些Shell是有专利的,有些能从Internet或其他来源获得。
1979年,Stephen Bourne在V7 UNIX版本上引入了标准shell,即sh。
sh是基于Algol的一种编程语言,主要是为了简化系统管理任务,由于缺少一些交互使用的特征,所以大多用来写脚本。
19世纪70年代后期,伯克莱分校在BSD UNIX系统上引入了C Shell。在标准Bourne shell上添加了不少功能。C shell在做为编程语言用时很像C语言,提供了相似的语法。而且为方便交互使用,还添加了命令行历史, 别名, 任务控制等功能。由于在大型机器上设计并添加了太多功能,显得有些臃肿,性能也比sh慢了很多。
Bourne Shell(即sh)是UNIX最初使用的shell,平且在每种UNIX上都可以使用。Bourne Shell在shell编程方便相当优秀,但在处理与用户的交互方便作得不如其他几种shell。
LinuxOS默认的是Bourne Again Shell,它是Bourne Shell的扩展,简称bash,与Bourne Shell完全兼容,并且在Bourne Shell的基础上增加,增强了很多特性。可以提供命令补全,命令编辑和命令历史等功能。它还包含了很多C Shell和Korn Shell中的优点,有灵活和强大的编辑接口,同时又很友好的用户界面
C Shell是一种比Bourne Shell更适合的变种Shell,它的语法与C语言很相似。
zsh是一个Linux用户很少使用的shell,这是由于大多数Linux产品安装,以及默认使用bash shell。几乎每一款Linux产品都包含有zsh,通常可以用apt-get、urpmi或yum等包管理器进行安装。相比其他版本的shell,zsh优点如下:兼容 bash、强大的历史纪录功能、智能拼写纠正、路径补全、命令补全、插件支持等。
小结
还记得在一开始接触linux之前,我们对于它都是很抗拒了,习惯了以往的图形界面,所以自然很抵触命令行,认为命令行十分复杂,一点儿也不方便,还不理解为什么会有人这么喜欢。可是我在去年实习的工作生活中接触到了它,学习并且应用,才发现了命令行真正的优点,能快速对文件进行操作、快速对系统进行处理,原来真的比鼠标控制图形界面方便多了~
趁此机会,我将之前工作中用到的命令行再次总结,并且加上新学习的知识,重新记录下来,希望能为以后工作带来便利!