Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2567220
  • 博文数量: 245
  • 博客积分: 4125
  • 博客等级: 上校
  • 技术积分: 3113
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-25 23:56
文章分类

全部博文(245)

文章存档

2015年(2)

2014年(26)

2013年(41)

2012年(40)

2011年(134)

2010年(2)

分类: LINUX

2011-06-26 23:01:46


UNIX系统基础notes

1.1什么是操作系统:
操作系统是一种特殊的用于控制计算机(硬件)的程序(软件)。

1.3unix 特性---unix提供的几种工具:
电子邮件(mail,mailx);
文字编辑(ed,ex,vi);
文本处理(sort,grep,wc,awk,sed);
文本格式化(nroff);
程序开发(cc,make,lint,lex);
源程序版本管理(SCCS,RCS);
系统间通讯(uucp);
进程和用户账号(ps,du,acctcom)

unix系统的流行原因:
unix 系统的完整性与灵活性使其能适应许多的应用环境。
众多的集成的工具提高了用户的工作效率。
能够移植到不同的硬件平台。

Shell是一个交互的命令解释器。

1.4UNIX的其他特征
层次化的文件系统;
多任务;
多用户;

第二章:登陆过程和普通命令
2.1一个典型的终端会话过程
为了能和计算机通信需要有以下条件:
·一个具有完全ASCII字符集的终端
·一条连接计算机的数据通信线路
·一个登陆ID(用户身份确认)
·一个密码

2.2登陆和退出
你的密码必须不小于6个字符
前6个字符中至少要有2个字母
前6个字符中至少要有1个不是字母

2.4命令行的格式
语法:
$ command [-option] [arguments]
example:
$ date
$ echo hi
$ echo 'hello
> world'

如果输入错误,可以按Ctrl+C终止

2.8联机手册
语法
man [-k/x] keword | command
$man date #显示date的man页
$man passwd # 显示passwd手册的第一节的内容
$man 4 passwd #显示passwd手册的第四节的内容

使用space 来浏览下一页
使用return来浏览下一行
使用q来退出man命令

2.10一些初级命令
id        显示用户和组的id号
who        识别正在系统中的其他用户
date        显示系统的时间和日期
passwd        给你的用户账号分配一个密码
echo        在你的屏幕上显示简单的信息
clear        清除终端屏幕
write        向其他用户的终端发送信息
mesg        允许or拒绝其他用户向你的终端发送信息
news        显示系统的新闻

eg:
$who
$who am i
$whoami
$mesg [y|n]
$mesg
$new [-a] [-n] [headline]
$news        #显示新的新闻
$news -a    #显示所有的新闻
$news -n    #显示新闻的标题

第三章 文件系统导航
完成这一节,你能做以下事情:
o 描述UNIX文件系统的布局
o 描述文件与目录的不同之处
o 顺利地操作一个UNIX 文件系统。
o 建立和删除目录
o 描述绝对路径和相对路径的不同之处
o 在可能的情况下,使用相对路径来简化你的输入。


3.1什么是文件系统
UNIX系统提供文件系统来管理和组织你的文件和目录。
文件通常是数据的一个容器,而目录是文件和(或)其他目录的容器。
3.2树型结构
目录结构能够用一个层次化的树型结构来表示。
树上的每一个分支可以是目录或文件。

绝对路径:
·给出文件或目录的位置的完全描述。
·通常由层次结构的顶端开始(根目录)
·通常第一个字符是/
·不依靠你当前在目录结构中的位置。
·整个目录结构只有一条路线

eg:
/tmp/f1
/home/user1/f1

相对路径:
·通常由目录结构中的当前位置开始
·不由/开始
·相对当前的位置只有唯一表示方法
·一般都比绝对路径要短
eg:

假设当前位置是/home:
user1/f1


如果系统有同名文件存在于不同的目录,而你又要使用相对路径来存储文件,
这时,知道你当前的位置,是非常重要的。

任何目录在创建时,两个条目会自动被创建,它们分别是点(.)和点点(..).
在使用相对路径的时候通常会用的这两个条目。
相对路径不仅仅能向下穿越文件结构,也可以使用(..),向上穿越文件系统。
点(.)代表当前目录,点点(..)代表上层目录。

3.6 基本文件系统命令
pwd        显示你当前在文件系统层次结构中的目录名
ls        查看当前目录下的文件和目录
cd        改变你当前在文件系统中的目录到另一个目录中去
find        查找文件
mkdir        创建一个目录
rmdir        删除一个目录

3.7 pwd--Present working Directory(呈现工作中的目录)
$pwd


3.8 ls -列出目录中的内容
语法
ls [-adlFR] [pathname(s)]
eg:
$ls
$ls -F #在目录后面加/,在可执行文件后加*
$ls -F /home
$ls -al
$ls -l memo

3.9 cd - Change Directory(改变目录)
语法:
cd path_name
cd ~     #回到home目录
cd /tmp

3.10 find
语法
find path_list expression
执行一个文件系统的有规律的查找;

find命令是在文件系统中执行自动查找的唯一一个命令。
这个命令执行非常慢,耗资源,不建议常用。

3.11 mkdir和rmdir 创建和删除目录
语法:
mkdir [-p] dir_pathname(s)
rmdir dir_pathname(s)

rmdir命令让你删除一个目录,被删除的目录必须是空的

第四章 管理文件
完成这一章,你能做以下事情:
· 使用普通的UNIX系统文件操作命令。
· 解释使用排队打印队列系统的作用。
· 认识和使用同系统交互的排队打印命令。
· 监视排队打印系统的状态。

4.1 什么是文件
一个数据的容器或者是一个设备的链接
每个文件有一个名字,文件可能保存有存储在磁盘上的数据。
有几种不同类别的文件:
    -普通文件
    -文本文件,数据文件,图片
    -可执行程序
    -目录
    -设备文件
简单的说,文件就是链接存储在一个存储设备(通常是磁盘)上的数据的一个名字。


4.2 我们能够对文件进行什么操作?
ls    查看一个文件的描述
cat    查看一个文件的内容
more    查看一个文件的内容,一次一屏
lp    打印一个文件
cp    制造一个文件的拷贝
mv    改变一个文件或目录的名字
mv    将一个文件移动到另外一个目录中去
ln     为一个文件创建另外一个文件
rm    删除一个文件

4.3 文件的描述
$ls -l
-rw-r--r--     1     tkchks group1 1024 May 15 00:33  filename
drw-r--r--     1     tkchks group1 1024 May 15 00:33  directory1

文件类型    权限     属主   组     大小 时间标志      文件名


一个文件有几个相关的描述,可以用ls –l 来显示这些描述
类型         普通文件或是特殊文件
权限或模式     文件的存取定义
链接数         与一个独立的数据集相关联的文件名的数目
属主         文件所有者的用户标识
组         文件存取得组的标识
大小        文件包含的字节数
时间标志     最后更改的日期

4.4 cat显示一个文件的内容
语法
cat [file..]
当cat命令不带任何参数使用的时候,它会等待你从键盘输入,就和你使用mail,write一样,
回车加,Ctrl+d用来结束输入,一旦你的输入结束,你输入的文本会在屏幕显示出来。

more 显示一个文件的内容,它一次只能显示一屏
tail 显示文件的末尾

语法
tail [-n] [filename]

4.7 排队打印缓冲系统
它是协调打印任务的一种工具。
允许用户:
 将文件发送到打印队列
 掌握打印机和打印队列的状态。
 取消任何打印任务。

4.8 lp命令
·打印文件排队
·分派一个唯一的ID
·许多参数在定制路由和打印的时候都是有效的。
语法:
lp [-dprinter] [-options] filename..
eg:
$ lp report
$lp -n2 memo1 memo2

4.9lpstat命令
语法:
lpstat [-t]
·lpstat 报告你已经送往打印机队列的打印请求。
·lpstat -t 报告调度表的状态

4.10 cancel

4.11 cp 拷贝文件
语法:
cp [-i] file1 new_fle 拷贝一个文件
cp [-i] file [file] dest_dir 拷贝一个文件到一个目录中去
cp –r [-i] dir [dir ] dest_dir 拷贝目录

4.12 mv 移动或是重命名文件
语法:
mv [-i] file new_file 重命名一个文件
mv [-i] file [file] dest_dir 移动一个文件到一个目录下去
mv [-i] dir [dir] dest_dir 重命名或是移动目录

4.13 ln—链接文件
语法
ln file new_file 链接到一个文件
ln file [file] dest_dir 链接文件到一个目录

4.14 rm – 删除文件
语法:
rm [-if] filename [filename] 删除文件
rm –r[if] dirname [filename] 删除目录

4.15 文件目录操作命令总结
ls –l    显示文件的特性
cat      在屏幕上联结和显示文件的内容
more     格式化和在屏幕上显示文件的内容
tail     显示文件的结尾部分
cp      拷贝文件或目录
mv      移动或重命名文件或目录
ln      链接文件名
rm      删除文件或目录
lp      将打印请求送到打印机排队打印
lpstat    显示打印缓冲区的状态信息
cancel    取消在打印队列中的打印请求

第五章―文件的权限和存取
目标
完成这一章,你可以做以下的事情:
· 描述和更改文件的属主和组。
· 描述和更改一个文件的许可权限。
· 描述和建立新文件的默认权限。
· 描述如何更改文件的用户和组的身份。

5.1文件的权限和存取
存取一个文件需要用户的身份,和与文件相关的权限。这一章会介绍如何存取文件
权限 理解文件的读,写,和执行权限
ls (ll,ls –l) 确定文件被赋予的存取权限。
chmod     改变文件的存取权限。
chown     改变一个文件的属主。
umask     改变默认的文件存取权限
chgrp     改变一个文件的组。
su    转换你的用户的身份。
newgrp     转换你的组的身份

5.3 存取权限的类型
文件和目录有三种类型的存取权限:
· read(读)4
· write(写)2
· execute(执行)1

5.6 umask -权限掩码
语法:
umask [-s] [mode] 用户文件创建模式掩码
例子:
原先默认的权限: rw- rw- rw-
设置默认权限: rw- r-- ---

5.7 touch - 更新文件的时间标志
语法
touch [-amc] file

5.10 su – 转变用户ID

第六章  shell基础
目标
· 完成这一章,你能够作以下事情:
· 了解shell的工作原理
· 描述用户登录的过程
· 描述用户环境变量和这些环境变量的功能。
· 设置和修改shell变量。
· 了解和修改一些特殊的环境变量例如PATH ,TERM等等。
· 为特定的应用定制用户环境变量。

6.1什么是shell?
shell是一个交互性命令解释器。
shell独立于操作系统,shell让你在命令行键入命令,经过shell解释后传送给操作系统内核执行。


6.4别名
别名就是命令的一个新的名称。使用别名可以缩短长命令行输入,创建新的命令,
或者用一种称为别名的新的命令来替代原始命令执行。

alias命令可以创建别名:
$ alias name=string
$ alias go='cd'
$ alias there=/home/user1/tree/sport
$ go there
在这里 name是要取的别名,而string是那么要取代的命令或字符串。
禁止一个别名,可以使用unalias命令,语法是:
unalias name

6.5 命令的历史机制
$ history -2 #列出最近输入的两个命令

6.6 重新输入命令
你可以通过简单的键入
r c
来从命令历史中运行任意的命令。
其中c代表命令号。
你也可以键入命令的第一个字母来执行你最近键入的命令。
$ r d  #假设最近执行了date命令
$ r 3

6.7 用户环境
用户环境记录了关于用户程序的线程的许多信息你的环境中的信息有:
· 你home路径的路径名
· 电子邮件的存放地址。
· 你所在地的时区
· 你登录的用户名
· shell查找命令的路径
· 终端类型
· 你的应用可能需要的其他东西。
$ env
以下是一些普通的环境变量和它们的含义:
TERM,COLUMNS,LINES    你使用的终端的类型。
HOME           你的home目录的路径
PATH           查找命令的位置的一个目录的列表。
LOGNAME         登录时使用的用户名
ENV,HISTFILE       特殊的POSIX shell 变量
DISPLAY         特殊的x windows 变量

shell变量赋值的语法是:
name=value
注意,在等号(=)的前后都没有空格。
区别shell变量的名称和shell变量的值十分重要。

6.12 shell启动文件
Korn(/usr/bin/ksh)         .profile                    .kshrc
Bourne(/usr/old/bin/sh)       .profile
POSIX(/usr/bin/sh)          .profile
任何想要定制由系统管理员提供的默认环境的用户都可以创建或修改.profile文件。

6.13 shell内部命令和unix命令
shell内部命令是内建在shell中的命令例如:  
  cd
 ls
 pwd
 echo
unix命令存在在/usr/bin下。例如:
 more
 file
一些“内部”命令同样可以作为“单独”的命令使用。
系统使用PATH变量来确定UNIX命令的位置

6.14 查找命令-whereis
6.14 查找命令-whereis
UNIX命令主要存在在四个目录:
/sbin,./usr/bin,/usr/local/bin,和/usr/contrib/bin。
Whereis 命令主要在这些目录下查找命令所在的位置。

第七章 Shell 高级特征
目标
完成这一章,你可以做到以下事情:
· 使用shell的替代功能,包括变量替代,命令替代,和波浪号替代。
· 设置和修改shell变量。
· 将局部变量传给环境。
· 使变量对子进程生效。
· 解释进程是如何被创建的。

在shell 中有三种类型的替代:
· 变量替代
· 命令替代
· 波浪号替代
替代的作用是加速命令行的键入和执行

7.2 设置Shell变量
语法: name=value
例子:
$color=lavender            给一个局部变量赋值
$count=3                给一个局部变量赋值
$dir_name=tree/car.models/ford   给一个局部变量赋值
$PS1=hi_there            更改环境变量的值
$set                  显示所有的变量和值

7.3 变量替代
每一个变量都有一个关联值。当使用“$变量名”来对这个变量进行引用时,
shell 会用变量的值来代替这个参数。这个过程被称为变量替代,
这是shell在执行输入的命令前执行的任务之一。
在shell 完成了所有的命令行的变量替代后,就会开始执行这个命令。

$file_name=$HOME/file1
$more $file_name


花括号被用来区分变量名和周围的文本。
$ echo ${file} and $file1 #寻找变量file,file1

$ my_ls =”ls –aFC”
$ $my_ls
./ file.1 tree/


7.5 命令替代

语法:
$(command)
例子:
$pwd
/home/user2
$ curdir=$(pwd)
$ echo $curdir
/home/user2

命令替代的另外一种格式是用单引号来环绕一个命令象:
‘command’
它和$(command) 是等价的,并且这是Bourne Shell认证的唯一的形式。

7.6 波浪号替代
$ echo ~
/home/user3

7.8 传送局部变量到环境
语法:
export 变量传递变量到环境
传送变量 color和 count 到环境的过程,执行了以下的命令:
$ color=lavender
$ export color
$ export count=3
$ export
export PATH=/usr/bin:/usr/ccs/bin:/usr/contrib/bin:/usr/local/bin
export color=lavender
export count=3

7.10 监视进程状态
$ ps –f
系统中的每一个进程在启动的时候都被赋予一个唯一的号码,这个号码被称为进程ID(PID)。
Ps 命令显示当前在你系统中运行(或睡眠)的进程的信息,包括每个进程的PID,每个进程父进程的PID(PPID)。
通过PID 和PPID,你能够追踪你系统中任何进程的体系。
Ps命令同时也会报告每一个进程的属主,终端号,和其他的有用的信息。

第八章 引用
目标
完成这一章,你能够做以下事情:
· 在命令行中使用引用机制来忽略特殊字符的特殊含义

8.1 介绍引用
在unix系统中,许多特殊字符对shell来说都有特殊含义,例如,空格是命令和参数的分割符。回车会发送给shell执行命令的信号,$符号被用来显示与变量名相关联的值。
在一些特殊的情况下,你不想要shell去解释这些特殊字符的特殊含义。你只要求字面上的意义。因此,unix必须提供一种机制来忽略或消除一个指定的字符的含义。这种机制就叫做引用。

8.2 引用符号
反斜杠 \
单引号  '
双引号 "
反斜杠消除紧跟在它后面的特殊字符的特殊意义。
单引号(')会消除特殊字符的特殊含义。在单引号包围之中的所有的特殊字符的特殊含义都会被忽略。单引号不能被忽略,它要被用来关闭被引用的字符串。
双引号(”)的包容性要差一点,大多数的字符都可以使用双引号来去除特殊含义。只有$符号(当其被用来作为变量和命令替代的的时候),和反斜杠例外。
你可以在双引号中使用反斜杠来除掉 $号的特别含义

$ ehco the value of \ $ colore is $color
$ echo 'the value of \$colore is $colore'
$ echo "the value of \$colore is $color"


第九章输入输出重定向
目标
完成这一章,你能够做以下事情:
· 改变UNIX命令的输出,使其输出到其它文件。
· 改变UNIX命令产生的错误信息的输出到其他文件。
· 改变UNIX命令的输入源。
· 定义一个过滤器
使用一些基本的过滤器例如sort,grep和wc。

第十章管道
目标
完成这一章,你能够做以下事情:
· 了解管道的用途。
· 建立一个管道,使其从一个命令获得输出,然后为另一个命令制造输入。
· 使用tee,cut,tr,more,和pr过滤器
阅读(1207) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~