首页 > IT杂谈 > Unix入门指南

Unix入门指南

2007年9月29日 发表评论 阅读评论

1.主流UNIX系统:Solaris(SUN)、AIX(IBM)、HP-UX(HP)。

2.学习环境:SUN OS 5.9

3.UNIX系统组成:Kernel(管理硬件、进程、文件系统等)、Shell(承担解释器interpretor、翻译器translator的作用)、FileSystem(文件系统)。

4.目录:
根目录(/)
bin目录(存放基本命令的可执行二进制文件)
etc目录(存放所有管理文件和信息)
usr目录(存放各种应用程序)lib(存放各种函数与程序库)
dev(存放各种设备驱动程序)
boot(启动相关)
root(超级用户主目录)
home(其他用户的主目录)……

5.SHELL分类:Bourne Shell(sh)、C shell(csh)、K shell、Bash shell(bash)、T csh。

6.注意点:UNIX系统大小写敏感(case sensitive)。

常用SHELL命令

1.df:[-h -k]查看磁盘状况
Unix中的硬盘分区(slice)与windows不同,以标记s0-s7区分(其中s2不可用),如:c0t0d0s0
-h以人类可识别的容量标记,如K,M,G等。
-k全部以KB标记。

2.password:修改用户密码
重要文件:/etc/password /etc/shadow

3.id:查看用户UID,GID

4.pwd:当前目录

5.cd:改变目录
cd ~XXX(到环境变量PATH下寻找XXX目录,并将当前目录改变到寻找到的目录下)
cd ~(到用户主目录)
cd (到用户主目录)
cd ..(到上级目录)

6.ps:查看进程
/usr/bin/ps -ef查看详细进程状态
/usr/bin/ps -al更详细(包括进程类型)
/usr/ucb/ps -auwx更详细

7.ls:[-l -a -t -R -F -i]列出目录内容
-l详细内容(包括文件类型、权限、链接号、组、大小、修改时间、文件名)
-a所有文件
-t以时间降序排列
-R子目录全部展开
-F文件类型标记(/表目录、*表可执行、@表链接)
-i查看inode(inode是unix系统文件磁盘管理的唯一标记,即每个文件在磁盘上的inode唯一)

8.chmod:改变文件权限
用ls -l列出的文件权限如: – rwx r– r–
第一个“-”表示文件类型(-表示文件、d表示目录……)
接下来的9个符号分为3个一组,第一组表示文件拥有者(user or owner)的权限、第二组表示同组其他人权限、第三组表示其他人权限。
r 可读(1)
w 可写(1)
x 可执行(1)
– 无权限(0)
每一组可以用一个八进制数表示,如:rwx 即 111 即 07 (以0开头的数表示八进制,0x开头表示十六进制)
chmod 可以改变权限数
格式如下:
chmod 744 file1 将file1的权限改为 rwx r– r–
chmod u+x,g-w,o-r file2 将file2的权限改为第一组加上x,第二组减去w,第三组减去r
chmod a+r file3 将file3的权限改为全部加上r

9.touch:建立新文件、或者将旧文件的access time和modification time更新

10.mkdir:建立新目录
mkdir -p dir/dirchld/dirgrandchld 可用-p建立子目录的子目录

11.rm:删除文件或目录
rm -f 强制删除不提示(只要对所在目录有w权限即可删除,不需对文件有权限)
rm -i 提示
rm -r 删除目录
rmdir 删除目录(只能删除空目录)(不常用)

12.mv:移动文件或修改文件名字
mv source targetname
mv source targetdir

13.cp:复制文件或目录
cp source targetfile 将source拷贝一份命名为targetfile
cp source targetdir 将source拷贝一份到targetdir中
cp -r 拷贝目录

14.ln:建立链接
ln -s 建立软链接(软链接相当于快捷方式)
注意:inode表->datablock

15.man:帮助
man -k 模糊查找
man出来的文档,1表示系统命令,2表示系统调用,3C表示C语言标准库函数

16.Metacharacters(元字符) 在shell中有特定含义的字符

17.重定向符号:> >> < 18.管道(pipe):| 把前一个命令的输出作为后一个命令的输入(Unix命令强大的工具) 19.tee:分流命令 ls -l | tee -a ls.txt 屏幕显示,且存储到ls.txt中 20.cat:查看文件 21.head/tail:查看文件头/尾 -n 行数 tail -f 可以实时监控文件末尾 22.more:查看文件(或用管道使用,分屏显示) 23.users:查看登陆用户 /usr/ucb/users 24.who&w:查看登陆用户 25.who am i:查看登陆ID 26.whoami:查看有效ID(可以用su改变) /usr/ucb/whoami 27.find:查找 find 目录 -name -mtime -atime -user -size -perm -type find删除法(注意格式固定)(rm {} \;): find 目录 -name file1 -exec rm {} \; 28.grep:匹配特定字符串(常用来管道过滤) -i 忽略大小写 -v 反匹配(不包含) 29.xargs:切割 若搜索出来的文件多于1个,用管道xargs将搜索的结果分割成单个文件执行某个命令 ls file* | xargs rm 30.wc:统计出现次数 -l 行数 -w 词数 -C 字符数 31.du:查看目录或文件占有空间 -h -k -sh 当前目录占用的空间 32.kill:关闭进程或向某个进程发送信号(signal) kill pid kill -9 pid 可以强制杀死所有有权限的进程 pkill 进程名 pkill -HUP 进程名 (-HUP表示先关闭,再重启) 33.jobs:查看正在进行的工作 jobs -l 命令后加&可以直接后台运行 fg %n 将代号为n的工作前台运行 ctrl-z 挂起某个前台运行的工作 bg %n 将挂起的某个工作后台运行 stop %n 挂起某个后台运行的工作 kill %n 结束某个后台运行的工作 ctrl-c 结束某个前台进行的工作 34.vi/vim:最重要的UNIX文本编辑器 vi分为三个模式:Command mode, Entry mode(编辑状态,此时按Esc退回到Command mode), Last-line mode
进入vi后,默认的是Command mode, 此时的命令有:
i 当前位置插入(进入Entry mode)
a 当前位置后插入(进入Entry mode)
o 在光标所在行下插入一行(进入Entry mode)
b/B 后移光标
w/W 前移光标
$ 行尾
^ 行首
G 文件尾
5G 到第5行
L 到屏幕最下
H 到屏幕最上
M 到屏幕中间
x 删除一个字符
dd 删除当前行(dd的内容进入粘贴板,可用来剪切)
5dd 删除5行
r 替换一个字符
cc 替换一行
C 替换从光标到行尾
yy 拷贝行
5yy 拷贝5行
p 粘贴粘贴板中的内容
J 连接当前行和下一行
/string 查找字符串
u 废除刚才操作
: 进入Last-line mode

下面介绍Last-line mode下的命令:
:set nu 显示行号
:set nonu
:5,10d 删除5-10行
:1,$d 删除所有行
:1,3co5 将1-3行拷贝到5行后
:1,3m5 将1-3行剪切到5行后
:1,$s/stringold/stringnew/g 将所有行中的旧字符串替换为新字符串
:nohlsearch 查找过的高亮显示去掉(只起一次作用)
:q! 强制退出vi,不存盘
:wq 存盘退出vi
:w newfilename 另存为

35.crontab:自动调度(定时执行某个程序)
crontab -l 显示调度表
crontab -e 编辑一个调度
crontab -r 删除所有调度
编辑调度时候的格式为:
minute(0-59) hour(0-23) day(1-31) month(1-12) weekday(0-6) filename
若不制定,可用*代替,如:
0,30 8-17 * * 1-5 a.sh
表示:周一到周五的8-17点每半个小时执行一次

36.alias:命令别名
csh下:alias c clear 可以用c代替clear
bash下: alias c=clear

37.ifconfig:设置网络接口
/usr/sbin/ifconfig -a

38.netstat:网络状态

39.finger:查看某个用户情况

40.ping: [-s]

41:telnet:…

42:ftp:…
lcd 改变本机目录
cd 改变服务器目录
ls/dir
bin/asc 传输模式
hash 传输数据分段标志#
prompt 是否提示
get/mget
put/mput
! 暂时回到本机操作
exit 从本机操作再回到ftp操作

43.mailx:…

44.mesg: [-y -n] 是否接受信息

45.message command:
wall 广播
write/talk 用户名 终端号

46.history:查看运行命令记录
!c 运行最近一次运行过的以c开头的命令

47.which:查看某个命令的第一个路径

48.whereis:查看某个命令所在的所有路径

49.Shell Scripting
# 注释
#! /bin/bash 使用bash

★UNIX环境变量介绍

感觉刘春阳老师介绍环境变量时的比喻很形象,本来感觉环境变量很神秘,经他一说,感觉似乎不过如此,他说:

当你去一个小区买楼房时,你会问小区管理员,该小区的环境如何。然后小区管理员会说,“社区医院=出门左拐”,“社区小学=出门右拐”,“社区…=…”,……这些就是环境变量。UNIX中也一样,系统为了告诉某些程序一些应用程序或者文件存储位置,就使用诸如此类的一系列等式设置环境变量,如“PATH=/usr/bin:/bin:.”,“JAVA_HOME=…”等等。

最重要的环境变量PATH告知SHELL,应用程序应当到哪里去找。

在不同的SHELL中,环境变量的设置有所不同,以csh和bash为例介绍:

1.Csh中:

命令env可以列出所有的环境变量
setenv VAR abc 将VAR设置为abc(VAR为全局变量,在本SHELL的所有子SHELL中生效)
set VAR abc 将局部环境变量设置为abc(此处VAR为局部变量,只在本SHELL中生效)
set path=() 设置路径(csh中多个路径用空格隔开)
echo $VAR 显示环境变量VAR
登陆csh时,系统从初始化文件(initialization files)中读取环境变量,csh的初始化文件为主目录下的.cshrc
修改过初始化文件后,source可以更新初始化

初始化文件.cshrc的其他内容:
创建目录或文件时的默认权限(umask=022时,建立目录时的权限为777-022=755,建立文件时为666-022=644)
缺省提示符(set prompt=csh%, 则提示符为csh%)
路径PATH( set path=(/usr/bin /bin .) )
终端类型
一些命令(如alias c clear)

2.bash中:

env 列出所有环境变量
VAR=abc 将环境变量VAR设置为abc(此处为局部变量)
export VAR 将已经设置好的局部变量变为全局变量
登陆bash时,初始化文件为.bashrc(b shell的为.profile)

初始化文件.bashrc中的内容:
环境变量
umask
缺省提示符(PS1=bash>, 则提示符为bash> ,注意,这里使用的是PS1,表示提示符)
PATH
一些命令(如alias c=clear, 注意,比csh多一个等号!)

分类: IT杂谈 标签: 2,920 次阅读
原文链接:http://www.wenhq.com/article/view_121.html
欢迎转载,请注明出处:亲亲宝宝
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.