这个命令是 linux 中非常重要的一个命令,它的功能是显示或连结一般的 ascii 文本文
件。cat是 concatenate 的简写,类似于 dos 下面的 type 命令。它的用法如下:
cat text 显示 text 这个文件
cat file1 file2 依顺序显示 file1,file2的内容
cat file1 file2>file3 把 file1,file2 的内容结合起来,再"重定向(>)"到 file3文件中。
"〉"是一个非常有趣的符号,是往右重定向的意思,就是把左边的结果当成是输入,然
后输入到 file3 这个文件中。这里要注意一点是 file3 是在重定向以前还未存在的文件,如果
file3 是已经存在的文件,那么它本身的内容被覆盖,而变成 file1+file2的内容。
如果〉左边没有文件的名称,而右边有文件名,例如:
cat >file1
结果是会"空出一行空白行",等待你输入文字,输入完毕后再按[Ctrl]+[c]或[Ctrl]+[d],
就会结束编辑,并产生 file1 这个文件,而 file1 的内容就是你刚刚输入的内容。这个过程和
dos 里面的copy con file1的结果是一样的。
另外,如果你使用如下的指令:
cat file1>>file2
这将变成将 file1 的文件内容"附加"到 file2 的文件后面,而 file2 的内容依然存在,这种
重定向符〉〉比〉常用,可以多多利用。
2.more,less命令
这是两个显示一般文本文件的指令。
如果一个文本文件太长了超过一个屏幕的画面,用 cat 来看实在是不理想,就可以试试
more 和 less两个指令。More 指令可以使超过一页的文件临时停留在屏幕,等你按任何的一
个键以后,才继续显示。而 less 除了有 more 的功能以外,还可以用方向键往上或网下的滚
11动文件,所以你随意浏览,阅读文章时,less 是个非常好的选择。
3.ln命令
这是 linux中又一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另
外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:
ln -s 源文件 目标文件
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都
放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下
用 ln 命令链接(link)它就可以,不必重复的占用磁盘空间。例如:
ln -s /bin/less /usr/local/bin/less
-s 是代号(symbolic)的意思。
这里有两点要注意:第一,ln 命令会保持每一处链接文件的同步性,也就是说,不论
你改动了哪一处,其它的文件都会发生相同的变化;第二,ln 的链接又软链接和硬链接两
种,软链接就是 ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空
间,硬链接 ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,
无论是软链接还是硬链接,文件都保持同步变化。
如果你用ls 察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用 ln 命
令生成的文件,用 ls -l命令去察看,就可以看到显示的 link 的路径了。
4.man命令
如果你的英文足够好,那完全可以不靠任何人就精通 linux,只要你会用 man。Man 实
际上就是察看指令用法的 help,学习任何一种 UNIX类的操作系统最重要的就是学会使用
man 这个辅助命令。man 是 manual(手册)的缩写字,它的说明非常的详细,但是因为它都是
英文,看起来非常的头痛。建议大家需要的时候再去看 man,平常吗,记得一些基本用法
就可以了
5.Mount 命令
这是 Linux 初学者问得最多的问题。由于大家已习惯了微软的访问方法,总想用类似
的思路来找到软盘和光盘。但在 Linux 下,却沿袭了 UNIX 将设备当作文件来处理的方法。
所以要访问软盘和光盘,就必须先将它们装载到 Linux 系统的/mnt 目录中来。
装载的命令是 mount,格式如下:mount -t 文件系统类型 设备名 装载目录 文件
系统类型就是分区格式,Linux 支持的文件系统类型有许多:
msdos DOS 分区文件系统类型
vfat 支持长文件名的 DOS 分区文件(可以理解为 Windows 文件)系统类型
iso9660 光盘的文件系统类型
ext2 Linux 的文件系统类型 ......
设备名,指的是你要装载的设备的名称。软盘一般为/dev/fd0 fd1;光盘则根据你的
光驱的位置来决定,通常光驱装在第二硬盘的主盘位置就是/dev/hdc;如果访问的是 DOS 的
分区,则列出其设备名,如/dev/hda1 是指第一硬盘的第一个分区。 装载目录,就是你指
定设备的载入点。
z 装载软盘
首先用 mkdir /mnt/floppy 在/mnt 目录下建立一个空的 floppy目录,然后输入 mount
-t msdos /dev/fd0 /mnt/floppy 将 DOS 文件格式的一张软盘装载进来,以后就可以在
/mnt/floppy目录下找到这张软盘的所有内容。
z 装载 Windows 所在的C 盘
mkdir /mnt/c 在/mnt 目录下建立一个空的 c 目录;
mount -t vfat /dev/hda1 /mnt/c 将Windows 的C盘按长文件名格式装载到/mnt/c 目
录下,以后在该目录下就能读写 C盘根目录中的内容
z 装载光盘
mkdir /mnt/cdrom 在/mnt 目录下建立一个空的 cdrom 目录;
mount -t iso9660 /dev/hdc /mnt/cdrom 将光盘载入到文件系统中来, 将在/mnt/cdrom
目录下找到光盘内容。有的 Linux 版本允许用 mount /dev/cdrom 或 mount /mnt/cdrom 命
令装载光盘。
要注意的是,用 mount命令装入的是软盘、光盘,而不是软驱、光驱。有些初学者容易
犯一个毛病,以为用上面命令后,软驱就成了/mnt/floppy,光驱就成了/mnt/cdrom,其实
不然,当你要换一张光盘或软盘时,一定要先卸载,再对新盘重新装载。
z 卸载
卸载的命令格式是:umonut 目录名,例如要卸载软盘,可输入命令 umonut /mnt/floppy。
要注意的是,在卸载光盘之前,直接按光驱面板上的弹出键是不会起作用的。
6.管理员使用的系统管理指令
(1). adduser 命令
新增使用者账号的命令,如果你想新增一个叫做 jack 的用户,那么需在控制台下输入:
adduser jack
这样就增加了一个名字为 jazk 的用户,要注意这里对大小写是敏感的。另外,新增的
用户是没有口令的,你还应当为用户设置口令或者是吩咐用户在第一次登录系统的时候为
自己设置口令。
(2).. passwd命令
这个命令可以修改特定用户的口令,使用格式是:
passwd 用户名
这是,系统会提示你输入新密码,你输入第一遍后,还要输入第二遍进行确认。输入
两遍相同的密码之后,系统就接受了新的密码。如果这个命令是一般用户来使用的话,那
就只能改变它自己的密码。
(3).. find,whereis,locate命令
这三个命令都是用来查找文件的,使用格式是:
find 路径名称 -name 文件名 参数(我们这里就不讨论参数了)
whereis 文件名
locate 文件名
一般来说,find 命令功能最为强大,但是对硬件的损耗也是最大的,当你使用 find 去
查找你个文件时,你会发现硬盘等在不停的闪动,这就意味着你的硬盘可能会比别人的少
用个三四年。当你使用whereis 或locate 去查找文件时,你会发现硬盘却是安安静静的,这
是因为这两个命令是从系统的数据库中查找文件,而不是去拼命的读硬盘。所以,如果平
常你只是想找一些小文件的话,使用 whereis或 locate 就可以了,如果你是要进行系统管理
的工作,那么使用 find再加上一些参数就可以满足你的要求了。
7.权限类操作命令;
-rw-r--r-- 2 root root 59 Dec 4 14:28 file
权限表示:
·字母:
r读 w写x执行
·数字:
有权限:1
无权限:0
rw- : 110----->6
r-- : 100----->4000-111(完全权限)
rwx : 111----->7
把每一组的权限表示转化为十进制;
权限:647
-rw-r--r--. 2 root root 113 12月 4 12:48 a
权限:624
-rw-------. 1 root root 2239 11月 18 01:20 anaconda-ks.cfg
权限:600
-rw-r--r--. 1 root root 13101 11月 18 01:12 install.log.syslog
权限:644
2、权限设置
chmod 权限表示 文件名/文件夹名
·字母:
用户本身;user--->u+增加
用户所在组:group--->g-减去(rwx)
chmod 其他用户:other--->o=赋予
所有用户:all--->a
例: chmod u=rwx,g=rx,o=x 文件名
chmod a-x 文件名
chmod u+x,g+x 文件名
permission denied 权限拒绝
权限=等级
·数字:
chmod 数字权限 文件名、文件夹名
如:chmod 777 文件名
文件权限总结
代表字符 权限
对文件的含义 对目录的含义
r 读权限 可以查看文件内容可以列出目录中的内容
w 写权限 可以修改文件内容可以在目录中创建,删除文件
x 执行权限
可以执行文件 可以进入目录
8.vi编辑器和系统启动解析
vi编辑器
vi 文件名 -->一般模式—a-->编辑模式-esc-->:-->末行命令模式
·一般模式
G 跳到末行
gg 返回首行
nG 跳到指定行(n代表数字,如:2000G 则跳到2000行)
yy 复制当前行 nyy 向下复制多行
p 粘贴在行下
dd 剪切(删除)当前行
ndd 向下剪切(删除)多行
u 取消
取消上一步操作 类似ctrl+z(Windows中)
ctrl+r 重做
恢复上一步操作 类似ctrl+y
·编辑模式
a A i I o O
·末行命令模式
:/ ? 进入末行命令模式
:set nu 设置行号
:set nonu 取消行号
搜索:
/string
按照指定的字符串进行搜索 N 上一个 n 下一个
?string
按照指定的字符串进行搜索 n 上一个 N 下一个
:set ic
忽略大小写 :set noic 取消忽略
查找
·全文搜索替换
:%s/old/new/gc
全文搜索old并替换成new,替换前要求确认
·指定范围搜索替换
:n1,n2s/old/new/gc
搜索n1到n2行,找到old并替换成new,替换前要求确认
·保存,退出
:q 退出 :q!强制退出
:w 保存 :w!强制保存
:wq 保存退出
:wq! 不保存退出
:w 文件名
相当于另存为
9.su命令
这个命令可以让普通用户变成具有管理员权限的超级用户(superuser),只要它知道知
道管理员的密码就可以。多用户多任务系统的强调的重点之一就是系统的安全性,所以应
避免直接使用 root 身份登录系统去做一些日常性的操作,因为时间一久 root 密码就有可能
被知道而危害到系统安全。所以平常应避免用 root 身份登录,即使要管理系统,也请尽量
使用 su 指令来临时管理系统,然后记住定期的更换 root 密码。
加入你现在是以一个普通用户的身份登录系统,现在你输入:
su
系统会要求你输入管理员的口令,当你输入正确的密码后,就可以获得全部的管理员
权限,这是你就是超级用户(superuser)。但你执行完各种管理操作以后,只要输入 logout 就
可以退回到原先的那个普通用户的状态
10.shutdown,halt 命令
这两个命令是用来关闭 linux 操作系统的。
在前面我说过,作为一个普通用户是不能够随便关闭系统的,因为虽然你用完了机器,
可是这时候可能还有其它的用户正在使用系统。因此,关闭系统或者是重新启动系统的操
作只有管理员才有权执行。另外 linux 系统在执行的时候会用部分的内存作缓存区,如果内
存上的数据还没有写入硬盘,就把电源拔掉,内存就会丢失数据,如果这些数据是和系统
本身有关的,那么会对系统造成极大的伤害。一般,我们建议在关机之前执行三次同步指
令 sync,可以用分号";"来把指令合并在一起执行,如:
# sync;sync;sync
使用 shutdown 关闭系统的时候有以下几种格式:
shutdown (系统内置 2分钟关机,并传送一些消息给正在使用的 user)
shutdown -h now (下完这个指令,系统立刻关机)
shutdown -r now (下完这个指令,系统立刻重新启动,相当于 reboot)
shutdown -h 20:25 (系统会在今天的 20:25 关机)
shutdown -h +10 (系统会在十分钟后关机)
如果在关机之前,要传送信息给正在机器上的使用者,可以加"-q"的参数,则会输出系
统内置的 shutdown 信息给使用者,通知他们离线。
halt 命令就不用多说了,只要你输入 halt,系统就会开始进入关闭过程,其效果和
shutdown -h now是完全一样的,我每次关机的时候都是用 halt。
11.chown命令
这个命令的作用是改变文件的所有者。
如果你有一个文件名为 classment.list 的文件,所有权要给于另一个账号为 golden的同
学,则可用 chown 来实现这个操作,但是当你改变了文件的所有者以后,该文件虽然在你
的 Home 目录下,可是你已经无任何修改或删除该文件的权限了,这一点同学们千万要注
意。通常会用到这个指令的时机,应该是你想让 linux 机器上的某位使用者到你的 Home 下
去用谋个文件是会用到。不过,泼出去的水就收不回来了,你用这个命令的时候可一定要
想清楚呦。
12.chmod命令
这个命令用来改变目录或文件的属性,是 linux 中一个应当熟悉的命令。
对这个命令,使用的方法很多,鉴于篇幅的原因,我只例出其中我最常用的一种。前
面讲过,一个文件用 10个小格来记录文件的权限。前三个小格是拥有者(user)本身的权
限,中间三个小格是和使用者同一组的成员(group)的权限,最后三个小格是表示其它使
用者(other)的权限。现在我们用三位的 2 进制数来表示相应的三小格的权限,例如:
111 rwx 101 r-x 011 -wx 001 -x 100 r-
这样一来,我们就可以用三个十进制的数来表示一个文件属性位上的十个格,其中每
一个十进制数大小等于代表每三格的那个三位的二进制数。例如,如果一个文件的属性是:
rwxr-r--,那么我们就可以用 744 来代表它的权限属性;如果一个文件的属性是:rwxrwxr--,
那它对应的三个十进制数就是 774。这样一来我们就可以用这种简便的方法指定文件的属性
了。例如,我想把一个文件 test.list的属性设置为 rwxr-x---,那么我只要执行:
chmod 750 test.list
就可以了,对于改变后的权限,你用 ls -l 就可以看到。
13.
六. 关於字串处理的指令
1. echo
echo 是用来显示一字串在终端机上。□ echo -n 则是当显示完之後不会有跳行的动
作。
2. grep/fgrep
grep 为一过滤器,它可自一个或多个档案中过滤出具有某个字串的行,或是自标准
输入过滤出具有某个字串的行。
fgrep 可将欲过滤的一群字串放在某一个档案中,然後使用 fgrep 将包含有属於这
一群字串的行过滤出来。
grep 与 fgrep 的用法如下:
grep [-nv] match_pattern file1 file2 ....
fgrep [-nv] -f pattern_file file1 file2 ...
-n 把所找到的行在行前加上行号列出
-v 把不包含 match_pattern 的行列出
match_pattern 所要搜寻的字串
-f 以 pattern_file 存放所要搜寻的字串
七. 网路上查询状况的指令
1. man
17man 是手册 ( manual ) 的意思。 UNIX 提供线上辅助( on-line help )的功能, man 就
是用来让使用者在使用时查询指令、系统呼叫、标准程式库函式、各种表格等的使用所用
的。man 的用法如下:
man [-M path] [[section] title ] .....
man [-M path] -k keyword ...
-M path man 所需要的 manual database 的路径。
我们也可以用设定环境变数 MANPATH 的方式来取代 -M 选项。
title 这是所要查询的目的物。
section 为一个数字表示 manual 的分类,通常 1 代表可执行指令,2 代表系统呼叫
( system call ) ,3 代表标准函数,等等。
我们如要参考 eqnchar(7) 的资料,则我们就输入 man 7 eqnchar ,便能取得我们所要
的辅助讯息。
-k keyword
用来将含有这项 keyword 的 title 列出来。
man 在 UNIX 上是一项非常重要的指令,我们在本讲义中所述之用法均仅只是一个大家
比较常用的用法以及简单的说明,真正详细的用法与说明还是要请你使用 man 来得到。
2. who
who 指令是用来查询目前有那些人在线上。
3. w
w 指令是用来查询目前有那些人在线上,同时显示出那些人目前的工作。
4. ku
ku 可以用来搜寻整个网路上的 user , 不像 w 跟 who 只是针对 local host 的查询.
而且 ku 提供让使用者建立搜寻特定使用者名单的功能。你可以建立一个档案
information-file 以条列的方式存放你的朋友的资料,再建立一个档案 hosts-file 来指
定搜寻的机器名称。 ku 的指令格式可由 ku -h 得到。