Unix操作系统
第一章:
1, 为什么要学unix系统?
答:平台,环境。
2, 操作系统:
3, OS的功能:
a).内存管理:
b).CPU管理:时间片;
c).线程管理:多任务系统;
d).设备管理:
e).文件管理:
4,SUN:
1970年1月1日Unix诞生(使用汇编完成);
1972年C语言诞生;
1973年利用C语言重写了Unix;
1995年推出Java语言。
Java 的口号是:“一次编译到处运行!”
5, what can it do ?
服务:web server, mail server, database server等等。
应用:程序开发人员等等。
6, Solaris OS :
Kernel:内核;
管理设备,内存和进程;
控制系统文件和硬件系统之间的交互;
管理交换空间、后台程序、文件系统和其它功能。
Shell:外壳;人机界面即接口(可以改变)。
只是用户和Kerenl之间的接口,主要是解释和翻译工作。
在Solaris环境中存在着三种外壳:
bsh : #root
$user
csh : #root
%user
ksh : #root
$user
注: 事实上其它Unix/Linix类似的平台也是这样。
详解:
Bourne shell(bsh)
由Stephen Bourne为美国电话电报公司的Unix编写
最早和最广为人知的Unix外壳
最多的外壳脚本的通用命名者
Bourn-Again Shell(bash)
该外壳下的
超级管理员标识:#
用户标识:$
注: 改进版bsh,也很流行。
也即“命令行起始符”。
C shell(csh)
作为BSD Unix的一部分由Bill Joy——vi的作者——在加州大学伯克利分校创作
介绍了命令行的历史和一个和C编程语言类似的程序环境
同Bourne shell语法不兼容
tcsh,一个增强的但完全兼容的csh
该外壳下的
超级管理员标识:#
用户标识 :%
注: 改进版bsh,也很流行。
也即“命令行起始符”
File System:文件系统;
Windows系统中,每个分区都维护着自己的一棵树,并且互不干扰。
Unix系统:无分区的概念;
分析:
/dev/dsk/c0t0d0s0含义:
可以无限扩展文件(空间),但对逻辑没有影响。
挂接点(挂盘)可画图说明。
B就是挂接点。
区别:
Unix系统:逻辑结构包容物理结构。
Windows系统:物理结构包容逻辑结构。
8,path(路径):
Absolute Path(绝对路径): 指定一个文件或目录和/目录的关系
由一个斜线开始
如:/export/home/teacher/zhangsw/dir1/test.txt
Relative Path(相当路径): 指定一个文件或目录和当前工作目录的关系
不以一个斜线开始
如:~/dir1/test.txt
9,命令行语法:
Command [oprion(s)] [argument[s]]
命令名 选项 参数
在命令行的每个部分之间必须用一个空格作为一个分隔符
在一个命令行单行最多可以输入256个字符。
[]: 表示是可选项 ,注意:大小写敏感。
10,Unix的主要能力
多任务——能使内核同时分开多条通道处理
多用户——能使超过一个用户访问相同的系统资源
分布式处理——能使资源透过网络使用
第二章:
1,登录、退出:
登录
telnet 192.168.0.204
login: (用户名)
password: (用户密码)
注:telnet是远程登录,后面是用服务器IP地址,视具体情况而定。
这里不用加括号,直接敲,前面的登录和密码是由计算机输出的提示。
退出
logout或exit :
直接关机可能破坏一些文件系统(如盘同步写),因为文件映像表在退出时由内存写回盘上。
注:这两个命令的区别是:logout是退出与远程的连接;而exit只是退出当前的shell ;有时也可以用作退出操作系统。
如图:
2, 使用者帐户
/etc/passwd : 存放用户的注册信息。
查看用户的注册信息:
3. 密码的必要条件:
必须有6-8个字符的长度
至少包含两个字母和一个数字或特殊字符
必须和登录标识不同
必须和前一个密码有至少三个字符的不同
注:这些条件被计算机科学家证实是良好的设定口令习惯,可以避免结合穷举法、折半查找等多种算法的解密。
4. 改变你的密码
经常地改变你的密码有助于避免未授权登录
1 打出passwd命令
2 打出你当前的密码并按回车键
3 打出你新的密码并按回车键
4 再次打出你的新密码并按回车键
注:经常会出现超级管理员初始化普通用户名和密码时不符合命名规范但由于权限成功了,然后普通用户修改时系统报错的情况,这时可以使用passwd username命令,username部分替换成该用户名,可以解决。
第三章:
5. 基本Unix命令
6. clear命令
用途:清除终端屏幕
格式:clear
注: 通常是指显示器
7. pwd命令
用途:显示当前目录的绝对路径
格式:pwd
注:用户的当前目录,是可以改变的;
用户主目录(刚登陆进来时显示的目录)是系统自动分配的,但是不可改变的。
8. cd命令
用途:改变目录
访问绝对和相对路径皆可
格式:cd [directory_name]
示例:cd /home/test1/dir2 (绝对路径)
cd dir4/flowers (相对路径)
cd (返回到之前路径,当有跳转到其它目录下的操作时)
cd ~ (返回到用户主目录的绝对位置)
cd . (返回到当前目录)
cd .. (返回到上一级目录)
cd ../.. (返回上两级目录,相当于cd ..两次)
注: 示例命令中的方括号“[]”里面的部分为可选项,非必要。
9. ls命令
用途:显示一个文件和目录的列表
格式:ls -a 显示隐藏文件 隐藏文件:文件名以“.”开始
ls -F 显示文件类型 :
‘/’表示目录文件;
‘*’表示可执行文件;
(无) 表示文本文件;
ls -R 显示一个递归的列表(含子目录下的所有文件)
ls -t 显示文件按时间排序,由近到远;
ls -l 显示每个文件或目录的详细列表;
如图:
10. 文件权限:
r 读权限,
w 写权限,对目录来说,可生成文件与子目录或删除文件与子目录
x 执行权限,对目录来说,可查找该目录下内容
- 没有相应的权限
如 d rwx r-x r-x
文 拥 同 其
件 有 组 它
类 者 者 人
型
其中:拥有者-生成文件时登录的人,权限最高,u表示;
同组者-系统管理员分配的同组的一个或几个人,g表示;
其它人-除拥有者,同组者外的人,o表示;
文件类型: ‘-’表示普通文件;
‘d’表示目录;
‘l’表示链接文件。
11. chmod命令
用途:改变权限
语法格式:
符号模式使用字母和符号的组合
示例:$chmod g-r dante (将文件dante同组者的读许可除去)
$chmod u+x go+r dante (为文件dante的拥有者添加执行许可)
$chmod a=rw dante (给文件dante所有用户添加读写许可)
解析:
12. 八进制模式使用八进制数字
基础表示:
4 读
2 写
1 执行
派生表示:
可以得出规律:基础表示都是2的n次幂,派生表示由基础表示读写执行权限组合而得。
示例:
$chmod 555 dante (文件dante的权限改为r-x r-x r-x)
$chmod 644 dante (文件dante的权限改为rw- r-- r--)
$chmod 755 dante (文件dante的权限改为rwx r-x r-x)
13. touch命令: 创建新文件(相当于windows中的新建命令)。
用途: (1),创建一个新文件(如果:文件不存在就会创建一个新的文件);
(2),更新一个已经存在文件的最后一次修改时间;
格式:touch 文件名
touch file01
14. mkdir命令: 创建新目录
用途:用相对或绝对路径新建目录均可
必须拥有适当的建立目录的许可
格式:mkdir [-p] 目录名
示例:
$mkdir dir1/weekly (前提:相对路径dir1,已存在)
$mkdir dir1 dir2 dir3 (在当前目录下创建三个并列的目录)
$mkdir ~/games (在当前主目录下建立文件夹games)
$mkdir -p practice/dir1/admin (如果上级路径不存在,全都新建)
15. cp命令:
用途:复制文件
格式: cp [-i] source_file destination_file
cp [-i] (一个或多个)源文件 目的文件(或目录)
示例:$cp nuts flavors (将文件nuts复制,副本名为flavors)
$cp nuts flavors dir2 (将文件nuts、flavors复制到目录dir2中去)
$cp -i beans nuts (将文件beans复制,副本名为nuts,如果加上了‘-i ’选项的话,在复制过程中系统就会与用户交互提问; 如果与目的文件同名的文件存在,源文件的覆盖动作是否执行; 如不加-i选项则不做提示直接覆盖)
用途:复制一个目录及其内容到另外的目录
格式:cp [-r] source_directory(s) destination_directory
cp -r[i] (一个或多个)源目录 目的目录
示例:$cp -r dir3 dir4 (将目录dir3复制到目录dir4)
$cp -r dir1 dir4 /tmp (将目录dir1和dir4复制到tmp目录下,绝对路径)
16. mv命令:
用途:移动或更名文件和目录
格式:mv [-i] 源 目标文件(或目录)
示例:
$mv nuts brands (将文件nuts更名为brands,相当于重命名)
$mv /export/home/user2/dir1/brands ~
(将文件/export/home/user2/dir1/brands移动到以前的路径)
$mv dir5 dir6 (将目录dir5更名为dir6)
注:-i选项和cp命令中的解释一致;
17. rm和rmdir命令:
用途:删除文件
格式:rm [-i] (一个或多个)文件名 (‘-i ’选项删除前询问?)
示例:$rm file1 file2 file3 (将文件file1、file2、file3删除)
$rm -i file4 (将文件file4删除,过程中交互式提问确认删除)
用途:删除目录
格式:rmdir (一个或多个)空目录名 (删除空目录)
rm -r (一个或多个)目录名 (删除非空目录)
示例:$rmdir empty_dir (将空目录empty_dir删除)
$rm -r dir6 (将目录dir6删除)
$rm -ir ~/dir7 (将以前路径下dir7目录及其内容删除,过程中交互式提问确认删除)
注:rmdir只能在目标目录为空时才能执行,这里指的都是内容为空的目录,否则要用rm -r递归删除目录及其内容。
18. ln命令:建立一个链接文件(指向另外一个文件的文件)。
用途:给文件或目录建立替代名称或别名
(1),软链接:
相当于windows中的快捷方式,自己独立的数据空间,系统就会为它分配一个inode号,只是它的内容是另一个文件的文件名 (字符个数)。
如图:
文件接点编号:inode(12432)------>>>对应着磁盘的一个区域。
格式:ln [-s] 源文件 目标文件
ln [-s] source_file target_file(为源文件创建一个软链接)
ln -s xxx.txt xxx.ln
(2),硬链接:
并没有创建新的文件空间和分配新的inode号,只是创建了一个文件名到inode号的对应关系。
如图:
硬链接数:
文件: 有多少个文件名与这个文件的inode号关联。
目录: 该目录下的子目录数+2。
查看文件的inode号:ls -i (根据inode号可以看出硬链接就是同一个文件)
删除一个连接:rm abc.ln
注:如果一个文件的硬链接数大于1的话,我们删除文件时,实际上只删除了指向此文件的一个硬链接。
19. man命令:手册(Manpages)
用途:用来查找用户所需要的命令的用法和解释说明;
格式:man 名字
man -k 关键字
在Manpage中滚动
空格键 一次滚动手册一页
回车键 一次滚动手册一行
b 移到上一屏
f 移到下一屏
q 退出手册
/string 查找含有字符串的信息
n 寻找一下个出现的字符串
第四章:
20. 保留字符
它们是键盘上的对外壳有特殊的意义的字符
举例: ; $ % > ! ~ * ? [] < >> |
点(.)和下划线(_)除外
21通配符:
21.1 : 星号(*)
代表0到多个字符
$ls d* (列出名字以d开头的所有文件)
21.2 : 问号(?)
代表单个字符
$ls dir? (列出名字以dir开头,最后一个字母不明的所有文件)
$ls z?.txt (列出名字以z开头,最后一个字母不明的文本文件)
21.3 : 方括号([])
匹配一组或范围中的字符到一个单个字符
$ls [b-f]*
21.4 : 分号(;)
输入多个命令在同一命令行(以分号为分隔符)
cd;ls(无论当前目录在哪,都会显示根目录的内容。)
date; cal; pwd (当前的服务器系统时间,当前月份的日历,
当前目录的绝对路径。)
21.5 : 尖括号(>,<,>>)
用(>)来将一个命令的输出重新定向到文件中而不是屏幕上;
用(<)来将一个命令的输入从重新定向到文件中而不是键盘上;
用(>>)追加模式输出重定向;
$mailx openlab@tarenalab2 < dat.txt (从dat文本文件中输入到邮箱openlab@tarenalab2,即将文本文件作为邮件发给该邮箱)
$cal 5 2003 > may.june (显示2003年5月的日历,并将结果输出到文件may.june中且不在屏幕上显示)
$cal 6 2003 >> may.june (显示2003年6月的日历,并将结果添加到文件may.june中)
如:cal 10 2007 > a.txt
cal 5 2007 >> a.txt
21.6 : /etc : 设备文件:
**********************************
* 设备文件: *
* /dev/stdin : 标准输入设备 *
* /dev/stdout : 标准输出设备 *
* /dev/null : 空设备 *
**********************************
如:
cal 8 2008 > /dev/null(相当于把这些内容丢掉。)
cp /dev/null abc.txt (相当于把abc.txt文件清空了。)
cp /dev/stdin first.txt(与键盘输入联系起来)
ctrl+D(组合键来结束输入)
21.7 : 管道(|)
把前一个命令的输出并把它作为下一个命令的输入;
如:
ls -l /etc | more (列出/etc下的文件和子目录,并不做显示,
而是交给more命令去显示。)
注: 这和带分号的多个命令同一行的区别在于,分号分隔多个相互无关的命令, 而管道的命令之间是有关的,后一个命令的执行依赖于前一个命令的结果。.
第五章:
22. cat命令:将一个文本文件的内容显示在屏幕上,并且以不分屏的形式显示文件内容。
cat /dev/null > ~/b.txt (将一个文件的内容不显示在屏幕上而输出到另外一处的文件中;)
cat /etc/passwd | awk -F: '{print $6}' \ | sort > ~/userinfo---->awk
(文本处理命令;“:”冒号是定义的一个分隔符;‘ ’单引号的内容表示所要做的操作;print输出;$1:表示第一部分;$6表示第六部分;“\t”表示制表符(8个字符的长度),跳到下一个制表位置;‘\’表示续行符;“sort”表示对结果按行排序。作用:把passwd文件中内容:用户名和用户主目录,提取出来并按字母顺序排序输出。)
23. more命令:一次显示一个文本文件的内容一屏幕
more (一个或多个)文件名
空格键 一次滚动手册一页
回车键 一次滚动手册一行
b 移到上一屏
f 移到下一屏
h 显示more功能的帮助页面
q 退出返回外壳提示
/string 查找含有字符串的信息
n 寻找一下个出现的字符串
24. head & tail命令:
head [-n] filename
tail [-n] filename
如: head -20 hello.txt
tail -20 hello.txt
注意:‘-20 ’是指示要显示文件多少行,而不要理解为那是个负号。
第六章:
25. VI文本编辑器:
Vi的键盘使用图:大家按提示操作,会打开一个页面,然后保存就可以。
vi的三种模式:
26. 调用vi
vi 文件名 打开或新建一个文件
vi 打开一个新的以后命名的文件
view 文件名 以只读方式打开一个文件
27. 位置
向上 k
向下 j
向左 h
向右 l
注:均指控制光标
28. 输入
i 在光标当前位置插入
a 在光标所在位置后插入
l 在行头插入
A 在行尾插入
o 在光标所在行下插入一空行
O 在光标所在行上插入一空行
<Esc> 退出插入状态
29. 删除文本
x 删除一个字符
dw 删除当前词
3dw 删除三个词
dd 删除当前行
5dd 删除五行
:5,10d
30. 撤消和更改文本
r 替换一个字符
cw 替换一个单词
cc 替换一行
C 替换从光标至行尾
J 把当前行和下一行连起来
u 废除刚才的编辑操作(即undo)
~ 改变大小写
31. 复制和粘贴文本
yy 拷贝行(或Y)
yw 拷贝词
p 当前行下粘贴
P 当前行上粘贴
:1,2co3 拷贝行1,行2在行3之后
:4,5m6 移动行4,行5在行6之后
32. 保存和退出文件
:w 存盘
:w 新文件存成新文件
:wq 存盘退出vi(或ZZ,或:x)
:q! 强行退出不存盘
33. 高级编辑选项
:set nu 显示行代码(:set nonu 隐藏行号)
:(number) 光标停在指定行,如:21或21G
G 到文件尾(1G到文件头)
/串 从当前行往下查找
?串 从当前行往上查找
n 查找继续
:1,$s/旧串/新串/g 替换全文(或:%s/旧串/新串/g)
:r<文件名> 在光标所在位置插入另一个文件
第七章:
34.Id命令:查看注册用户自己的信息。
显示符合有效用户ID的用户名称
id [选项]
id 姓名
id root
id -a 姓名(查看该用户所属的所有的组)
35. who命令:显示关于登录到本地系统的所有当前用户的信息
who:tangliang pts/233 5月28日 10:36 (192.168.17.53)
用户名 伪终端号 登陆时间 本地ip地址
36. w命令:显示关于登录到本地系统的所有当前用户的更详细的信息
w: 下午12点23分 运行9天 1:53,232 用户,平均负载:5.23,2.34, 0.21用户名 伪终端号 登陆时间 闲置 JCPU PCPU 正在执行的命令
如:
37,who am i命令:是显示关于你真实用户ID的信息
如:
who am i:zhangsw pts/67 6月 3 17:36 (192.168.0.225) 用户名 伪终端号 登陆时间 本地ip地址
图和who的命令很相似。
38, whoami命令:只显示有效用户的登录名称
如: whoami : zhangsw
39. users命令: 查看登陆的用户信息。
users:当一个用户名同时出现时表示多个终端使用同一个用户名登陆。
如:users : zhangsw
40.find命令:寻找基于指定标准的文件,然后对匹配的文件执行一个命令
find path expression [action]
指定路径 查找条件 执行的动作
find / -name perl(‘-name’按文件名来查找)
find . -mtime -10 –print (‘-mtime’按文件最后一次修改时间来查找,
‘-10’:表示10天以内的文件;
‘+10’:表示10天之前的文件;
‘10’:刚好那天修改的文件。)
find /etc -user 0 -size +400 –print (‘-user’:按文件的拥有者查找,uid为0的;‘-size’:按文件的大小查找,大于400block(1block=521Byte;1block=0.5k))
find ~ -perm 777 > ~/holes (‘-perm’按照文件的权限查找;)
find /export/home -type f -atime +365 -exec rm {} \;
(‘-type’按类型查找;‘-atime’按最后一次访问时间查找,超过365天的文件;‘-exec’要执行的动作)
‘-name’按文件名来查找
‘-mtime’按文件最后一次修改时间来查找
‘-user’:按文件的拥有者查找
‘-size’:按文件的大小查找
‘-perm’按照文件的权限查找
‘-type’按类型查找
‘-atime’按最后一次访问时间查找
如:find ~ -mtime +1 -size -200 -print (在所有目录下查找大小小于100k,
最后修改时间是一天前的所有文件。)
注意:也可以使用通配符。
41. grep命令:寻找一个包含有一个特定的文本字符串的文件,并把所有包含该部分的行打印到屏幕上
grep [选项] 字符串 文件名
-i 当搜索时忽略字符串的大小写
-v 寻找所有不匹配字符串的行(反向查找)
经常与管道连用。
如:
ls -la | grep -i 'sep 1'
who | grep tangliang
who | grep zhangsw
$grep root/etc/passwd
$ls -la | grep -i 'Sep 1'
注意:大小写敏感。
42. wc命令:统计文件的单词个数,行数和字符数。
wc [option] (一个或多个)文件名
-l 算行数
-w 算单词数
-C 算字符数
$grep "\" ~/docs/new*.txt | wc –l
who | grep 192.168.17 | wc -l(查找在192.168.17这个网段上的在线人数。)
43. diff命令:
寻找文本文件之间的差别
diff [选项] 文件1 文件2
44. df命令和du命令:
df 显示空闲的磁盘块和文件数目
$df -k :
文件系统名字 总的空间 已用大小 可用大小 使用百分比 悬挂点
du 统计磁盘利用率(列出当前目录下,或子目录所占的磁盘情况;)
$du -sk*
注意:diff,df,和du命令不常用,所以不做详解。
45. ps命令:显示当前用户在系统中启动的进程。
/usr/bin/ps [选项]
-e:显示所有正在运行的进程。
-f:以完整的形式列出当前用户启动的进程。
-U:列出由这个用户启动的所有进程。
ps
ps -e
ps -f
ps -ef :
再如:ps -ef | grep inetd
结果:root 161 1 0 5月 11 ? 0:09 /usr/sbin/inetd -s
zhangsw 5972 5860 0 18:33:59 pts/67 0:00 grep inetd
ps -ef | gerp 进程号
注意: 所有进程是树状结构:父 -----> 子。
46. kill命令:结束你无法正常方式退出的不想要的命令处理
kill [-signal] process-id
kill 12932
kill -9 12321 (‘-9 ’是系统也无法截获的强信号)
ctrl+c信号:终止信号。
注意下面的命令和解释:
sleep 1000&
&:让进程在后台运行,不占据控制台。
[1] 22767
ps -f(处于sleep状态)
kill 22767
ps -f(22767已经终止)
kill 22460(-csh)
ps -f(杀不掉-csh进程)
kill -9 22460
失去主机的连接。
pkill 进程名
pkill sleep
$sleep 100&
$pkill sleep
注: 休眠,暂停进程,一会儿(一般以毫秒为单位)继续。
47. which命令:
在你的寻找路径基础上显示通向一个可访问的命令的路径名
如果该路径名无法显示或不正确,则按照你的要求,修改路径变量
$which vi
48. whereis命令:
寻找所有系统中经常被运行的文件所在的目录
寻找所有存放需要的命令的目录,包括适当的说明页
/usr/ucb/whereis
$whereis vi
49. whatis命令:
显示一个单行的关键字的摘要
使用/usr/share/man/windex数据库,由命令catman建立。
$whatis vi
50. jobs命令:查看用户正在执行的作业。
fg %n 在前台运行一个作业
bg %n 在后台运行一个作业
kill 作业ID %n 放弃指定的后台作业,必须是指定的
Control -c 取消前台作业
Control -z 挂起前台作业
stop 挂起后台作业
$/usr/open*/bin/cmdtool&
注意:kill 和 ctrl+c的区别:
Kill:终止或者杀死后台的进程;
Ctrl+c:终止或者杀死前台的进程;
stop 和 Ctrl+z的区别:
stop: 暂定后台的进程;
ctrl+z: 暂定前台的进程;
第八章:
51. ping :检查网络是否连通;
ping ip地址
52, ifconfig :查看ip 地址;
53, telnet :远程登录服务器模拟一个终端允许你连接到并工作在一个远方的系统上使用TCP/IP连接到其它系统 ;
telnet 站点名 [端口号]
54,rlogin :可以重新连接到另外机器上去;在其它工作站上建立一个远程登录会话
rlogin 站点名
---------------------------------
rlogin 192.168.0.39 -l openlab
who am i
---------------------------------
55,ftp命令:为了下载文件建立的服务器和站点,有时供应一个匿名ftp帐号
ftp 192.168.0.23
name:
password:
ftp>lcd f:\ : 改变本地的目录。
ftp>cd dir1 : 改变远程的工作目录。
ftp>dir : 显示远程的机器的目录内容。
ftp>get : 下载文件。
ftp>put : 上传文件。
ftp>mget,mput : 一次上传或下载多个文件。
如:
ftp>put Test.java
ftp>get abc.txt
ftp>!time
ftp>bin或asc : 转换什么模式传输。(是否为文本格式)
ftp>bash : 显示传输的字节数。
ftp>prompt : 设置交互模式,
ftp>bye : 关闭ftp连接。
56,mailx命令:
mailx :查看邮箱中有几条未读邮件。
mailx openlab@tarenalab3
命令:
?delete 删除消息
?help 打印这个帮助消息
?mail 用户的邮件地址 :给指定用户发信(ctrl+d 退出)
?next 到达并打出下一条消息
?print 打印消息
?quit 退出保留未读消息
?reply 回复消息(仅)给作者(ctrl+d 退出)
?undelete 恢复删除的信息
? 邮件编号 :查看第几个。
在/export/home/tangliang/mbox中保存2条信息
在/var/mail/tangliang 中保留3条消息
/export/home/tangliang/mbox :保存了已查看过的邮件。
/var/mai :是目录名。
/zhangsw : 是文件名(以用户名作为文件名),用来存放新收到的邮件。
发邮件步骤:mailx changxhao@192.168.0.20
subject:主题名
正文
ctrl+D (保存并发送)
57,write,wall,talk命令:
write:
使用步骤:write 用户名
消息;
talk :
步骤:talk 用户名
会出现分屏显示:上部是要发送的信息;下部是接受到的信息;
就可以和对方单独会话了。
wall : 不推荐使用,这里不做解释了;
mesg -y|-n : 可以用来关闭消息;
第九章:
58. shell脚本:(相当于windows系统中的批处理 .bat 文件)
步骤如下:
第一步编辑:
vi /tmp/a.tx
#!/bin/sh : 说明用哪种shell来解释文件。
pwd
cal
date
保存
第二步改变权限:
chomd +x /tmp/a.sh :修改文件权限,加上可执行权限。
第三步执行:
shanghai%a.sh
59 . crontab命令:设置一个系统调度计划。
crontab -l : 列出当前用户调度计划。
crontab -e : 编辑一个调度计划,自动调用一个环境变量EDITOR(代表系统
默认的编辑器,默认为:vi 编译器);
crontab -r : 删除用户创建的调度计划。
crontab -l :查看所有的调度计划;
crontab -e :编辑一个新的调度计划;
setenv EDITOR vi :设置默认的编译器;
echo $EDITOR
crontab -r
设置时间和要执行的文件名。
* * * * * /temp/test.txt
分钟 小时 日期 月份 星期
每隔一分钟执行一次。
0,30 8-17 * * 1-5 /temp/test.txt
每天的早8点到晚五点,每半个小时执行一次。
系统把所有的执行结果发email给用户。
步骤:
*********************************
setenv EDITOR vi
echo $EDITOR
crontab -e
* * * * * ./dir1/test.txt
Wq(保持)
mailx
crontab -r
*********************************
vi .login --->welcom tarena
--->setenv LANG zh
vi .logout--->goodbye thank you
vi .cshrc --->umask 33
*********************************
第十章:
60. 初始化文件概述 : 初始化文件包含当外壳开始时执行的命令和变量设置;
(系统启动时执行的文件)
两级:
系统通行 -放在/etc文件夹里;
用户指定 -放在用户自己的主目录下;
外壳 系统通行(先读,全局) 用户指定(后读,局部)
Bourne 1./etc/profile 2.$HOME/.bash_profile
Korn 1./etc/profile 2.$HOME/.profile
C 1./etc/profile 2.$HOME/.login
3.$HOME/.cshrc
4.$HOME/.logout
61. 初始化文件的模板
/etc/skel/local.profile
/etc/skel/local.login
/etc/skel/local.cshrc
/etc/skel/local.logout
注意:这些文件的位置因系统的不同而不同;
62. 初始化文件的内容
设置默认文件新建许可
设置环境变量
设置默认提示
为默认的命令路径设置命令路径
为默认的终端类型设置变量TERM
帮你检查邮件
设立用户命令
63. 环境变量
SunOS 5.x 系统软件提供了若干默认环境变量其值可以定制
临时改变环境变量在命令行,只影响当前外壳
通过更改初始化文件可以永久修改环境变量
64. set和setenv :只影响当前的shell ;
csh中设置(定义)环境变量的语法:
1,set xxx = xxx
2,setenv xxx xxx
set MYNAME = zhangsw (局部有效)
echo $MYNAME
set MYADDRESS = shanghai (局部有效)
echo $ADDRESS
或者
setenv MYNAME zhangsw (全部有效)
echo $MYNAME
setenv MYADDRESS shanghai (全部有效)
echo $ADDRESS
区别:setenv在当前shell和子shell中有效,即:全局变量。
set只在当前shell有效,即:局部变量。
bash中设置(定义)环境变量的语法是直接写环境变量名字,后面紧跟变量
的值,一定要用‘=’连接起来:
MYNAME = zhangsongwei (局部有效)
MYADDRESS = hshanghai (局部有效)
= = = = = = = = = = = = = = = = =
设置环境变量:
bash下
设置1:变量名=变量值 //临时起作用,不需要使用set.切记不要使用
引用的格式(如:PATH=$HOME/bin,这样是不对的,只能使用
PATH=/bin,把$HOME去掉。)
等价于:export 变量名=变量值
删除:unset 变量名
设置2:$HOME/.bash_profile //source之后会对所有的bash起作用。
csh下
设置1:set 变量名=变量值 //临时起作用
setenv 变量名 变量值 //全局作用,可以影响到下一个开启的
子shell。
删除: unsetenv 变量名
设置2:$HOME/.cshrc // source之后会对所有的csh起作用。
= = = = = = = = = = = = = = = = = = =
65. 在初始化文件设置命令的搜索路径:
PATH :告诉系统在哪些目录下搜索命令的可执行文件。
csh中: set path = (... ... ...)
set path = ($path pathname ...)--->引用path的原值,
追加新的路径,不会修改原来的值。
如:
-------------------------------
whereis ping
set path=($path /usr/sbin)
-------------------------------
setenv PATH path1:path2:path3
bash中: PATH = $PATH:path1:path2:path3
export PATH
(vi .bash_profile --->ZZ--->source .bash_profile)
66. shell中的几种初始化文件:
vi .login
vi .logout
vi .cshrc
如:
************************************
vi .login--->echo “welcom tarena”
--->setenv LANG zh
vi .logout--->echo “goodbye thank you”
vi .cshrc--->umask 33
************************************
67. 在初始化文件设置创建新文件时的权限:
文件:644 666(文件完全权限)rw-rw-rw-
目录:755 777(目录完全权限)rwxrwxrwx
权限掩码:22(要掩盖掉同组人和其他人的写权限)
777---->755
666---->644
umask 22
umask
22
umask 33
umask
33
rw- rw- rw- 110 110 110
--- -rw –rw 000 011 011
--------------------- ----------------------
rw-r--r-- 110 100 100
777---->744
666---->644
68. 在初始化文件设置提示符:
csh中:
set prompt = "[hello,zhangsw]"
set prompt = "`hostname`:$cwd%"
bash中:
PS1 = "`hostname` $ "
export PS1
69. alias(别名)命令: 给已经存在的命令启另外一个别名;
alias 别名 值
%alias h history
%alias c clear
%alias home 'cd;ls'
%alias ls 'ls -l'
%alias copy 'cp -i'
%alias 显示当前的别名列表
%unalias copy 取消指定别名
70. history(历史)命令 :
显示以前在C Shell输入的命令到屏幕
set history=30
%history
%history 5
%!n
%!!
%^e^d
重点:
1,基本文件/目录
2,vi
3,telnet,ftp
4,初始化文件