命令行学习笔记

简介

一般说的“命令行”是指命令,linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。

常用命令行

  1. 文件或目录的进本操作:
  • 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 设置环境变量
  1. 查找命令
  • find 用来在指定目录下查找文件
  • grep 查找文件里符合条件的字符串
  • strings 文件 | grep 关键字 匹配文件中的关键字
  1. vi编辑
  • i 在光标前插入文本
  • I 在当前行首插入文本
  • a 光标后插入文本
  • A 在当前行尾插入文本
  • o 在当前行之下新开一行
  • O 在当前行之上新开一行
  • r 替换当前字符
  • :%s#well#good#g 替换每一行中所有 well 为 good
  1. 账号操作命令
  • su 切换用户
  • sudo 切换为管理者
  • whoami 打印当前用户信息
  • passwd 用于修改用户的密码
  1. 系统及进程命令
  • 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之前,我们对于它都是很抗拒了,习惯了以往的图形界面,所以自然很抵触命令行,认为命令行十分复杂,一点儿也不方便,还不理解为什么会有人这么喜欢。可是我在去年实习的工作生活中接触到了它,学习并且应用,才发现了命令行真正的优点,能快速对文件进行操作、快速对系统进行处理,原来真的比鼠标控制图形界面方便多了~

趁此机会,我将之前工作中用到的命令行再次总结,并且加上新学习的知识,重新记录下来,希望能为以后工作带来便利!

推荐阅读更多精彩内容