第二部分:系统操作入门
(第一讲)
UNIX操作系统入门其实也不是很难的一件事,与我们以前所接触的常用网络操作系统差不多,都是针对文件、目录、权限的管理与控制。本书可以做为初学者的指南,也做为熟悉UNIX人员的一本使用手册。
好了,我们还是照顾照顾那些初学者吧,毕竟这是入门骗,让我们先登陆到UNIX界面,看看UNIX
到底是什么样子。(本书全部以unixware 7.1.1为例)
登录步骤
========
login : _______ => 输入 username
password : _______ => 输入密码
退出步骤
========
% exit
% CTRL+d
更改帐号密码
============
% passwd => 执行后将会出现下列讯息
UX:passwd: INFO: Changing password for XXX
Old password: ______ => 输入旧密码
New password: ______ => 输入新密码(最好6-8字,英文字母与数字混合)
Retype new password: ______ => 再输入一次密码
在线指令说明
============
执行格式: man command-name
Example:
% man ls
进入远端电脑系统
================
执行格式:rlogin hostname [-1 username]
Example:
%rlogin doc
remote login 进入工作站 doc 中。
%rlogin doc -l user
使用 user 帐号进入工作站 doc 中。
(注:一般都将rlogin关掉不用,应为它不安全,推荐telnet、ssh)
执行格式:telnet hostname 或 telnet IP address
Example:
%telnet doc
%telnet 140.109.20.251
(第二讲)
怎么样,unix的界面是不是很像DOS,枯燥、无味。不过,它还有自己的另一面,还没有看到呢,它也有window界面,叫xwindow.我们这里暂不介绍。真正的UNIX高手是很少用图形界面的,都是字符方式,所以,你必须习惯它。
好,这一讲,我们将真正用UNIX的命令来做我们想要做的事情,为了便于记忆,我们可以与DOS命令做比较。
文件或目录处理
==============
列出文件或目录下之文件名称
执行格式: ls [-atFlgR] [name] ( name 可为文件名或目录名称。)
Example :
ls 列出目前目录下之文件名。
ls -a 列出包含以.起始的隐藏档所有文件名。
ls -t 依照文件最后修改时间之顺序,依序列出文件名。
ls -F 列出目前目录下之文件名及其类型。"/" 结尾表示为目录名称,"*" 结尾表示为
执行档,"@" 结尾表示为 symblic link。
ls -l 列出目录下所有文件之许可权、拥有者、文件大小、修改时间及名称。
ls -lg 同上,并显示出文件之拥有者群组名称。
ls -R 显示出目录下,以及其所有子目录之文件名。( recursive listing )
目录的缩写
==========
~使用者 login 时的 working directory ( 起始目录 )
~username 指定某位 user 的 working directory ( 起始目录 )
. 目前的工作目录 ( current working directory )
.. 目前目录的上一层目录 ( parent of working directory)
$HOME 同 ~作用一致。
与DOS比较:DIR
技巧:
1、例出当前目录中的全部目录:ls -l|grep ‘^d'
2、ls -l == l
改变工作目录位置
================
执行格式:cd [name] :name 可为目录名称、路径或目录缩写。
Example:
cd 改变目录位置,至使用者 login 时的 working directory (起始目录)。
cd dir1 改变目录位置,至 dir1 之目录位置下。
cd ~user 改变目录位置,至使用者的 working directory (起始目录)。
cd .. 改变目录位置,至目前目录的上层( 即 parent of working directory)
cd ../user 改变目录位置,至相对路径 user 之目录位置下。
cd /../.. 改变目录位置,至绝对路径( Full path ) 之目录位置下。
与DOS比较:CD
技巧:返回到自己的主目录:cd ~/cd $HOME
建立新目录
==========
执行格式: mkdir directory-name
Exmaple :
mkdir dir1 建立一新目录 dir1。
与DOS比较:MD
重点与难点:一次建多个目录:mkdir a b c ...(a,b,c均为目录)
删除目录
========
执行格式: rmdir directory-name 或 rm directory-name
Example :
rmdir dir1 删除目录 dir1,但 dir1 下必须没有文件存在,否则无法删除。
rm -r/R dir1 删除目录 dir1,及其下所有文件及子目录。
与DOS比较:RD
难点与重点:rmdir -r a 与 rmdir -r a/*的区别。(前者连a本身也删除,后者a中
的内容都被删光,但a本身存在。
复制文件
========
执行格式: cp [-r] source destination
Example:
cp file1 file2 将文件 file1 复制成 file2
cp file1 dir1 将文件 file1 复制到目录 dir1 下,文件名仍为 file1。
cp /tmp/file1 . 将目录 /tmp 下的文件 file1 复制到现行目录下,文件名仍为
file1。
cp /tmp/file1 file2 将目录 /tmp 下的文件 file1 复制到现行目录下,文件名为
file2
cp -r/R dir1 dir2 (recursive copy) 复制整个目录。
若目录 dir2 存在,则将目录 dir1,及其所有文件和子目录,复制到目录 dir2 下,
新目录名称为 dir1,若目录 dir2 不存在,则将 dir1,及其所有文件和子目录,复制
为目录 dir2。
与DOS比较:COPY
重点与难点:1、将a目录极其所有文件拷到b目录中(b目录存在):
cp -r a b,结果是b中含有a.
2、 将a目录极其所有文件拷到b目录中(b目录不存在):
cp -r a b,结果是b中的内容与a中一样。
移动或更改文件、目录名称
========================
执行格式: mv source destination
Example:
mv file1 file2 将文件 file1,更改文件名为 file2。
mv file1 dir1 将文件 file1,移到目录 dir1 下,文件名仍为 file1。
mv dir1 dir2 若目录 dir2 不存在,则将目录 dir1,及其所有文件和子目录,移到目
录 dir2 下,新目录名称为 dir1。若目录 dir2 不存在,则将dir1,及其所有文件和
子目录,更改为目录 dir2。
与DOS比较:MOVE
重点与难点:目标文件的属性与源文件的属性一致。
删除文件
========
执行格式: rm filename (filename 可为文件名,或文件名缩写符号。)
Example :
rm file1 删除文件名为 file1 之文件。
rm file? 删除文件名中有五个字元,前四个字元为file 之所有文件。
rm f* 删除文件名中,以 f 为字首之所有文件。
与DOS比较:del/deltree
重点与难点:删除目录中的所有文件与该目录用rm -r/rm -R
文件名的缩写符号
================
? 代表文件名称中之单一字元。
* 代表文件名称中之一字串。
列出目前所在之目录位置
======================
执行格式: pwd
Example :
pwd
查看文件内容
============
执行格式: cat filename
Example :
cat file1 以连续显示方式,查看文件名 file1 之内容。
分页显示文件内容
================
执行格式: more filename 或 cat filename | more
Example :
more file1 以分页方式,查看文件名 file1 之内容。
cat file1 | more 同上。
查看目录所占磁盘容量
===================
执行格式:du [-sk] directory
du dir1 显示目录 dir1 的总容量及其次目录的容量
du -sk dir1 显示目录 dir1 的总容量,以k bytes为计量
重点与难点:du 显示的目录大小是以BLOCK为单位,换算成字节,乘以512。
du -sk显示的是以KB为单位的。
文件查找
===================
执行格式:find dir -name filename command
find . -name hello -print 寻找目前目录及所有的子目录内叫hello的文档.
find . -ctime +7 -print 找出七天内未被更动的文档
find . -size +2000m -print 找出大小超过2000 bytes的文档
find /tmp -user b1234567 -print 在/tmp下属於b1234567的文档
find . -name '*.c' -exec rm {} 删除所有的.c档
find . -name test/* -print 显示当前目录及其子目录文件名前4位为test的文件名
重点与难点:
1、寻找所有以core开头的文件并将其删除:
find / -name "core.*" -exec rm {} \;
2、统计当前目录中的文件个数:
find . |wc -l
3、查找123文件,并将错误信息写入error.out文件中:
find / -name "123" 2>error.out