您的位置:首页 > 运维架构 > Linux

linux基础知识整理

2012-02-09 22:12 295 查看
Linux下常用命令

1.Linux进入与退出系统

进入Linux系统:

必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号:

  1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。

  2.普通用户--这个帐号供普通用户使用,可以进行有限的操作。

  一般的Linux使用者均为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工作。如果只需要完成一些由普通帐号就能完成的任务,建议不要使用超级用户帐号,以免无意中破坏系统。影响系统的正常运行。

  用户登录分两步:第一步,输入用户的登录名,系统根据该登录名识别用户;第二步,输入用户的口令,该口令是用户自己设置的一个字符串,对其他用户是保密的,是在登录时系统用来辨别真假用户的关键字。

  当用户正确地输入用户名和口令后,就能合法地进入系统。屏幕显示:

[root@loclhost /root] #

这时就可以对系统做各种操作了。注意超级用户的提示符是“#”,其他用户的提示符是“$”。

修改口令

  出于系统安全考虑,Linux系统中的每一个用户除了有其用户名外,还有其对应的用户口令。因此使用useradd命令增加时,还需使用passwd命令为每一位新增加的用户设置口令;用户以后还可以随时用passwd命令改变自己的口令,Linux允许用户随时修改自己的口令,修改口令的命令是passwd,它将提示用户输入旧口令和新口令,之后还要求用户再次确认新口令,以避免用户无意中按错键。如果用户忘记了口令,可以向系统管理员申请为自己重新设置一个。

root作为管理员用户可以修改任意账号的密码。而普通的用户只可以修改本身的密码。

虚拟控制台

  Linux是一个真正的多用户操作系统,它可以同时接受多个用户登录。Linux还允许一个用户进行多次登录,这是因为Linux和UNIX一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台进行多次登录。虚拟控制台的选择可以通过按下Alt键和一个功能键来实现,通常使用F1-F6例如,用户登录后,按一下Alt-F2键,用户又可以看到"login:"提示符,说明用户看到了第二个虚拟控制台。然后只需按Alt-F1键,就可以回到第一个虚拟控制台。 一个新安装的Linux系统默认允许用户使用Alt-F1到Alt-F6键来访问前六个虚拟控制台。虚拟控制台可使用户同时在多个控制台上工作,真正体现Linux系统多用户的特性。用户可以在某一虚拟控制台上进行的工作尚未结束时,切换到另一虚拟控制台开始另一项工作。

退出系统

  不论是超级用户,还是普通用户,需要退出系统时,在shell提示符下,键入exit命令即可。

2 .cp命令

该命令的功能是将给出的文件或目录拷贝到另一文件或目录中

语法: cp [选项] 源文件或目录 目标文件或目录

说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

该命令的各选项含义如下:

- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。

- d 拷贝时保留链接。

- f 删除已经存在的目标文件而不提示。

- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。

- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。

- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。

- l 不作拷贝,只是链接文件。

  需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。

3.mv命令

用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。

语法:mv [选项] 源文件或目录 目标文件或目录

说明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。

命令中各选项的含义为:

- I 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。

- f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。

如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户用mv命令破坏另一个文件,使用mv命令移动文件时,最好使用i选项。

4.rm命令

用户可以用rm命令删除不需要的文件。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是断开了链接,原文件保持不变。

rm命令的一般形式为:

rm [选项] 文件…

如果没有使用- r选项,则rm不会删除目录。

该命令的各选项含义如下:

- f 忽略不存在的文件,从不给出提示。

- r 指示rm将参数中列出的全部目录和子目录均递归地删除。

- i 进行交互式删除。

使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。为了防止这种情况的发生,可以使用i选项来逐个确认要删除的文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件则不会删除。

5.mkdir命令:功能:创建一个目录

语法:mkdir [选项] dir-name

说明:该命令创建由dir-name命名的目录。要求创建目录的用户在当前目录中(dir-name的父目录中)具有写权限,并且dirname不能是当前目录中已有的目录或文件名称。

命令中各选项的含义为:

- m 对新建目录设置存取权限。也可以用chmod命令设置。

- p 可以是一个路径名称。此时若路径中的某些目录尚不存在, 加上此选项后, 系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。

6.rmdir 命令

功能:删除空目录。

语法:rmdir [选项] dir-name

说明:dir-name表示目录名。该命令从一个目录中删除一个或多个子目录项。需要 特别注意的是,一个目录被删除之前必须是空的。rm - r dir命令可代替 rmdir,但是有危险性。删除某目录时也必须具有对父目录的写权限。

命令中各选项的含义为:

- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。

7.cd 命令

功能:改变工作目录。

语法:cd [directory]

说明:该命令将当前目录改变至directory所指定的目录。若没有指定directory, 则回到用户的主目录。为了改变到指定目录,用户必须拥有对指定目录的执行和读权限。

8.pwd 命令

在Linux层次目录结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录。然而,没有提示符来告知用 户目前处于哪一个目录中。要想知道当前所处的目录,可以使用pwd命令,该命令显示整个路径名。

语法:pwd

说明:此命令显示出当前工作目录的绝对路径。

9.ls 命令

ls是英文单词list的简写,其功能为列出目录的内容。这是用户最常用的一个命令之一,因为用户需要不时地查看某个目录的内容。

语法:ls [选项] [目录或是文件]

对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls将输出其文件名以及所要求的其他信息。默认情况下,输出条目按字母顺序排序。当未给出目录名或是文件名时,就显示当前目录的信息。

命令中各选项的含义如下:

- a 显示指定目录下所有子目录与文件,包括隐藏文件。

- A 显示指定目录下所有子目录与文件,包括隐藏文件。但不列出“.”和 “..”。

- b 对文件名中的不可显示字符用八进制逃逸字符显示。

- c 按文件的修改时间排序。

- C 分成多列显示各项。

- d 如果参数是目录,只显示其名称而不显示其下的各文件。往往与l选项一起使 用,以得到目录的详细信息。

- f 不排序。该选项将使lts选项失效,并使aU选项有效。

- F 在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记 “@”,管道(或FIFO)后面标记“|”,socket文件后面标记“=”。

- i 在输出的第一列显示文件的i节点号。

- l 以长格式来显示文件的详细信息。这个选项最常用。

每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小 建立或最近修改的时间 名字

对于符号链接文件,显示的文件名之后有“—〉”和引用文件路径名。

对于设备文件,其“文件大小”字段显示主、次设备号,而不是文件大小。

目录中的总块数显示在长格式列表的开头,其中包含间接块。

- L 若指定的名称为一个符号链接文件,则显示链接所指向的文件。

- m 输出按字符流格式,文件跨页显示,以逗号分开。

- n 输出格式与l选项相同,只不过在输出中文件属主和属组是用相应的UID号和 GID号来表示,而不是实际的名称。

- o 与l选项相同,只是不显示拥有者信息。

- p 在目录后面加一个“/”。

- q 将文件名中的不可显示字符用“?”代替。

- r 按字母逆序或最早优先的顺序显示输出结果。

- R 递归式地显示指定目录的各个子目录中的文件。

- s 给出每个目录项所用的块数,包括间接块。

- t 显示时按修改时间(最近优先)而不是按名字排序。若文件修改时间相同,则 按字典顺序。修改时间取决于是否使用了c或u选顶。缺省的时间标记是最后一次修改时间。

- u 显示时按文件上次存取的时间(最近优先)而不是按名字排序。即将-t的时间标记修改为最后一次访问的时间。

- x 按行显示出各排序项的信息。

10.sort命令

sort命令的功能是对文件中的各行进行排序。sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际上,sort命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。

Sort命令将逐行对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符,如果还相同,将继续进行比较。

语法:

sort [选项] 文件

说明:sort命令对指定文件中所有的行进行排序,并将结果显示在标准输出(屏幕)上。如不指定输入文件或使用“- ”,则表示排序内容来自标准输入。

sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。排序关键字定义了用来排序的最小的字符序列。缺省情况下以整行为关键字按ASCII字符顺序进行排序。

改变缺省设置的选项主要有:

- m 若给定文件已排好序,合并文件。

- c 检查给定文件是否已排好序,如果它们没有都排好序,则打印一个出错信息,并以状态值1退出。

- u 对排序后认为相同的行只留其中一行。

- o 输出文件 将排序输出写到输出文件中而不是标准输出,如果输出文件是输入文件之一,sort先将该文件的内容写入一个临时文件,然后再排序和写输出结果。

改变缺省排序规则的选项主要有:

- d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。

- f 将小写字母与大写字母同等对待。

- I 忽略非打印字符。

- M 作为月份比较:“JAN”<“FEB”

- r 按逆序输出排序结果。

- b 在每行中寻找排序关键字时忽略前导的空白(空格和制表符)。

- t separator 指定字符separator作为字段分隔符。

11.uniq命令

文件经过处理后在它的输出文件中可能会出现重复的行。例如,使用cat命令将两个文件合并后,再使用sort命令进行排序,就可能出现重复行。这时可以使用uniq命令将这些重复行从输出文件中删除,只留下每条记录的唯一样本。

语法:

uniq [选项] 文件

说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如果输入文件用“- ”表示,则从标准输入读取。

该命令各选项含义如下:

- c 显示输出中,在每行行首加上本行在文件中出现的次数。它可取代- u和- d选项。

- d 只显示重复行。

- u 只显示文件中不重复的各行。

- n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。

12.su命令

su - /su:切换到超级用户

su username:切换到用户名username的用户

13.wall命令

这个命令的功能是对全部已登录的用户发送信息,用户可以先把要发送的信息写好存入一个文件中,然后输入:

# wall < 文件名

这样就能对所有的用户发送信息了。

在上面的例子中符号“<”表示输入重定向

# wall ‘Thank you!’

Broadcast message from root (tty1) Fri Nov 26 14:15:07 1999…

Thank you!

#执行以上命令后,用户的屏幕上显示出.Thank you!”信息后,并不出现系统提示符$(#),再次按回车键后,屏幕出现系统提示符。

14.write命令

write命令的功能是向系统中某一个用户发送信息。 该命令的一般格式为:

write 用户帐号 [终端名称]

例如: $ write Guest hello

此时系统进入发送信息状态,用户可以输入要发送的信息,输入完毕,希望退出发送状态时,按组合键< Ctrl+c>即可。

15.mesg指令

mesg命令设定是否允许其他用户用write命令给自己发送信息。如果允许别人给自己发送信息,输入命令

# mesg y

否则,输入:

# mesg n

对于超级用户,系统的默认值为 n;而对于一般用户系统的默认值为y。 如果mesg后不带任何参数,则显示当前的状态是y还是n.。

16 . sync命令

sync命令是在关闭Linux系统时使用的。 用户需要注意的是,不能用简单的关闭电源的方法关闭系统,因为Linux象其他Unix系统一样,在内存中缓存了许多数据,在关闭系统时需要进行内存数据与硬盘数据的同步校验,保证硬盘数据在关闭系统时是最新的,只有这样才能确保数据不会丢失。一般正常的关闭系统的过程是自动进行这些工作的,在系统运行过程中也会定时做这些工作,不需要用户干预。 sync命令是强制把内存中的数据写回硬盘,以免数据的丢失。用户可以在需要的时候使用此命令。该命令的一般格式为:

  sync

17.shutdown命令

shutdown 命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。精确时间的格式是hh:mm,表示小时和分钟;时间段由“+”和分钟数表示。系统执行该命令后,会自动进行数据同步的工作。

该命令的一般格式为: shutdown [选项] [时间] [警告信息] 命令中各选项的含义为:

- k 并不真正关机,而只是发出警告信息给所有用户。

- r 关机后立即重新启动。

- h 关机后不重新启动。

- f 快速关机,重启动时跳过fsck。

- n 快速关机,不经过init程序。

- c 取消一个已经运行的shutdown。

需要特别说明的是,该命令只能由超级用户使用。

18 . free命令

free命令的功能是查看当前系统内存的使用情况,它显示系统中剩余及已用的物理内存和交换内存,以及共享内存和被核心使用的缓冲区。

该命令的一般格式为: free [-b | -k | -m] 命令中各选项的含义如下:

-b 以字节为单位显示。

-k 以K字节为单位显示。

-m 以兆字节为单位显示。

19.uptime命令

uptime命令显示系统已经运行了多长时间,它依次显示下列信息:现在时间、系统已经运行了多长时间、目前有多少登录用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。

该命令的一般格式为: uptime

20.Linux磁盘管理

df命令

功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法:df [选项]

说明:df命令可显示所有文件系统对i节点和磁盘块的使用情况。

该命令各个选项的含义如下:

-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。

-k 以k字节为单位显示。

-i 显示i节点信息,而不是磁盘块。

-t 显示各指定类型的文件系统的磁盘空间使用情况。

-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。

-T 显示文件系统类型。

21.du命令

du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况。

功能:统计目录(或文件)所占磁盘空间的大小。

语法:du [选项] [Names…]

说明:该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出Names,则对当前目录进行统计。

该命令的各个选项含义如下:

-s 对每个Names参数只给出占用的数据块总数。

-a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。

-b 以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位)。

-k 以1024字节为单位列出磁盘空间使用情况。

-c 最后再加上一个总计(系统缺省设置)。

-l 计算所有的文件大小,对硬链接文件,则计算多次。

-x 跳过在不同文件系统上的目录不予统计。

22.dd命令

功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。先用dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上。需要注意的是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。

语法:dd [选项]

if =输入文件(或设备名称)。

of =输出文件(或设备名称)

bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。

count=blocks 只拷贝输入的blocks块。

23 . fdformat 命令

软盘是用户常用的存储介质之一。软盘在使用之前必须先作格式化操作,然后可以用tar、dd、cpio等命令存储数据,也可以在软盘上建立可安装的文件系统。

功能:低级格式化软盘

语法:format [-n] device

说明:该命令的作用是对软盘进行格式化。

-n 软盘格式化后不作检验。

device 指定要进行格式化的设备,通常是下述设备之一:

/dev/fd0d360 /dev/fd0h1200 /dev/fd0D360 /dev/fd0H360 /dev/fd0D720 /dev/fd0H720 /dev/fd0h360

/dev/fd0h720 /dev/fd0H1440

24 echo命令

echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。

该命令的一般格式为: echo [ -n ] 字符串

其中选项n表示输出文字后不换行;字符串可以加引号,也可以不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。

25. cal命令

cal命令的功能是显示某年某月的日历。

该命令的一般格式为: cal [选项] [月 [年]] 命令中各选项的含义为:

- j 显示出给定月中的每一天是一年中的第几天(从1月1日算起)。

- y 显示出整年的日历。

26 . date命令

date命令的功能是显示和设置系统日期和时间。

该命令的一般格式为: date [选项] 显示时间格式(以+开头,后面接格式)

date 设置时间格式

命令中各选项的含义分别为:

-d datestr, --date datestr 显示由datestr描述的日期

-s datestr, --set datestr 设置datestr 描述的日期

-u, --universal 显示或设置通用时间

时间域

% H 小时(00..23)

% p 显示出AM或PM

% X 显示时间的格式(%H:%M:%S)

% c 日期和时间( Mon Nov 8 14:12:46 CST 1999)

% D 日期(mm/dd/yy)

注意:只有超级用户才有权限使用date命令设置时间,一般用户只能使用date命令显示时间。

27.clear命令

clear命令的功能是清除屏幕上的信息,它类似于DOS中的 cls命令。清屏后,提示符移动到屏幕左上角。

27. cd directory 进入指定的目录

cd .. 进入上一级目录

cd /directory 进入目录

cd ~ 进入用户自己的目录

28. ln [-s] source linkname 为一个文件建立连结

29 more/less filename 浏览/查看一个文本文件的内容

30 find . -name "file" 从当前目录开始查找指定的文件

31 adduser 创建新用户

32 alias 设置别名或替代名

33 bg fg 使挂起的进程继续运行

34 ps ax 查询当前进程

35 chown chgrp 改变文件的拥有者

36 chmod 改变文件属性

37 halt 关闭系统

38 man 显示手册页

39 grep 查找字符串

40 dd 复制磁盘或文件系统

41 kill 杀掉一个进程

42 killall 杀掉进程

43、文本数据转到数据库中

文本数据应符合的格式:字段数据之间用tab键隔开,null值用来代替。例:

(1) name duty 2006-11-23

数据传入命令 load data local infile "文件名" into table 表名;

(2)、导出数据库和表

mysqldump --opt news > news.sql(将数据库news中的所有表备份到news.sql文件,news.sql是一个文本文件,文件名任取。)

mysqldump --opt news author article > author.article.sql(将数据库news中的author表和article表备份到author.article.sql文件, author.article.sql是一个文本文件,文件名任取。)

mysqldump --databases db1 db2 > news.sql(将数据库dbl和db2备份到news.sql文件,news.sql是一个文本文件,文件名任取。)

mysqldump -h host -u user -p pass --databases dbname > file.dump

就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中

mysqldump --all-databases > all-databases.sql(将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。)

(3)、导入数据

mysql < all-databases.sql(导入数据库)

mysql -u root -p fukai –force < dmc010003_db.myisam.sql(强行导入)

mysql>source news.sql;(在mysql命令下执行,可导入表)

44 看IP:ifconfig(root用户); /sbin/ifconfig(普通用户)

45 看进程:top

free命令可以查看内存使用率

top -n1命令中有CPU使用率信息

#ps -aux | grep smb

#ps -aux 显示终端上的所有进程,包括其他用户的进程。

#ps -x 显示没有控制终端的进程。

#ps -e 显示所有进程。

#ps -r 只显示正在运行的进程。

46 强制杀死进程:kill -9 进程id

47 查看网络共享文件: smbclient -L //192.168.0.254

48 Linux访问windows共享文件:

mount -t cifs -o username=administrator,passwd='*******' //10.144.99.208/video /mnt/hgfs

(video为windows上共享的文件夹,/mnt/hgfs为Linux系统上的文件夹命令成功后在此访问windows共享)

49 jar文件安装 :java -jar server923_generic.jar

50 cpio文件的安装:cpio -idmv<file_name.cpio

51 检查安装包:rpm -qa|grep name

52 SSH,telnet终端中文显示乱码解决办法

vi /etc/sysconfig/i18n

将内容改为

LANG="zh_CN.GB18030"

LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"

SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"

SYSFONT="lat0-sun16

53 查看交换分区:lsps -a 查看交换分区大小

lsps -s 查看交换分区应用情况

54 #cat /etc/redhat-release 查看系统版本信息

55 #cat /proc/version 查看系统内核版本等信息

56 #uname -a 查看系统内核等信息

57 #cat /proc/cpuinfo 查看CPU信息

58 #cat /proc/meminfo 查看内存信息

59 #cat /proc/swaps 查看交换空间信息

60 #getconf LONG_BIT 查看CPU是32位还是64位

61 #dmidecode|more 如何查看BIOS信息等。

62 #grep MemTotal /proc/meminfo 查看物理内存信息

63 #grep SwapTotal /proc/meminfo 查看交换空间的大小

64 #cat /etc/passwd 查看账户信息

65 #cat /etc/shadow 查看密码信息

66 #cat /etc/group 查看都有哪些组,每个组包含哪些用户,或#vigr

67 #groups username 查看用户属于哪一个组

68 修改启动界面为文本模式(命令模式)

3为文本模式,5为图形模式。

#vi /etc/inittab

修改id:5:initdefault:为id:3:initdefault:

69 配置网卡相关信息

#cd /etc/sysconfig/network-scripts

#vi ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

BROADCAST=192.168.0.255

HWADDR=00:17:31:7F:6B:A7

IPADDR=192.168.0.68

NETMASK=255.255.255.0

NETWORK=192.168.0.0

ONBOOT=yes

TYPE=Ethernet

:wq退出。

#service network restart 重新启动网络

70 更改主机名

#vi /etc/sysconfig/network

将hostname改名,然后重启即可。

71 考虑到安全问题,只允许普通账户直接远程登录,不允许root直接远程登录

配置sshd

启动sshd服务:/etc/init.d/sshd start

编辑/etc/ssh/sshd_config文件,找到语句PermitRootLogin yes,将yes修改为no。

重新启动sshd服务:/etc/init.d/sshd restart(此时将yes改为no之后不允许root用户远程登录)

72 关闭不需要的系统服务

为了安装的系统执行效能更佳,建议关闭一些没有必要的系统服务,例如iptables

#chkconfig iptables off

73 修改DNS

标准格式:nameserver DNS地址

#vi /etc/resolv.conf

nameserver 192.168.0.36

nameserver 202.106.0.20

:wq #保存退出。

#service network restart #重新启动网络

74 查看系统磁盘的分区情况以及文件系统被挂载的位置

#df –h

Filesystem Size Used Avail Use% Mounted on

/dev/hda3 36G 4.1G 30G 12% /

/dev/hda1 190M 8.4M 172M 5% /boot

none 248M 0 248M 0% /dev/shm

#df -h /home 查看home所在分区的磁盘使用情况

75 查看目录及该目录下文件的大小,或查看单个文件的大小

#du -sh 目录或文件

[root@eric68 /]# du -sh /tmp

12K /tmp/.font-unix

8.0K /tmp/.ICE-unix

76 查看系统里有多少个账户?

# wc /etc/passwd -l

77 .启动和停止apache服务

#/etc/init.d/httpd start //启动httpd服务

#/etc/init.d/httpd stop //关闭httpd服务

#/etc/init.d/httpd restart //重启httpd服务

Apache的主配置文件是httpd.conf默认路径:/etc/httpd/conf/httpd.conf

78、启动和停止Tomcat服务

# /etc/rc.d/init.d/tomcat5 start 启动Tomcat服务 。。。stop 停止Tomcat服务 。。。restart 重启Tomcat服务

79、Iptables防火墙

若开启了防火墙,如何开放TCP协议的80端口:iptables -I INPUT -p tcp --dport 80 -j ACCEPT

80 关掉SELINUX:

SELINUX=Disabled #这样就把SELINUX服务器关掉了,请重新启动系统;

81、禁止、响应ping

# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 禁止ping,忽略ICMP包。

# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all 响应ping

以上两个设置在重启后失效,若添加到/etc/rc.local里,重启后仍然有效。

82、history

查看历史记录命令:#history

注释:查看以前使用过的命令,默认最大历史记录条数为1000(red hat 中),可以在 "/etc/profile"里面修改"HISTSIZE" 参数来修改默认值

清除历史记录命令:#history –c

立即更新history文件命令:#history -w

History记录原理:当一个用户用bash登录系统,他所输入的命令会放到一个内存catch中,在他登出时会存入~/.bash_history中,用histroy -c 命令可以清空这一命令缓存,也就是说,这一用户不想让人知道他做了些什么的话,只要在退出前执行history -c就行了。

查看某个用户的history记录:

#history –w

#history或#more .bash_history

如何自动备份某个用户的history记录?

1.建立ericyi用户的history每日备份脚本

#cd tmp

#mkdir ericyi_history_backup

#chown root ericyi_history_backup/

#vi ericyihistorybackupdaily.sh

-----------------------------------------------------------------

#!/bin/bash

day=`date +%Y-%m-%d`

basedir="/tmp/ericyi_history_backup "

cd /home/ericyi

history -w

cp .bash_history "$basedir"/history."$day" > /dev/null

83、linux下定期备份数据

# vi /etc/crontab //任务计划

#加入下面内容

10 1 * * * root /etc/root/backupdaily.sh

注释:每天1点10分运行脚本

:wq保存退出。

84(1)显示用户命令:whoami

(2)查看当前操作系统内核版本的命令:uname –r

(3)显示登录的主机的名字命令:hostname

(4)查看日历的命令:cal

(5)查看系统时间命令:date

(6)创建文件命令:touch

(7)查看Linux 默认shell命令:echo $SHELL 观察并记录屏幕显示信息

(8)查看当前Linux操作系统都有哪些shell:cat /etc/shells

(9)添加新用户的命令:useradd username或adduser username其中的username是你所添加新用户的名称

(10)帮助命令:man 命令(可以是上面用过的命令) 如:man ls

(11)logout 一看就知道了,这是退出系统的命令,我就不多说了。要强调的一点是,linux是多用户多进程的操作系统,因此如果你不用了,退出系统就可以了,关闭系统你就不用操心了,那是系统管理员的事情。但有一点切记,即便你是单机使用linux,logout以后也不能直接关机,因为这不是关机的命令。

85 chgrp命令

   功能:改变文件或目录所属的组。

   语法:chgrp [选项] group filename?

   该命令改变指定指定文件所属的用户组。其中group可以是用户组ID,也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。

   该命令的各选项含义为:

   - R 递归式地改变指定目录及其下的所有子目录和文件的属组。

   例1:$ chgrp - R book /opt/local /book

   改变/opt/local /book/及其子目录下的所有文件的属组为book。

86 chmod 命令

chmod命令是非常重要的,用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。

该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

1. 文字设定法

chmod [who] [+ | - | =] [mode] 文件名?

   命令中各选项的含义为:

   操作对象who可是下述字母中的任一个或者它们的组合:

   u 表示“用户(user)”,即文件或目录的所有者。

   g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。

   o 表示“其他(others)用户”。

   a 表示“所有(all)用户”。它是系统默认值。

   操作符号可以是:

   + 添加某个权限。

   - 取消某个权限。

   = 赋予给定权限并取消其他所有权限(如果有的话)。

   设置mode所表示的权限可用下述字母的任意组合:

   r 可读。

   w 可写。

   x 可执行。

   X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。

   s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。

   t 保存程序的文本到交换设备上。

   u 与文件属主拥有一样的权限。

   g 与和文件属主同组的用户拥有一样的权限。

   o 与其他用户拥有一样的权限。

   文件名:以空格分开的要改变权限的文件列表,支持通配符。

   在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example

   使同组和其他用户对文件example 有读权限。

   2. 数字设定法

   我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。

   例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。

   数字设定法的一般形式为:

   chmod [mode] 文件名?

   例子:

   (1)文字设定法:

   例1:$ chmod a+x sort

   即设定文件sort的属性为:

   文件属主(u) 增加执行权限

   与文件属主同组用户(g) 增加执行权限

   其他用户(o) 增加执行权限

   例2:$ chmod ug+w,o-x text

   即设定文件text的属性为:

   文件属主(u) 增加写权限

   与文件属主同组用户(g) 增加写权限

   其他用户(o) 删除执行权限

   例3:$ chmod u+s a.out

   假设执行chmod后a.out的权限为(可以用ls – l a.out命令来看):

   –rws--x--x 1 inin users 7192 Nov 4 14:22 a.out

   并且这个执行文件要用到一个文本文件shiyan1.c,其文件存取权限为“–rw-------”,即该文件只有其属主具有读写权限。

   当其他用户执行a.out这个程序时,他的身份因这个程序暂时变成inin(由于chmod命令中使用了s选项),所以他就能够读取shiyan1.c这个文件(虽然这个文件被设定为其他人不具备任何权限),这就是s的功能。

   因此,在整个系统中特别是root本身,最好不要过多的设置这种类型的文件(除非必要)这样可以保障系统的安全,避免因为某些程序的bug而使系统遭到入侵。

   例4:$ chmod a–x mm.txt

   $ chmod –x mm.txt

   $ chmod ugo–x mm.txt

   以上这三个命令都是将文件mm.txt的执行权限删除,它设定的对象为所有使用者。

   (2)数字设定法:

   例1: $ chmod 644 mm.txt

   $ ls –l

   即设定文件mm.txt的属性为:

   -rw-r--r-- 1 inin users 1155 Nov 5 11:22 mm.txt

   文件属主(u)inin 拥有读、写权限

   与文件属主同组人用户(g) 拥有读权限

   其他人(o) 拥有读权限

   例2: $ chmod 750 wch.txt

   $ ls –l

   -rwxr-x--- 1 inin users 44137 Nov 12 9:22 wchtxt

   即设定wchtxt这个文件的属性为:

   文件主本人(u)inin 可读/可写/可执行权

   与文件主同组人(g) 可读/可执行权

   其他人(o) 没有任何权限

用chmod设置uid

$chmod 4766 file1

-rwsrw-rw-1 inin users 44137 Nov 12 9:22 wchtxt

文件主加上S位

用chmod设置gid

$chmod 2766 file1

rwxrwsrw-1 inin users 44137 Nov 12 9:22 wchtxt

用chmod设置粘滞位(stick bit)

$chmod 1766 file1

rwxrw-rwT1 inin users 44137 Nov 12 9:22 wchtxt

87 chown 命令

   功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。

   语法:chown [选项] 用户或组 文件

   说明:chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。

   该命令的各选项含义如下:

   - R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。

   - v 显示chown命令所做的工作。

   例1:把文件shiyan.c的所有者改为wang。

   $ chown wang shiyan.c

   例2:把目录/his及其下的所有文件和子目录的属主改成wang,属组改成users。

   $ chown - R wang.users /his

88 cut命令

cut一般格式为:

cut [options] file1 file2

下面介绍其可用选项:

-c list 指定剪切字符数。

-f field 指定剪切域数。

-d 指定与空格和tab键不同的域分隔符。

- c用来指定剪切范围,如下所示:

- c 1,5-7 剪切第1个字符,然后是第5到第7个字符。

-c1-50 剪切前5 0个字符。

-f 格式与- c相同。

-f 1,10-12 剪切第1域,第10域到第12域。

使用域分隔符

文件中使用冒号“:”为域分隔符,故可用- d选项指定冒号,如- d:。如果有意观察第3域,

可以使用- f 3。要抽取ID域。可使用命令如下:cut –d: -f3 pers

剪切指定域

cut命令中剪切各域需用逗号分隔,如剪切域1和3,即名字和ID号,可以使用:cut –d:f1,3 pers

要从文件/etc/passwd中剪切注册名及缺省根目录,需抽取域1和域6:

cut –d:f1,6 /etc/passwd

88 Diff命令

该命令的功能为逐行比较两个文本文件,列出其不同之处。它比comm命令完成更复杂的检查。它对给出的文件进行系统的检查,并显示出两个文件中所有不同的行,不要求事先对文件进行排序。

  语法:diff [选项] file1 file2

  说明:该命令告诉用户,为了使两个文件file1和file2一致,需要修改它们的哪些行。如果用“- ”表示file1或fiie2,则表示标准输入。如果file1或file2是目录,那么diff将使用该目录中的同名文件进行比较。例如:把目录/usr/xu 中名为mine的文件与当前目录中的mine文件进行比较: diff /usr/xu mine

以“<”打头的行属于第一个文件,以“>”打头的行属于第二个文件。diff能区别块和字符设备文件以及FIFO(管道文件),不会把它们与普通文件进行比较。

   如果file1和file2都是目录,则diff会产生很多信息。如果一个目录中只有一个文件,则产生一条信息,指出该目录路径名和其中的文件名。

  diff各选项的含义如下:

   - b 忽略行尾的空格,而字符串中的一个或多个空格符都视为相等。

   - c 采用上下文输出格式(提供三行上下文)。

   - C n 采用上下文输出格式(提供n行上下文)。

   - e 产生一个合法的ed脚本作为输出。

- r 当file1和file2是目录时,递归作用到各文件和目录上。

  文件m1.c和m2.c的比较:

  $ diff m1.c m2.c

89 find命令

功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。

语法:find 起始目录 寻找条件 操作

说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。

该命令提供的寻找条件可以是一个用逻辑运算符not、and、or组成的复合条件。逻辑运算符and、or、not的含义为:

(1)and:逻辑与,在命令中用“-a”表示,是系统缺省的选项,表示只有当所给的条件都满足时,寻找条件才算满足。例如:

$ find –name ’tmp’ –xtype c -user ’inin’

该命令寻找三个给定条件都满足的所有文件。

(2)or:逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就算满足。例如:

$ find –name ’tmp’ –o –name ’mina*’

该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。

(3)not:逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件。例如:

$ find ! –name ’tmp’

该命令查询文件名不是’tmp’的所有文件。

需要说明的是:当使用很多的逻辑选项时,可以用括号把这些选项括起来。为了避免Shell本身对括号引起误解,在话号前需要加转义字符“\”来去除括号的意义。

例:$ find \(–name ’tmp’ –xtype c -user ’inin’ \)

 

寻找条件有以下选项:

首先,下列各个选项中的n值可以有三种输入方式,假设n为20,则:

+20 表示20以后(21,22,23等)

-20 表示20以前(19,18,17等)

20 表示正好是20

1. 以名称和文件属性查找。

- name ’字串’ 查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。

- lname ’字串’ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符*、?、[ ]。

-gid n 查找属于ID号为n的用户组的所有文件。

-uid n 查找属于ID号为n的用户的所有文件。

-group ’字串’ 查找属于用户组名为所给字串的所有的文件。

-user ’字串’ 查找属于用户名为所给字串的所有的文件。

-empty 查找大小为0的目录或文件。

-path ’字串’ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。

-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711,644。

-size n[bckw] 查找指定文件大小的文件,n后面的字符表示单位,缺省为b,代表512字节的块。

-type x 查找类型为x的文件,x为下列字符之一:

b 块设备文件 c 字符设备文件

d 目录文件 p 命名管道(FIFO)

f 普通文件 l 符号链接文件(symbolic links)

s socket文件 -xtype x 与-type基本相同,但只查找符号链接文件。

2. 以时间为条件查找

- amin n 查找n分钟以前被访问过的所有文件。

- atime n 查找n天以前被访问过的所有文件。

- cmin n 查找n分钟以前文件状态被修改过的所有文件。

- ctime n 查找n天以前文件状态被修改过的所有文件。

- mmin n 查找n分钟以前文件内容被修改过的所有文件。

- mtime n 查找n天以前文件内容被修改过的所有文件。

3. 可执行的操作

- exec 命令名称 {} 对符合条件的文件执行所给的Linux 命令,而不询问用户是否需要执行该命令。{}表示命令的参数即为所找到的文件;命令的末尾必须以“ \;”结束。

- ok 命令名称 { } 对符合条件的文件执行所给的Linux 命令,与exec不同的是,它会询问用户是否需要执行该命令。

- ls 详细列出所找到的所有文件。

- fprintf 文件名 将找到的文件名写入指定文件。

- print 在标准输出设备上显示查找出的文件名。

- printf 格式 格式的写法请参考有关C语言的书。

例1:查找当前目录中所有以main开头的文件,并显示这些文件的内容。$ find . - name ‘main*’ - exec more {} \;

例2:删除当前目录下所有一周之内没有被访问过的a .out或*.o文件。

$ find . \(- name a.out - o - name ‘*.o’\)\

> - atime +7 - exec rm {} \; 

说明如下:

命令中的“.”表示当前目录,此时find将从当前目录开始,逐个在其子目录中查找满足后面指定条件的文件。\(和\)表示括号(),其中的“\”称为转义符。之所以这样写是由于对Shell而言,(和)另有不同的含义,而不是这里的用于组合条件的用途。“- name a.out”是指要查找名为a.out的文件;“- name ‘*.o’”是指要查找所有名字以 .o结尾的文件。这两个- name之间的- o表示逻辑或(or),即查找名字为a.out或名字以 .o结尾的文件,find在当前目录及其子目录下找到这佯的文件之后,再进行判断,看其最后访问时间是否在7天以前(条件-atime +7),若是,则对该文件执行命令rm(- exec rm{ }\;)。其中{ }代表当前查到的符合条件的文件名,\;则是语法所要求的。上述命令中第一行的最后一个\是续行符。当命令太长而在一行写不下时,可输入一个\,之后系统将显示一个>,指示用户继续输入命令。

90 groupadd命令

对用户分组进行操作的命令类似于对用户进行操作的命令;但是,它们并不作用于单个的用户,而是作用于/ e t c / g r o u p文件中列出的用户分组。请注意改变用户分组的属性并不会自动改变用户的属性。举例来说,如果你删除了一个U I D为1 0 0的用户分组,而某个用户缺省的分组正好是1 0 0,那么这个缺省的用户分组数据项不会改变,反映不出这个用户分组已经被删除的事实。

g r o u p a d d命令把用户分组添加到/ e t c / g r o u p文件中。它的命令行操作格式如下所示:

groupadd [ -g gid ] [ -r ] [ -f ] group

-r 在缺省的情况下,redhat会自动搜索一个大于499的gid值,-r参数告诉groupadd命令正在添加的用户组是一个系统分组,需要使用第一个小于499的可用数值。

[ root@ford /root ] # groupadd -g 800 research

91 groupdel命令

比u s e r d e l命令还直接, g r o u p d e l命令删除在/ e t c / g r o u p文件中定义的用户分组。这个命令唯一的使用方法是:

groupdel group

其中的group是准备删除的用户分组的名称。举例来说,如果打算删除r e s e a r c h分组,需要发出下面的命令:

[ root@ford /root ] # groupdel research

92 groupmod命令

g r o u p m o d命令修改某个现有用户分组的属性。这个命令的参数如下所示:

groupmod -g gid -n group-name group

其中的- g参数允许改变用户分组的G I D值,- n参数允许你给用户分组起一个新名字,当然还需要把现有用户分组的名称作为最后一个参数。

举例来说,如果用户分组s u p e r m a n打算把它的名称修改为b a t m a n,需要使用下面的命令

来进行设置:

[ root@ford /root ] # groupmod -n batman superman

93 ln命令

   该命令在文件之间创建链接。这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题。

   如果链接指向目录,用户就可以利用该链接直接进入被链接的目录而不用打一大堆的路径名。而且,即使我们删除这个链接,也不会破坏原来的目录。

   语法:ln [选项] 目标 [链接名]

   ln [选项] 目标 目录

   链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。

   在硬链接的情况下,参数中的“目标”被链接至[链接名]。如果[链接名]是一个目录名,系统将在该目录之下建立一个或多个与“目标”同名的链接文件,链接文件和被链接文件的内容完全相同。如果[链接名]为一个文件,用户将被告知该文件已存在且不进行链接。如果指定了多个“目标”参数,那么最后一个参数必须为目录。

   如果给ln命令加上- s选项,则建立符号链接。如果[链接名]已经存在但不是目录,将不做链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与“目标”不在同一个文件系统中。如果[链接名]是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指向原“目标”的符号链接文件。

-f : 链结时先将与 dist 同档名的档案删除

-d : 允许系统管理者硬链结自己的目录

-i : 在删除与 dist 同档名的档案时先进行询问

-n : 在进行软连结时,将 dist 视为一般的档案

-s : 进行软链(symboliclink)

-v : 在连结之前显示其档名

-b : 将在链结时会被覆写或删除的档案进行备份

94 runlevel命令

查看当前的运行级别该命令不能直接使用必需在/sbin下使用

#/sbin/runlevel或 # cd /sbin #runlevel

95 touch命令

参数:

a 改变档案的读取时间记录。

m 改变档案的修改时间记录。

c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。

f 不使用,是为了与其他 unix 系统的相容性而保留。

r 使用参考档的时间记录,与 --file 的效果一样。

d 设定时间与日期,可以使用各种不同的格式。

t 设定档案的时间记录,格式与 date 指令相同。

--no-create 不会建立新档案。

--help 列出指令格式。

--version 列出版本讯息。

范例:

最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会

建立一个新的档案。

touch file

touch file1 file2

将 file 的时间记录改为 5 月 6 日 18 点 3 分,公元两千年。时间的格式可以

参考 date 指令,至少需输入 MMDDHHmm ,就是月日时与分。

touch -c -t 05061803 file

touch -c -t 050618032000 file

将 file 的时间记录改变成与 referencefile 一样。

touch -r referencefile file

将 file 的时间记录改成 5 月 6 日 18 点 3 分,公元两千年。时间可以使用 am, pm 或是 24 小时的格式,日期可以使用其他格式如 6 May 2000 。

touch -d "6:03pm" file

touch -d "05/06/2000" file

touch -d "6:03pm 05/06/2000" file

95 umask命令

umask设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入. profile文件,就可控制该用户后续所建文件的存取许可。umask命令与chmod命令的作用正好相反,它告诉系统在创建文件时不给予什么存取许可。umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说, umask中各个数字最大可以到7。

该命令的一般形式为:

umask nnn

其中n n n为umask置000-777。

让我们来看一些例子。

计算出你的umask值:

可以有几种计算umask值的方法,通过设置umask值,可以为新创建的文件和目录设置缺省权限。表列出了与权限位相对应的umask值。

在计算umask值时,可以针对各类用户分别在这张表中按照所需要的文件/目录创建缺省

权限查找对应的umask值。

例如,umask值002 所对应的文件和目录创建缺省权限分别为6 6 4和7 7 5。

如果想要改变umask值,只要使用umask命令设置一个新的值即可:

umask 002

确认一下系统是否已经接受了新的umask值:umask

96 userdel命令

u s e r d e l命令实现的操作正好与u s e r a d d命令相反—它删除现有的用户。这个命令只有一个可选参数和一个必要参数:

userdel [ -r ] username

在执行这个命令的时候,如果只指定了用户的登录名—比如说userdel sshah,那么在

/etc/passwd文件和/etc/shadow文件中的有关数据项以及/etc/group文件中的关联数据项都将被自动删除。如果使用了可选参数—比如说userdel -r sshah,那么在其登录子目录中归这个用户所有的全部文件也将被删除。

97 useradd命令

正如其名称的含义, useradd命令允许你一次把一个用户添加到系统中去。全部参数都必须在命令行上定义好。下面是这个工具程序的使用方法:

如下所示的一个最简单的命令

[ root@ford /root ] # useradd sshah

来添加一个登录名为s s h a h的用户。任何没有定义的参数都使用了缺省值(要想查看这些参数的缺省值,请执行useradd -D命令;马上我们就将讨论到如何改变这些缺省值)。表5 - 1列出了这个命令的参数和对它们的说明。

举例来说,如果打算建立这样一个用户:他的姓名是H. D. Core ,同时属于a d m i n和support用户分组(缺省的用户分组是a d m i n)、喜欢使用Turbo C Shell并希望使用登录名“hdc”,

请使用下面这样的命令:

[ root@fordd /root ] # useradd -c " H. D. core " -g admin -G sopport -s

用户设置值 参数 数据格式

GROUP -g 来自/etc/group文件的分组编码

HOME -d 该账户上一级用户目录的完整路径

INACTIVE -f 天数

EXPIRE -e 天数

SHELL -s 到shell的完整路径

SKEL -k 到框架文件的完整路径

举例来说,如果想实现下面几个设置:

• 设置口令字失效期为9 0天。

• 如果失效口令字在3 0天内没有修改,就冻结该帐户。

• 把缺省的s h e l l改为/ b i n / k s h。

就需要使用“adduser -e90 -f30 -s/bin/ksh”命令。

98 usermod命令

usermod命令允许你修改系统中现有的某个用户,它的工作原理与useradd命令差不多。完整的命令行使用方法如下所示:

使用这个命令的时候指定的每一个参数都将改变这个用户的某个属性。这个命令的参数

除了- l之外,其余的都与useradd命令中对应的参数作用相同。

- l参数允许你改变用户的登录名,它和- u参数在使用中必须引起足够的重视。在修改用户的登录名或者U I D的时候,必须确认该用户当时没有登录上机或者运行任何进程。如果在用户已经登录上机或者正在运行进程的时候修改这些信息会引起不可预见的结果。

下面是一个使用u s e r m o d命令对用户h d c进行修改的例子,我们打算把她的姓名域由“ H.D.H”修改为“ H.D.Core”。

[ root@ford/root ] # usermod -c " H. D. Core " hdc

99 wc命令

wc命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。

语法:wc [选项] 文件…

说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。

  该命令各选项含义如下:

  - c 统计字节数。

   - l 统计行数。

   - w 统计字数。

这些选项可以组合使用。输出列的顺序和数目不受选项的顺序和数目的影响。总是按下述顺序显示并且每项最多一列。

  行数、字数、字节数、文件名

  如果命令行中没有文件名,则输出中不出现文件名。

  例如:

  $ wc - lcw file1 file2

  4 33 file1

  7 52 file2

  11 11 85 total

  省略任选项-lcw,wc命令的执行结果与上面一样。

100 Who命令

使用方式 : who - [husfV] [user]

说明 : 显示系统中有那些使用者正在上面,显示的资料包含了使用者 ID,使用的终端机,从那边连上来的,上线时间,呆滞时间,CPU 使用量,动作等等。

-h : 不要显示标题列

-u : 不要显示使用者的动作/工作

-s : 使用简短的格式来显示

-f : 不要显示使用者的上线位置

-V : 显示程式版本

101 Tail和head命令

假定您想只处理文件的一部分,譬如头几行或后几行,那您该怎么做呢?请使用 head(它将头 10 行发送至标准输出)或 tail(它将后 10 行发送至标准输出)。

您可以通过使用 -n 选项改变这些命令发送至其标准输出的行数(当然,输出结果将随 XF86Config 文件的内容而不同):

清单 1. 将 XF86Config 中选定行数的内容发送至标准输出

$ head -n 4 /etc/X11/XF86Config 输出前四行。默认的情况下输出的是前十行

$ tail -n 4 /etc/X11/XF86Config 输出后四行。默认的情况下输出的是后十行

如果您想让 head 或 tail 以字节而不是以行为单位,那该怎么办呢?您可以用 -c 选项代替 -n 选项。因此,要显示前 200 个字符,请使用 head -c 200 file,或者使用 tail -c 200 file 来显示后 200 个字符。如果数字后面跟有 b(表示块(block)),那么这个数字将被乘以 512。类似地,跟有 k(表示千字节(kilobyte))表示用 1024 去乘给定的数字,而跟有 m(表示兆字节(megabyte))表示用 1048576 字节去乘给定的数字。

请记住,head file1 file2 file3 和 cat file1 file2 file3 | head 之间有重大差别。前者将打印每个文件指定行数的内容,不同文件的内容之间用头信息隔开,头信息以 ==> 后跟文件名开头。后者将打印由 cat 命令后所列文件组成的输入流中指定行数的内容,但将把输入流作为单个文件对待。可以使用 -q(表示静默(quiet))选项关闭文件名头信息。与 -q 相反的是 -v(表示详列(verbose))。

假如您要处理的文件在处理期间一直在发生变化(比如,当您让 head 或 tail 读取来自正在被另一个命令写入的文件的数据时,就是这种情况),请使用 -f 选项让 tail 持续读取来自指定文件的数据并将这些数据发送至 tail 自己的标准输出中。通过管道发送数据时该选项会被忽略。因此,cat file | tail -f 将不会得到所期望的结果,但 tail -f file 则可以。

(如果 tail 正在读取的文件不止一个,那么各行内容之间将用标准头信息隔开,以指明它们来自哪个文件,标准头信息以 ==> 开头。)

这个选项用于监视系统日志再合适不过,譬如,在单独的终端窗口(或单独的控制台)中执行的 tail -f /var/log/access.log 将持续打印每次点击后新添加的 Apache 访问日志条目,一直到您用 Ctrl-C 停止它为止。

通过组合使用 head 和 tail,可以从文件的中间部分读取给定长度的一块数据!下面说明如何做到:假定您想从文件开头算起第 1000 字节处开始读取一块 789 字节的数据。可以使用 cat file | head -c 1788 | tail -c 789 来解决这一问题。

使用 tac 命令逆序排序文件

如果您想对文件中的各行进行逆序排序,该怎么做呢?这就要用到 tac 命令。(请注tac 由 cat 逆序拼写而成。)该命令对所列出的文件中的各行或各段进行逆序排序。

该命令不能逆序排序各文件的顺序 — 这个任务您得自己做,以逆向顺序在 tac 命令后列出各文件即可。作为说明 tac 的工作原理的示例,请在您的主目录中对一些文件使用 ls -l | tail 和 ls -l | tail | tac,比较其结果。

附录:

FSCK工具

使用fsck程序

fsck工具程序的名字是File System ChecK(文件系统检查)的缩写,它被用来诊断和修复在日常操作中可能已经损坏的文件系统。系统发生崩溃的时候,一般都来不及把内部缓冲区中的全部数据转存到磁盘上,所以类似的修复通常是十分必要的(虽然这个工具程序的名字

与系统发生崩溃后经常听到的一个说法惊人地相似,但是这个工具程序成为系统恢复过程的一个部分纯属巧合)。

通常,系统在引导过程中如果发现有某个分区没有正常地卸载,就会自动运行fsck工具程序(和Windows运行scandisk程序的意思几乎一样)。Linux操作系统尽了极大的努力来自动修复它所遇到的问题,而且在大多数情况下都能把自己照顾得很好。而ext2文件系统强壮的本质对这些情况也有帮助。不管怎么说,你可能会看到下面这样的提示:

*** An error occurred during the file system check .

*** Dropping you to a shell ; the system will reboot

*** when you leave the shell .

在这个时候,就需要你手动运行fsck并自己回答程序的提问。

如果确实发现某个文件系统的操作行为与其正常情况不一样( log日志是这类情况的最佳提示),你可能会在一个运转着的系统上运行fsck程序。唯一的不足之处是:为了执行这个程序,需要诊断的文件系统必须先卸载下来。如果你选择了这个方法,完成操作后别忘记把文件系统再挂装上去。(注意fsck并不是ext2文件系统修复工具合适的名字;它实际上只是一个打包器。fsck打包器尝试确定哪一个文件系统需要修复,然后再调用适当的修复工具程序,把我们传递给fsck的参数都传递过去。对ext2文件系统来说,真正的工具叫做e2fsck。当发生系统崩溃的时候,与其依靠其他应用程序替你调用e2fsck,还不如自己直接来调用它。

1. e2fsck的可用参数

表8 - 4中列出的参数都可以供e2fsck使用。比如说,如果想在/ d e v / h d a 3文件系统上运行e2fsck,需要输入下面的命令:

[ root@ford /root ] # e2fsck /dev/hda3

强制进行文件系统检查并对出现的全部提示都回答“Yes”,需要输入下面的命令:

[ root@ford ] # e2fsck -f -y /dev/hda3

2. 出现错误信息怎么办?

首先,要放松。fsck检查出来的问题很少是它自己不能纠正的。即使它要求人的干预,告诉fsck按照它缺省的操作建议通常也就足够了。很少出现使用e2fsck检查一遍之后还有问题没有解决的情况。

在很少出现需要第二遍检查的情况下,绝对不应该再出现更多的问题了。如果还是有许多问题,那就有可能遇到了硬件故障。记住先从明显的地方开始:检查电源是否正常、线缆是否接好。运转S C S I系统的人们需要检查自己是否使用了正确的终端头,接线是否过长、S C S I设备的I D编号有没有冲突、电线的质量是否合格等等( S C S I特别挑剔接线的质量)。

利用fsck检查文件系统的完整性

文件系统是个非常复杂的东西,而且容易出错。一个文件系统的正确性和有效性是可以检查出来的,具体做法是利用fsck命令。对于它找到的任何一个小错误,它都可以对其进行修复,并提醒用户文件系统是否存在不可修复的错误。所幸的是,对实施文件系统所用代码进行的调试是相当有效的,所有文件系统本身几乎不存在错误,如果有的话,通常都是由于电源故障、硬件故障或操作错误引起的;比方说没有正确关闭系统。许多系统都被设置为启动时自动运行fsck,所以在使用系统之前,需要侦测错误(希望一切正常)。使用损坏了的文件系统将引发恶果:如果数据结构一团糟,使用这个文件系统将使其结构更为恶化,导致更多数据的丢失。自动检查只适合启动时自动装入的文件系统。利用fsck手动检查其他文件系统,比如软盘。如果fsck发现了不能修复的错误,你就需要深入了解文件系统的工作原理,以及特殊情况下文件系统损伤的类型或如何备份。fsck只可运行于未装入的文件系统上,绝不能运行于已装入的文件系统上(启动期间只读装入的r o o t除外)。这是因为它访问的是原磁盘,因而可以在操作系统不注意的情况下,修改文件系统。如果操作系统注意到了它,情况就难办了。

磁盘管理部分的命令

mkfs命令

mkfs -t 文件系统类型 /dev/设备名

如要把/dev/sda1格式为ext2格式,使用以下命令:

mkfs -t ext2 /dev/sda1

MOUNT命令

-a 是把/etc/fstab 文件中列出的文件系统都挂载上。这个命令的格式如下所示:

mount [ options ] device directory

下面的mount命令把/dev/hda3分区以只读属性挂装到/usr子目录上:

[ root@ford /root ] # mount -o ro /dev/hda3 /usr

2. 卸载文件系统

如果想卸载一个文件系统,请使用umount命令。下面是这个命令的格式:

umount [ -f ] directory

其中的directory是准备卸载的子目录名。如下所示:

[ root@ford /root ] # umount /usr

把挂装在/usr子目录位置上的分区卸载下来。

当文件系统在使用中umount命令有一个不足之处:如果文件系统正在使用中(也就是说有人在那个分区上打开了文件),就无法把这个文件系统卸载下来。有三种方法可以用来解决这个问题:

• 使用lsof程序(可以从站点ftp://vic.cc.purdue.edu/pub/tools/unix/lsof下载)或者f u s e r程序检查有哪些进程打开了文件,终止那些进程的运行或者让进程的所有者停止操作。如果选择终止那些进程的运行,一定要明白自己在做些什么(我的意思是别为这个给自己招来麻烦)。

• 使用umount命令和- f参数强制执行卸载操作。任何在这个分区上打开的进程都将被挂起来,可能会造成数据丢失。

• 最安全和适当的办法是把系统调整为单用户模式,然后再卸载这个文件系统。在现实生活里,你可能不会总有这个奢侈之举。

特殊字符及其含义

$0: 当前 shell 名

$?: 上一条命令执行后返回的值

$$: 当前 shell 的进程号

$!: 上一个子进程的进程号

$n: 位置参数值, n 表示位置

$@, $* : 所有参数值

本文出自 “资料小结” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: