linux命令快速入门 linux命令技巧

LINUX快速入门第八章:Shell基础 我们平时所说的 Shell 可以理解为 Linux 系统提供给用户的使用界面 。Shell 为用户提供了输入命令和参数并可得到命令执行结果的环境 。当一个用户登录 Linux 之后,系统初始化程序 init 就根据 /etc/passwd 文件中的设定,为每个用户运行一个被称为 Shell(外壳)的程序 。
确切地说,Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至编写一些程序 。
Shell 处在内核与外层应用程序之间,起着协调用户与系统的一致性、在用户与系统之间进行交互的作用 。图 1 是 Linux 系统层次结构图,Shell 接收用户输入的命令,并把用户的命令从类似 abed 的 ASCII 码解释为类似 0101 的机器语言,然后把命令提交到系统内核处理;当内核处理完毕之后,把处理结果再通过 Shell 返回给用户 。
换句话说:
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁 。Shell 既是一种命令语言,又是一种程序设计语言 。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务 。
Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell 。
Shell 与其他 Linux 命令一样 , 都是实用程序,但它们之间还是有区别的 。一旦用户注册到系统后,Shell 就被系统装入内存并一直运行到用户退出系统为止;而一般命令仅当被调用时,才由系统装入内存执行 。
与一般命令相比 , Shell 除了是一个命令行解释器,同时还是一门功能强大的编程语言,易编写,易调试 , 灵活性较强 。作为一种命令级语言,Shell 是解释性的,组合功能很强,与操作系统有密切的关系 , 可以在 Shell 脚本中直接使用系统命令 。大多数 Linux 系统的启动相关文件(一般在 /etc/rc.d 目录下)都是使用 Shell 脚本编写的 。
同传统的编程语言一样 , Shell 提供了很多特性,这些特性可以使 Shell 脚本编程更为有用 , 如数据变量、参数传递、判断、流程控制、数据输入和输出、子程序及中断处理等 。
说了这么多,其实我们在 Linux 中操作的命令行界面就是 Linux 的 Shell , 也就是 Bash,但是我们的图形界面是 Shell 吗?其实从广义讲,图形界面当然也是 Shell,因为它同样用来接收用户的操作,并传递到内核进行处理 。不过,这里的 Shell 主要指的是 Bash 。
Shell 脚本
Shell 脚本(shell script) , 是一种为 shell 编写的脚本程序 。
业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念 。
由于习惯的原因,简洁起见 , 本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身 。
Shell的分类
目前 Shell 的版本有很多种,如 Bourne Shell、C Shell、Bash、ksh、tcsh 等,它们各有特点,下面简要介绍一下 。
最重要的 Shell 是 Bourne Shell , 这个命名是为了纪念此 Shell 的发明者 Steven Bourne 。从 1979 年起,UNIX 就开始使用 Boume Shell 。Bourne Shell 的主文件名为 sh , 开发人员便以 sh 作为 Bourne Shell 的主要识别名称 。
虽然 Linux 与 UNIX 一样 , 可以支持多种 Shell,但 Boume Shell 的重要地位至今仍然没有改变,许多 UNIX 系统中仍然使用 sh 作为重要的管理工具 。它的工作从开机到关机,几乎无所不包 。在 Linux 中,用户 Shell 主要是 Bash,但在启动脚本、编辑等很多工作中仍然使用 Bourne Shell 。
C Shell 是广为流行的 Shell 变种 。C Shell 主要在 BSD 版的 UNIX 系统中使用,发明者是柏克莱大学的 Bill Joy 。C Shell 因为其语法和 C 语言类似而得名,这也使得 UNIX 的系统工程师在学习 C Shell 时感到相当方便 。
Bourne Shell 和 C Shell 形成了 Shell 的两大主流派别,后来的变种大都吸取这两种 Shell 的特点,如 Korn、 tcsh 及 Bash 。
Bash Shell 是 GNU 计划的重要工具之一,也是 GNU 系统中标准的 Shell 。Bash 与 sh 兼容,所以许多早期开发出来的 Bourne Shell 程序都可以继续在 Bash 中运行 。现在使用的 Linux 就使用 Bash 作为用户的基本 Shell 。
Bash 于 1988 年发布,并在 1995-1996年推出Bash 2.0 。在这之前,广为使用的版本是1.14,Bash 2.0增加了许多新的功能,以及具备更好的兼容性 。表 2 中详细列出了各版本的具体情况 。
注意,Shell 的两种主要语法类型有 Bourne 和 C,这两种语法彼此不兼容 。Boume 家族主要包括 sh、ksh、Bash、psh、zsh;C 家族主要包括 csh、tcsh(Bash 和 zsh 在不同程序上支持 csh 的语法) 。
本章讲述的脚本编程就是在 Bash 环境中进行的 。不过 , 在 Linux 中除了可以支持 Bash,还可以支持很多其他的 Shell 。我们可以通过 /etc/shells 文件来査询 Linux 支持的 Shell 。命令如下:
在 Linux 中,这些 Shell 是可以任意切换的,命令如下:
用户信息文件 /etc/passwd 的最后一列就是这个用户的登录 Shell 。命令如下:
大家可以看到 , root 用户和其他可以登录系统的普通用户的登录 Shell 都是 /bin/bash,也就是 Linux 的标准 Shell,所以这些用户登录之后可以执行权限允许范围内的所有命令 。不过,所有的系统用户(伪用户)因为登录 Shell 是 /sbin/ndogin,所以不能登录系统 。
笔记:
sh/bash/csh/Tcsh/ksh/pdksh等shell的区别
新手必须掌握的linux命令常见执行Linux命令的格式是这样的:
注意,命令名称、命令参数、命令对象之间请用空格键分隔 。
命令对象一般是指要处理的文件、目录、用户等资源,而命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用--与-作为前缀 。
命令参数的长格式与短格式示例
1.echo命令
2.date命令
3.reboot命令
4.poweroff命令
5.wget命令
6.ps命令
7.top命令
8.pidof命令
9.kill命令
10.killall命令
如果我们在系统终端中执行一个命令后想立即停止它 , 可以同时按下CtrlC组合键(生产环境中比较常用的一个快捷键) , 这样将立即终止该命令的进程 。
或者,如果有些命令在执行时不断地在屏幕上输出信息,影响到后续命令的输入,则可以在执行命令时在末尾添加上一个符号 , 这样命令将进入系统后台来执行 。
1.ifconfig命令
2.uname命令
3.uptime命令
4.free命令
5.who命令
6.last命令
7.history命令
8.sosreport命令
三、工作目录切换命令
1.pwd命令
2.cd命令
3.ls命令
四、文本文件编辑命令
1.cat命令
2.more命令
3.head命令
4.tail命令
5.tr命令
6.wc命令
7.stat命令
8.cut命令
9.diff命令
五、文件目录管理命令
1.touch命令
2.mkdir命令
3.cp命令
4.mv命令
5.rm命令
6.dd命令
7.file命令
六、打包压缩与搜索命令
1.tar命令
2.grep命令
3.find命令
如何快速掌握Linux系统?小白入门必看对于初学者来说,学习Linux并不是简单的事情 , 想要完全掌握好Linux系统,合适的方法和技巧同样重要,这里我为大家总结了几点Linux学习方法及技巧,希望对你有所帮助 。
1、学习使用Linux命令:随着Linux桌面的发展,命令行在系统中依然是非常有效的、方便的,而Linux系统最主要的就是熟悉使用命令,Linux命令有许多强大的功能,可以完成非常复杂的操作 。
2、选择合适的Linux书籍:工具书对于学习而言是非常重要的,一本合适的书籍可以起到非常好的引导作用,选择适合自己的书籍,坚持看下去,可以获得满意的收获 。
3、选择适合你的Linux版本:Linux发行版本有很多,在国内也有十几个版本,我们需要根据自身的需求,选择合适的Linux版本,在这里推荐大家使用Contos 。
4、养成良好的工作习惯:Linux桌面对于系统是一个应用程序,从效率以及易用性来说都没有shell好用 , 虽然命令行学习起来效率非常慢,但是真正的精通之后就会有不一样的收获 。
5、善于动手实战:想要更好的增强自身的Linux技能,勤学苦练是非常重要的,准备一台电脑,安装一个适合自己的版本,通过动手来完成实战项目,可以更好的提升自己的能力和水平 。
【linux命令快速入门 linux命令技巧】linux命令快速入门的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于linux命令技巧、linux命令快速入门的信息别忘了在本站进行查找喔 。

    推荐阅读