首页 > 系统 > Linux > 正文

Linux不完全手册(二)

2020-10-28 18:56:10
字体:
来源:转载
供稿:网友

Linux使用篇

  安装完linux,并配置好linux的启动,那么如果在安装时你选的是启动到图形界面下的话,现在你就应该可以看到登陆的窗口了。输入你的用户名和密码,(呵呵,安装时设定的,别忘了!)就开始了你的linux之旅。

  在linux下,你的确可以体验到永不死机的神话。Linux系统的确强大,在他的下面你的确不用担心莫名其妙的蓝屏。笔者使用linux以有几年,在这几年里从没发生过真正的死机,就算是偶尔的在xwindows下系统没有了响应也可以按"ctrl+alt+backspace"退出窗口返回命令行模式下。

  其实要了解linux,那就一定要习惯命令行模式,因为xwindows只是运行在命令行模式上的一个应用程序而已,就象dos与windows3.x一样,所以了解一下linux的常用命令还是很有用处的。下面我就介绍一些在linux下使用频率最高的几个命令,这些命令的介绍并不象专业书籍那样介绍的大而全,我只是拣着那些对我们普通用户最有用的来介绍,每个命令都对照着相同功能的dos命令来说,并列出一些常用的参数。
  在介绍一些具体的命令前先要说明的是,如果碰到不会用的命令,可以打"man [command]"来得到关于这个命令的帮助,如果想知道一个命令都有什么参数的时候可以?quot;command -help"来得到。要注意的是linux里的参数的输入形式和dos里的不一样,在命令后面应该打一个空格,然后打"-",最后再跟一个或多个参数。还要注意的是linux下大小写是有区别的!

基本操作命令

ls
相当于dos下的dir命令,是列文件列表的命令,和dir差不多。参数有:


参数
 说明

-a
 列出系统中的隐含文件,linux下的隐含文件是靠文件名的格式来表示的,不同于dos是靠文件属性来表示。具体的说只要这个文件是以“.”开头的,那么他就是一个隐含文件。

-l
 以长式列出。就是把该文件或目录的所有信息都列出来,一个文件占一整行。
 

cd
和dos下的cd一样,转换目录的命令。需要指出的是linux下的转到上级目录要打"cd .."而不是dos下的"cd.."。也就是说"cd"后面要有个空格。
pwd
列出当前目录命令,相当于dos下没有参数的cd命令。比如:
[root@ttqq bin]# pwd
/usr/bin
[root@ttqq bin]#
这表示我们现在在"/usr/bin"目录下。
有关目录和文件的命令
mkdir
建立新目录,相当于dos的md命令。一般就用 mkdir [dirname],参数:

参数
 说明

-m mode
 表示建立目录时默认的目录模式。这个是dos和windows所没有的功能。主要是关于权限的问题,读者如有兴趣请参考相关专业书籍。
 

rmdir
删除目录,相当于dos的rd命令。用法:rmdir [dirname]。
cat
在文件后面追加文件或在屏幕上打印文件内容,追加功能相当于dos的copy file1+file2,而在屏幕上打印文件内容可以和dos的typeml来类比。如果文件太大,以至于在一屏幕上无法完全显示,那么可以试试下面这个命令。

more
分屏显示文件内容,和dos下的more命令大致相同,而他的特点是可以和别的命令来搭配使用。如:cat /home/eec/myfile | more。

cp
拷贝文件,相当于dos下的copy使用方法和dos下的copy一样。参数:

参数
 说明

-r
 相当于dos的xcopy/s。用于拷贝一个目录下的所有文件和文件夹。
 

ln
建立文件链接。相当于windows下的快捷方式。用法:"ln 源文件 目标文件"
mv
重新命名文件,等价于dos的move和ren命令。用法:"mv oldname newname"比如:"mv 111 /home/ekoala/222"就是把"111"这个文件移动到"/home/ekoala"目录下,并改名为"222"

touch
改变文件的修改时间或建立时间。相当于dos的copy file+nul。最简单的用法是:"touch file_name",即把"file_name"这个文件的时间改为当前时间。注意:如果touch后面的文件不存在的话就会在磁盘上建立一个新的空文件。

进程或进程的相关命令
  首先介绍一下linux的多进程,linux的多进程要比windows的多进程更有效率、更加稳定。在命令行状态下输入的普通命令都在前台完成,而如果你在命令后面加一个"&",那么这个命令就在后台运行。好,言归正传,现在开始介绍有关进程的常用命令。
at
安排作业在稍后执行。这个命令非常强大,同时也非常复杂,这个命令可以说是unix/linux的一大特色。我们先来看一个具体的实例:
[root@ttqq bin]# at 21:05 Jul 31
at>cat /usr/docs/ccttrr.htm >myfile
at>
warning:commands will be executed using /bin/sh
job 5 at 2000-07-31 21:05
  以上的意思为输入在7月31日21点05分运行一个程序,接着系统提示用户输入命令或命令列表,使用"ctrl+d"终止。终止at后,系统给出一个警告,这个响应表示指定的工作将在指定的时间运行,工作号为5,如果想取消此作业可用与之相连的工作号来完成。
如果命令很多,那建议将命令列表放入一个文件,若文件名是"comtable"那就输入:
[root@ttqq bin]# at 21:05 Jul 31 由于at的特殊性,所以linux系统对at有一些权限上的规定:
超级用户可以随意使用at命令,但对普通用户来说,则由/etc/at.allow与/etc/at.deny这两个文件来决定。
  如果/etc/at.allow这个文件存在,那么只有在该文件中提及的用户可以使用该命令,相反的,如果这个文件不存在,则检查/etc/at.deny这个文件,该文件中未提及的用户可以使用该命令。如果两个文件都不存在。那就只有超级用户可以使用该命令。如果/etc/at.deny这个文件为空,那么所有用户都可以用这个命令。
at的参数有:

参数
 说明

-l
 列出现在由at安排的作业。超级用户可以列出所有的用户,普通用户只能列出自己的at作业。

-m
 作业完成后,即使没有输出,也将邮件送到用户。

-r
 从作业中取消指定的作业,比如取消上例的作业:at r 5。超级用户可以取消所有的用户,而普通用户只能取消自己的作业。
 

 

ps
显示当前正在执行的进程,由于进程执行的非常快,所以本命令只能列出查询瞬间发生的进程。以下为超级用户用ps -al参数的输出:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
100 S 0 273 265 0 69 0 - 472 wait4 tty1 00:00:00 bash
100 S 500 286 266 0 62 0 - 466 wait4 tty2 00:00:00 sh
100 S 503 299 267 0 64 0 - 465 read_c tty3 00:00:00 sh
000 S 500 318 286 0 62 0 - 1193 do_sel tty2 00:00:00 vi
100 R 0 328 273 0 70 0 - 638 - tty1 00:00:00 ps
其中"PID"为进程号,对进程的管理就是通过进程号来实现的。ps的参数有:

参数
 说明

-a
 显示所有的进程,支线于超级用户使用。

-l
 长格式输出。

-u
 用户格式输出,显示用户名和起始时间。

-r
 只显示当前运行的进程。

-s
 加入子cpu时间和页错误报告。
 

下面我在说一下ps各列标题的意思: 列名
 说明

PID
 进程号。

PRI
 进程的优先级。

NI
 Linux的nice值,负数少意味着占用较少的cpu时间。

SIZE
 虚拟映象的大小,计算式为:“文本+数据+栈”。

RSS
 驻留空间的大小,显示当前常驻内存的程序的k字节大小。

WCHAN
 进程等待的内核事件名。

TT
 进程的控制终端tty的名称。

STAT
 进程状态,用下列代码中的一个给出。

R
 可执行的。

S
 睡眠状态。

D
 不间断睡眠。

T
 停止或追踪。

Z
 是一个zombia进程。

W
 当前进程在内存中没有驻留页。

 
PAGEIN
 造成从磁盘读写页的页面错误。

TRS
 文本寄存大小。

SWAP
 交换文件的千字节数。

SHARE
 共享内存数。
 

kill
容许送一个信号到当前进程,通常本命令用于终止进程的运行,所以也叫"杀死"进程。用法为:kill 进程号。超级用户可以杀死所有进程,普通用户只能杀死自己的进程。
显示输出命令
banner
banner通过一个传给它的放大变量产生一个大字标题。可以指定十个字符,这些字符将放大成一系列的"*"号。语法如下:
banner [-w[n]] 字符串
-wn改变字符宽度,从132列到n列,如果只指定了-w,那么设定宽度为80列。如:
benner "my benner"
这样就会在屏幕上打印一个大的"my benner"。
cal
这个命令在屏幕上显示日历,这个命令非常有用。用法:cal [month] [year],参数为:

参数
 说明

Month
 用1-12表示显示的月份。缺省的是显示本月。

Year
 可以是1-9999年,缺省是本年。必须写足4位数,也就是说,92代表公元92年,而不是公元1992年。
 

cal 10 1994,表示显示1994年10月的月历。
clear
清除屏幕,跟dos的cls一样。

date
显示系统的日期和时间,或由超级用户来设定系统的时间。用户可以控制时间如何显示。语法如下:
date MMDDhhmm[CC][YY][.ss],参数说明:

参数
 说明

MMDDhhmm[CC][YY][.ss]
 这些都是设定时间的格式。下表解释每一个变量。每部分必须都有两位数字。

MM
 月份(1-12)

DD
 日期(1-31)

Hh
 小时(00-24)

mm
 分钟(00-59)

CC
 年的前两位(可选)

YY
 年份(00-99)(可选)

Ss
 秒(可选)
 

file
决定文件类型。File能确定该文件是否是可执行文件、文本文件、数据文件等。许多unix命令只是shell文件,file能确定这些命令是不是shell文件。他也可以确定该文件是否是基于文本的文件,以及该文件是否能编辑和浏览。参数:
参数 说明
-z 深入观察一个压缩文件,并试图查找出他的类型。
-l 本参数容许符号连接。
-f ffile 告诉file要鉴别的文件列表在fflie。这对于要鉴别很多文件很有用。
-m 文件 指定用于说明文件类型的magic的一个替代文件。
find
find是一个非常强大的查找工具。他研究指定目录,并产生与指定标准相匹配的文件列表。文件可以按文件名、文件大小、建立时间、修改时间和其他许多标准,也可以在发现一个匹配文件的时候执行一个指令。语法如下:
find 目录(也可以是目录列表) 匹配标准。他的主要参数有:

参数

 说明

 
-z

 深入观察一个压缩文件,并试图查找出他的类型。

 
-l

 本参数容许符号连接。

 
-f ffile

 告诉file要鉴别的文件列表在fflie。这对于要鉴别很多文件很有用。

 
-m 文件

 指定用于说明文件类型的magic的一个替代文件。

 

参数
 说明

目录(或目录列表)
 希望查询文件或文件集的目录列表,目录中用空格分开。

匹配标准
 希望查询文件的匹配标准或说明。

-name 文件
 告诉find要找什么文件,要找的文件包括在引号中,可以用统配符,如:“*”、“?”。

­-perm模式
 匹配所有模式为指定数字型模式值的文件。不仅仅是读、写和执行,表示除了这个模式外的所有模式。

-type x
 匹配所有类型为x的文件。X可以是c(特殊字符),b(特殊块),d(目录),p(有名管道),l(符号连接),s(套接文件)或者f(一般文件)。

-links n
 匹配所有连接数为n的文件。

-size n
 匹配所有大小为n块的文件。512字节块,若k在n后,则为1k字节块。

-user 用户号
 匹配所有用户序列号是指定的用户序列号的文件。用户号可以是数字型,也可以是用户登陆名。

-attinme n
 匹配在n天前访问过的文件。

-ntime n
 匹配在n天前修改过的文件。

-exec 命令
 对每个匹配文件执行命令。

-newer
 匹配所有修改时间比file文件更新的文件。
 

这些参数是可以一起并列使用的,也可以通过逻辑表达式来限制查询标准,如下表所示:
参数
 说明

-and
 缺省的逻辑表达,表示要同时满足表达式左右两个的规则。可以不用,因为是缺省的。

-o
 这时or操作符,表示只要满足一个规则就可以。

-!
 这是not操作符,表示否定后面的表达式。
 

总之,find命令非常复杂,不是三言两语就能说清楚的,建议大家多参考联机手册,并多加练习就可以轻松掌握。

用户和用户管理及其他系统设定的相关命令
chgrp
改变文件的组所有权。一些chgrp命令有长短两种参数参数的指定方式,现只介绍短版本。语法:chgrp [参数] 组 文件列表,参数有:

参数
 说明

-c
 只有在文件所有权确实改变时才进行详细说明。

-f
 不打印文件所有权不能改变的错误信息。

-v
 详细说明文件所有权变化信息。


 要改变到的组,可以是组号的数字值,也可以是/etc/growp文件中的组名。

文件列表
 要改变组所有权的文件列表,文件间以空格分隔。
 


如果你不是文件的所有者或超级用户则不能改变文件的组所有权。
例子:chgrp ekoala /usr/eee/*
即把/usr/eee下的所有文件的组所有权改变为ekoala的。
chomd
改变文件模式,文件模式控制与该文件有关的访问权。Linux有3个安全级别:所有者级、组访问级和其他用户级。在这3个级中有3种读写权限:读、写和执行。对标准文件,读权限意味着用户可以看到该文件的内容;写权限能修改文件;执行权限则可以运行文件。对于目录则稍有不同:读权限可以看到目录下的内容,即可以用ls命令;写权限则可以在目录下建立新文件或从目录中删除文件;执行权限则意味着能从一个目录转变到另一个目录中,则可以使用cd命令。
用法:
chomd a + w letter
则是给所有用户加入写文件letter的权限。
权限代码为:读(r)、写(w)、执行(x)。

chown
这个命令和chgrp很相似,这个命令是改变文件的用户所有权,就是说将文件的拥有者设为其他用户。用法:
chown [参数] 用户 文件列表,参数有:

参数
 说明

-c
 只有在文件权限确实改变时才进行详细说明。

-f
 不打印权限不能改变的文件错误信息。

-v
 详细说明权限的变化。

文件列表
 列出由要chown改变权限的文件。

用户
 可以是用户号或是在/etc/passwd文件中的用户名。
 

要注意的是:文件的所有权只能由超级用户或文件的所有者更改。但是,如果文件的所有者将文件指定给其他的用户,则没有权利将文件再指定给自己,因为此时该用户已经不是文件的所有者了。
例子:
chown ekoala /usr/eee/ttqq ,这个意思是将/usr/eee/ttqq这个文件的所有者改为ekoala。
id
显示用户的系统标识,报告用户的名称、用户号、组名和组号。参数:

参数
 说明

-g
 只打印组号。

-G
 只打印补充组。

-u
 只打印用户号。
 

如:
[ekoala@ttqq usr]$ id
uid=10002(ekoala) gid=500(student) groups=500(student)
[ekoala@ttqq usr]$
显示自己的用户信息。
passwd
维护用户口令,系统管理员可以用这个命令管理用户账号。用法:
passwd [用户名]
只有系统管理员才可以更改别人的密码。普通用户只能改自己的密码。如:
[ekoala@ttqq ekoala]$ passwd
Changing password for ekoala
(current) UNIX password: 〔输入当前密码〕
New UNIX password: 〔新密码〕
Retype new UNIX password: 〔确认新密码〕
Password:all authentication tokens updated successfully 〔成功改变密码〕

Useradd
添加一个新用户或改变用户现有信息。

Userdel
删除一个用户和他所有的文件。
硬盘管理和文件压缩的命令
df
报告硬盘的剩余空间数。参数有:

参数
 说明

-a
 可选的文件系统列表,他报告剩余的硬盘的空间数,若此项为空白,则报告现在装有的所有的文件系统。

-I
 列出节点使用信息代替块使用信息。

-k
 打印大小为1k为单位代替512k的块。

-t fstype
 限制只列出fstype类型的文件系统列表。

-x fstype
 限制只列出非fstype的文件系统列表。
 

gzip
gzip是一个非常流行的压缩工具,他通常和tar命令一起使用。语法:
gzip [参数] 文件列表,参数有:
-a
 ASCII文本模式:按照约定转化文件结尾标志,这个选项只支持非UNIX操作系统,在msdos下,回车和换行符在压缩的时候被转换成换行符,解压的时候再转换回来。

-c
 输出到标准输出,保留原文件不变,如果有几个输入文件,则输出保持一定的顺序。

-d
 解压缩。

-f
 强制压缩。

-l
 详细显示文件的压缩情况:
1,  压缩文件的大小。
2,  未压缩前的大小。
3,  压缩比和被压缩的文件名。
4,  如果和-v参数一起使用,还显示下列信息:
a,  压缩方法。
b,  未压缩数据的32位CRC码。
c,  文件的更改时间。

-q
 不显示所有警告信息。

-r
 递归压缩目录结构。
 

tar
tar是一个很流行的文件备份和压缩工具,用于建立系统备份或建立单一文件。Tar的语法很麻烦,现简单介绍如下:
tar crtux[fmtVwF] 文件列表。参数有:
参数
 说明

参量
 指定获得档案,可以是以下几个参数。

C
 建立一个新档案或覆盖一个已存在的档案。

R
 在文件列表中命名。

A
 添加文件到备份包中。

T
 列出压缩文件的列表。

U
 从压缩文件里面解压缩文件。

文件列表
 要处理的文件列表,可以包括统配符。如果处理的是目录,那么则处理目录及其下的所有文件和文件夹。

-b
 指定分块数量n,n×512k,n的默认值是20。

-m
 告诉tar解压缩时不需修改时间,修改时间就是解压缩的时间。

-c 目录名
 更改目录。

-k
 保留已存在的文件,不从压缩文件中覆盖。

-v
 生成有卷标的压缩文件。

-z
 使用gzip解压缩文件。
 

 

比如解开一个名叫9s.tgz的压缩文件:
tar zxvf 9s.tgz
又例如要把/home/bbs下的所有文件打包成bbs.bak.tgz,可以这样:
tar zvcf bbs.bak.tgz /home/bbs/*
网络相关命令
本节的内容很少,只是简单的介绍一下对个人用户有用的命令,虽然linux的最大特点在于他的网络功能,可是其中大部分的功能实在是太强大了,如果想仔细研究,请参考相关书籍。
login
login用于登录一个主机,也可以用来从一个用户转向另一个用户,这一点有点象su命令,但他的用法比su要多一些。语法:
login [参数] [主机名] [用户名],参数如下:
参数
 说明

用户名
 如果没有给出任何参数,则login需要一个用户名。

-p
 保留环境变量。

-f
 忽略第二次登录证明。

-h
 远程登录其他主机。
 

ping
和dos下的一样,用于检查两台联网的计算机之间的物理网络是否畅通,这个命令一般用于检查网络是否存在故障。
Ping命令向网络主机中发送ICMP(Internet Control Messeges Protocol)包,并要求目标主机回应。参数有:
参数
 说明

-c
 收到主机回应即停止。

-f
 洪水式发包,一旦收到主机回应就发包,或者每秒一百个包。注意,只有超级用户才可以用这个命令,此命令会对网络产生不良影响。

-I
 每发一个包等待一秒钟。

-l
 强制连续以最快的速度发包。这个命令也只能有超级用户使用。

-s packetsize
 自定义包的大小。
 

其他命令
time
确定程序执行的时间。语法:
time [command]
uname
报告系统名或其他各种信息。语法:
uname [参数]

参数
 说明

-s
 报告系统名,这是个缺省值。

-n
 报告系统的节点名。

-r
 报告系统的发行号。

-v
 报告系统的版本号。

-m
 报告系统的硬件名。

-a
 报告所有信息。
 

History
显示用户命令行的历史记录。
Vi的使用
  要想配置系统,就要先学会文本编辑命令,因为主要的配置工作无非是对文本文件的编辑。在unix或linux里最古老的同时也是最流行的文本编辑器就是vi了。所以要了解一些vi的用法还是有必要的,虽然对于新手可能是很难,但慢慢习惯以后,你就会发现vi其实是一个非常好用和功能强大的一个编辑器。
Vi简介
  Vi是unix世界中的极为普遍的一个全屏幕的文本编辑器,几乎可以说是任何一台unix机器都会提供这套软件,linux当然也有。熟悉dos下的文本编辑器如edit后,会觉得vi并不好用,unix上的确也发展出许多新的、更强大的编辑器,但并不能保证每台机器上都有。所以,熟悉一下vi的操作还是有必要的。这可以让你在不同的机器上得心应手。
Vi的基本观念
  只要执行vi就可以进入vi的编辑环境了。在实际操作之前有个粗略的了解会比较好。Vi有两种模式:输入模式和命令模式。输入模式用于输入文字资料,而命令模式则是下达一些编排文件、存档以及离开vi的操作命令,当执行vi后,先进入命令模式,此时输入的任何字符都被视为命令,在输入模式里要进入命令模式可以按"esc",如果不知道现在处于什么模式,则多按几次"esc"系统就会发出"嘟嘟"声以示进入命令模式。
进入与离开
  要进入vi只要输入vi<文件名>,vi就可以帮你自动加载所要编辑的文件或新建立一个文件。进入vi后,屏幕左方会有一些波浪号,凡是列首有该符号就表示目前此列是空的。要离开vi可以在命令模式里打入":q",而":wq"则是存档后离开,打入":q!"则是强制离开。
Vi的输入模式
  要如何输入呢?有好几种命令可以进入输入模式(注意大小写有分别):
新增,按a,从光标所在位置后面新增资料。按A,从光标所在列后面新增资料。
插入,按i,从光标所在位置前面开始插入资料。按I,从光标所在列的第一个非空白字前面开始插入资料。
开始,按o,从光标所在列下新增一列并进入输入模式。按O,从光标所在列上方新增一列并进入输入模式。
Vi的基本编辑命令:

命令
 说明

x
 删除光标所在字符。

dd
 删除光标所在行。

r
 修改光标所在的字符,r后接着要改成的字符。

R
 进入取代状态,新增文本会覆盖原文本,直到按esc回到命令模式为止。

s
 删除光标所在的字符并进入输入模式。

S
 删除光标所在的列的字符并进入输入模式。
 

  好了,到这里vi的简单用法就介绍完了,相信这些对于简单的配置系统应该够用了。因为大部分时间相信我们是在xwindows下,谁也不会总也对着那个黑乎乎的屏幕:)

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表