linux从入门到精通读薄(二)Linux命令

第二章 Linux命令


2-1 更改目录

$ cd

2-2 显示目录内容

$ ls  
$ ls -a           列出目录中所有文件
$ ls -i            查看索引结点号

2-3 建立目录

$mkdir

2-4 复制文件

$ cp 源文件 目标文件

2-5 删除目录

$ rmdir

2-6 删除文件

$ rm

2-7 建立连接文件

硬连接
$ ln 源文件 目标文件

符号连接
$ ln  -s

2-8 重命名、移动文件

$ mv

2-9 浏览文件

$ cat   
将文件不间断地显示在屏幕上

$ more
在每页后面暂停时,可以敲入下列字符,告诉它下一步做什么:

Space 列出下一页;
Enter  列出下一页;
q        退出;
:n       列出下一个文件。

$ less
类似more,但增加了许多功能

$ tail -n
显示文件最后n行,默认为10

2-10 对文件的行、字和字符计数

$ wc -l(行数)w(字数)c(字符数)
默认同时打印三个数字

例如:
$ wc /etc/passwd
21  42  775 /etc/passwd

21,42和775分别表示/etc/passwd文件的行数,字数和字符数。

注意:wc将用空格、制表符和换行等字符分隔的字符串作为一个字。


使用wc命令时也可以不给出文件名。在这种情况下,wc命令将对从键盘直接送入的正文的行、字和字符数进行计数。
从键盘上输入正文遇到的问题在于当结束正文的输入要看计数结果时,要给wc发信号。这可以在新行开始处敲文件结束符EOF来实现。在键盘上的ctrl-d相当于EOF。当按ctrl-d时,wc命令将像读文件时遇到EOF一样,知道到达了文件的末尾。

2-11 联机帮助

Linux的联机手册分成若干节,每节的用途如下:

section 1                 说明响应shell提示符从键盘输入的命令的细节(如cat和ls)。
section 2                 说明这些系统调用。
section 3                 说明库函数调用。
section 4                 说明驱动硬设备的有关细节。
section 5                 说明不同的系统数据和管理配置文件的结构和格式(如口令文件)。
section 6                 说明系统提供的游戏。
section 7                 说明其他各节不说明的杂项。
section 8                 说明从键盘输入的命令的地方。这些命令只供系统管理用,即只能由系统特权用户root使用
section 9                 说明Linux内核本身的内部工作细节。

访问手册页命令

$ man (命令名)

每一手册页典型地包括下列各部分:

NAME                     给出手册页的条目及它的功能的联机说明
SYNOPSIS             说明如何使用这一条目
DESCRIPTION       更详细说明命令的功能。
OPTIONS               每个开关的功能在这里进行详细说明。
RETURN VALUE    在说明函数调用的手册页中,在这个标题下说明返回值的类型,也可能包括出现错误时返回的特定值。
FILES                     有关的配置和数据文件。
SEE ALSO              可能要查看的其他有关的手册页条目。
BUGS                     已知的缺点、限制甚至已知的隐错。

2-12 安全

每个文件和目录都有一组权限标志和它们结合在一起。可以用ls命令加-l开关来查阅这些标志的设置情况:

$cd
$ls -l text
total 2
-rw-r--r-- 2 pc  book  22 APR 20 20:37 motd
-rw-r--r-- 2 pc  book  796 APR 20 20:37 passwd

total 2表示目录中所有文件占用的磁盘的数据块总数(这里是两块,典型地每块1k字节)。
每行的第一个字符说明文件的类型。(-)表示普通文件,d表示目录。
每行中第1组字符的其余部分是文件的权限标志。
权限标志后面的数字说明文件的索引结点有几个目录连接。
下一字段给出文件所有者的登录名
接下去是共享该文件访问的用户组组名(有时也用gid)
再后面是文件容量的字节数
接着是文件最后修改的日期和时间
最后则是文件名称本身。

如果你要找出目录的细节而不是目录中文件的细节,你可以在ls命令中加-d开关来实现:

$ ls -ld text
drwxr-x--x 2 pc book 1024 Apr 20 20:35 text

普通文件的存取权限标志按排的顺序是读(r)、写(w)和执行(x)
目录的顺序是读、写和搜索

对每个文件(和目录)都有4类不同的用户。每类用户各有一组读,写和执行(搜索)文件的访问权限,这4类用户是:
root              系统特权用户类,他们都 有访问root登录帐号的权限
owner           实际拥有文件的用户。
group           共享文件的组访问权的用户类的用户组名称(有时用gid)。
world            不属于上面3类的所有其他用户。

root用户,拥有所有文件和目录的全面的读,写和搜索权限。其他三类用户则可以在单个文件或目录的基础上分别授权或撤消权限。



文件拥有者有权改变文件权限,可以用chmod命令来完成:
$ chmod mode files...

其中mode指定新的权限位值,可以用两种不同方式指定,符号和八进制数的位图。

八进制数位图例子:

将权限位字符串转换为2进制位图,方法是将授权位替换为1未授权位替换为0,如rwxrwxr-x替换后为111111101,接下来按3位分组转换为八进制数。这样做得111111101对应的八进制数为775。改变text目录的权限值的命令如下:

$ chmod 775 text
$ ls -l
drwxr-x--x 2 pc book 1024 Apr 20 20:35 backup
drwxrwxr-x 2 pc book 1024 apr 20 20:35 text


2-13 进程

程序一旦装入内存,而且和它的运行环境结合在一起,它就成为一个进程。

查看进程:

$ps
PID    TTY    STAT    TIME    COMMAND
325    v01     S          0:00      -bash
359    v01     R          0:00      ps

这表示为该用户运行了两个进程,第一个进程的PID(进程识别号)是325,TTY(虚终端号,V01到V06)、STAT和TIME分别表示进程控制的终端,它的系统状态和它的CPU使用时间。

$ ps -j(显示进程的双亲进程的PID)x(列出没有终端控制的进程)a(列出系统中所有进程)

Linux支持多个虚终端,可以通过按下Alt键再按一个功能键来实现,通常使用F1到F6。

/sbin/agetty                 给你提供登录提示符并等待送入登录名的程序

查看登录时使用的终端:

$ tty
/dev/tty1

强制结束一个进程:

$ kill -9(不能忽视)进程号(PID)

2-14 空间

检查磁盘空间:

$ df
Filesystem   1024-blocks    Used    Available    Capacity    Mounted on
……

检查目录和文件占用空间:

$ du -s(取得总数)

如果没有参数,du将从当前上当开始沿着目录结构向下列出所有目录的容量。

显示内存区信息:

$ free

所有数字都是以k字节为单位。

监视内存使用变化:

$ top

本章注意:

一个符号连接可以指向另一个符号连接,然后指向一文件。但当链中超过6个连接时,就不能访问目标文件

符号连接与硬连接比较:
为了存取文件的内容,需要取得它的索引结点号。记住符号连接的唯一实际缺点是每增加一个符号连接,在寻找目标文件的索引结噗号的过程中就增加一次间接访问,因此减慢了寻找过程。硬连接不存在这个问题,因为每个硬连接直接和索引结点号结合在一起。符号连接还有一个要注意的缺点,当文件不存在时连接却依然存在。