Linux必学的60个命令
Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。
不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。
阅读更多 »
Linux必学的60个命令
Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。
不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。
阅读更多 »
Linux必学的60个命令:系统管理相关命令
Linux必学的系统管理命令
作者:曹元其 发文时间:2004.10.18
对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心。熟悉了Linux常用的文件处理命令以后,这一讲介绍对系统和用户进行管理的命令。
阅读更多 »
Linux必学的60个命令:网络操作命令
Linux必学的网络操作命令 (1)
作者:曹元其 发文时间:2004.11.18
因为Linux系统是在Internet上起源和发展的,它与生俱来拥有强大的网络功能和丰富的网络应用软件,尤其是TCP/IP网络协议的实现尤为成熟。Linux的网络命令比较多,其中一些命令像ping、 ftp、telnet、route、netstat等在其它操作系统上也能看到,但也有一些Unix/Linux系统独有的命令,如ifconfig、 finger、mail等。Linux网络操作命令的一个特点是,命令参数选项和功能很多,一个命令往往还可以实现其它命令的功能。
System V的启动风格和bsd的启动风格不同,网上很多文章介绍这件事,但是那些文章仅仅从应用的角度来分析,这在理解上就有很大的困难,毕竟差异算什么呢?充其量仅仅算一种习惯,没有孰优孰劣的,如果让读者非得分出个所以然来,仅从应用角度来理解就不够了,最好的方法就是从源代码的角度看个究竟,几乎所有的人都知道unix和类unix系统是从init程序开始生命历程的,但是却有了System V和BSD两种风格的启动,说什么/etc/inittab,/etc/rc.d/等等的不同,让人真的很难分辨清楚这到底是怎么一回事,实际上根本没有那么复杂,执行什么脚本以及怎么执行只是它们各自init程序的约定,从这个意义上讲这些启动脚本就是一种动态语言,而init程序就是解释器,本文就分析System V和BSD的init源代码,然后试着分析它们有什么不同并试着指出它们各自的特点以及思想。
System V和BSD的启动程序都是/sbin/init,源代码都是init.c,我先分析System V的init.c文件(以下简称init)。init从main开始执行,最开始解析命令行参数,随后就进入了一个大循环,细节我就不说了,主要谈一下代码逻辑进而指出为什么启动脚本的不同:
BSD中没有运行级别的概念,一些文章上说的bsd运行级别是错误的。bsd的init进程通篇维持一个状态机,该状态机在不同状态间迁移,比如用户在shell敲入init 3(实际上这种情况不会发生,bsd不允许init第二次运行,这里仅仅通过System V的方式举个例子),那么就有可能引起状态机的迁移,再比如用户给init进程发送了一个信号,也有可能引起状态机迁移。
typedef long (*state_func_t)(void);
typedef state_func_t (*state_t)(void); //从字面上理解state_t就是一个状态机,它实质上是一个函数指针,这个函数指针在很多地方会改变,比如信号处理,比如命令行参数,比如出错…从而引起状态机的状态迁移。
#define DEFAULT_STATE runcom //默认的状态机初始状态函数就是runcom
state_t requested_transition = DEFAULT_STATE; //requested_transition是当前的状态机执行函数,全局变量,随时改变