Linux操作系统包括三种不同类型的进程,一般分为交互进程、批处理进程和守护进程三类。交互进程是由一个终端(Shell)启动的进程,它既可以在前台运行,也可以在后台运行。批处理进程和终端没有联系,是一个由脚本启动的进程序列。守护进程总是活跃,在系统启动时通过脚本自动启动,或由root启动,通常在后台运行,直到系统关闭时退出。一个进程可以拥有子进程。当父进程终止时,它的子进程也随之终止;而子进程终止时,父进程通常可以继续运行。Linux系统中,init 进程是内核启动的第一个用户级进程,它有许多很重要的任务,比如象启动getty(用于用户登录)、维护运行级别、处理孤儿进程等,所有进程都是它的子进程。 阅读全文
很多桌面版本的Linux系统在安装好了以后,其预置的软件已经能够满足我们的日常需求,但是我们也可能遇到一些需要自己额外安装的软件,这时候就需要用到Linux软件管理命令了。Linux系统中,软件通常以源代码或者预编译包的形式提供。由于Linux系统版本的多样性,软件安装的方式也不尽相同,常见的软件管理命令或方法分为软件源代码编译安装跟预编译安装,其中预编译安装又分为dpkg、rpm跟apt命令安装。 阅读全文
一、目录
目录是一种特殊类型的文件,如果没有特别指明, 文件包括文件和目录。“/ ”目录为文件系统根目录,所有目录都是它的子目录,绝对路径以 “/” 起始,相对路径以当前所在目录起始。“..” 表示上一级目录,“ .” 表示当前目录,它们是两个特殊目录。
二、链接 阅读全文
一、df命令
df [选项] [文件]
df命令用于检查文件系统的磁盘空间占用情况。通过该命令可以直观地获得当前磁盘上各个分区分别已经使用了多少空间,还剩下多少空间等信息。如果跟上文件,将显示该文件所在分区的信息,默认是显示所有文件系统。 阅读全文
今天写了一个防止程序多次启动的测试程序,想在Android系统上验证一下效果,故用USB数据线将公司的海尔Pad连接到Ubuntu上,准备用android-sdk-linux_x86内的adb工具将编译好的可执行程序push到海尔Pad上,但是执行adb devices命令的时候告诉我设备存在,但没有权限,返回的结果如下所示。 阅读全文
我们在编写应用程序的过程中,通常会遇到这样的情况,因为某些原因,程序被系统多次或者反复调用,导致程序耗尽系统内存或者出现不可预知的错误,最终影响到程序原本的设计需求,这显然不是我们所希望看到的结果,但是如果在程序内部加上必要的判断,不管系统是否多次调用,都能防止同一时刻多个同样的程序同时运行。 阅读全文
系统信息管理,顾名思义,主要完成系统信息查询(如查看内核版本)和系统信息设置(如设置日期跟时间)等功能,这里简要介绍一下我们平时最常用到的一些系统信息管理命令,主要包括uname、lspci、lsusb、passwd等。
一、查看内核/操作系统/CPU信息
uname用来输出一组系统信息,如果不跟随选项,则视为只附加-s选项,即输出内核名称。 阅读全文
Linux下的xargs命令,从标准输入或者文件读取内容,按照空格或者空行将内容分割成多个参数,然后将这些参数传递给指定命令(默认echo)让其执行一次或者多次,传入的空行被忽略。该命令便于将某个命令在标准输入的执行结果作为另一个命令的执行参数,对于不支持管道操作的命令(如ls、file等)来说是一个福音。 阅读全文
Linux下的split命令,从文件或者标准输入读取内容,将其按照指定规则分割并保存成一个或多个文件。实际应用当中,很多情况下因为文件过大而无法传输或者存储,所以不得不将文件分割成多个文件来减小单个文件的大小,在Windows下这一操作需要专门的文件分割软件来完成,但是对于Linux来说,使用split命令便可轻松完成这一任务。 阅读全文
Linux下的expand命令,从文件或者标准输入读取内容,将tab制表符替换成多个空格(默认8个)后推送到标准输出。当用“cat -A”查看文件内容时,tab制表符将被显示为”^I”,所以经过expand命令处理过的文件内容中”^I”将被显示为多个空格。
常用参数:
-i:initial只有当制表符在行首时才替换为空格 -t<n>:将制表符替换为n个空格,而不是默认的8个