*********第二天**************************
*****author Ice Xu *********************
*****Create Date 2006-10-26*************
*****NanJing sd0603*********************
*****************************************
查看文件的命令:
more 该命令用于查看文件(些模式下查看的文件可以定住屏幕显示)
chmod r 4 读 w 2 写 x 1 执行
setenv LANG C (将语言的环境变量设为英文模式)
ls -ld 查看目录的权限
chmod 更改文件或目录的权限(谁能够修改一个文件的权限 ROOT 和 OWNER 才能修改这个文件的权限)
a all 所有人 u user 当前文件的拥有者 g group 组成员
1、在现在权限上添加权限:
chmod u+x, g+w filename
chmod u+2, g+1 filenmae
2、更改之前的权限
chmod a=rw filename
chmod 777 filename
创建一个文件:
touch filename(此命令可以创建一个文件,如果文件不存在时将创建一个新的文件,如果文件存在时,将更新文件的修改时间)
系统创建成一个文件时,默认的权限为 --rw----r----r--- 用数字表达时为 644
系统创建一个目录时,默契认的权限为---rwx---rx---rx-- 用数字表达时为 755
ls 查看文件时默认为用文件名的首字母排序的输出结果
ls -ld 查看目录的权限
ls -lt 以最后一次的修改的时间来查看所有的文件输出结果,常用于查看日志文件时最有效果,此命令比较有作用
ls -a (all) 可以查看当前目录中的隐藏文件,隐藏文件都以.开头的文件
ls -alt 详细列表,并按时间列表排序
ls -R 展开每一级的目录,可以查看到目录中子目录中的文件,递归的显示当前目录下的所有文件
在一个目录创建一个文件时,一定要在此目录中有写权限
创建目录的命令:
mkdir [-p] dir1/dir2/dir3 此命令可以在目录中创建子目录
mkdir dir1 dir2 dir3 用空格分隔时说明三个目录是平级目录,如果中间是用/分隔时说明是两个目录之间的关系是嵌套的关系
关于复制文件的命令:
cp
cp -i cource_filename源文件 target_filename目标文件
参数-i 说明是 cp 时如果有覆盖时会有提示?
对目录的复制:
cp -r dir dir.bak 对源目录的复制,参数-r可以复制目录中子目录中的文件
chmod 1777 只有根目录下才可以进行
chmod +t 此功能说明,此目录可以供所有人创建和使用,但是想修改或删除进不能进行,只有此文件的拥有者或有写权限的人
删除文件的命令:
rm
rm -i 有提示的删除文件, 做rm操作时一定要特别小心,不要误删除文件
删除一个文件所在的权限,是指所在目录的写权限,关不在于文件的本身的权限
rm -f 把一个文件强制删除,不一定对文件有写权限
删除一个目录的命令:
rmdir 只能删除一个空目录
rmdir -r 加此参数选项时,说明要删除该目录下的所有文
rmdir -ir 加此参数选项时,说明要删除该目录下的文件时有提示
移动命令:
mv 移动命令
利用此命令可以移动文件或更改文件目录的名称
利用此命令移动时参数第一个一下要为源文件名,目标也可以为一个目录
ln 连接命令
i接点,一个接点里面包含,除了文件名以外关于此文件的所有的属性都会记在i结里面,一个文件肯定对应一个i结点,操作管理一
个文件时就是用i接点来管理的,每个文件一个文件名,还会有一个i结点,
2 硬连接数 在一个i接点中还会记录一个data block 的指针,操作系统要处理一个文件时一定要先找到i结点,每个文件都会有一个
i接点表, newfs时创建的,没有足够的空间时,不是没有i接点,而是data block不够,所以一般情况下,很少有i 接点不够的错误
注意点:
软连接:软连接时另外一个文件会随源文件一起变化,因为它也会去有相应的一个i节点,所以两个文件会同步更新,它内部的data block
里面的就是源文件名,相当于windows 中的快捷方式,源文件删除时,软连接也不可用。软连接的标志为 l,但凡文件类型中有
l开头的就一定是软件连接文件。软连接文件是可以跨文件系统的。
硬连接:硬连接时另外一个文件不会随源文件一起变化,因为这时会去申请一个新的i 节点,此时i接点中存放的是源文件的copy 所以当源文
件变化时,硬连接时中的内容不会变化。
unix中的好朋友 man name
利用man+ name 命令可以有相当详细的命令的介绍。平时可以多去查看些命令的用法。
man -s4 terminfo
man -k setuid
cal 输出日历
date 输出日期
meacharacters(元字符)
shell会对此会额外的解释
1、* 通配符-----表示0个或更多个字符。
2、? 表示任意一个字符。
3、[] 表示在哪个范围之间。
4、; 一行内输入多个命令时,中间用分号分隔 ,主要用于连接两条命令
5、> 把一个命令的输入,重定向到一个文件中,而不是到屏幕上。 重定向时如果文件存在会覆盖,如果不存在时会生成一个新文件
6、>> 重定向时把一个命令的输出追加到一个已经存在的文件中去。
7、< 输入重定向,
piping(|) 管道符:
pipe
管道的作用:
把上一个命令的输出作为下一个命令的输入,管道的两边都是命令,;的两边也是命令
一般相对复杂的命令都是由一些相对简单的命令用管道来连接
实际应用: ls -l | more 分屏显示
cat 命令可以一次性显示多文件,把几个文件同时显示出来:
cat /etc/passwd | awk -F: '{ print $1 "\t" $6 }' | sort > ~/userinfo
此命令的作用:把/etc/passwd 目录下的内容按一定的分隔,并排序输入至另一个文件中去。
head 命令 默认为前10行
head /etc/passwd head -5 /etc/passwd 指定几行看文件的内容
tail 命令 默认为后10行 此命令还可以动态显示文件内容,会适时刷新。常用于日志文件中的查看方式。
看一个文件主要用的命令:more cat head tail
awk 和 sed 都有很强的文本处理能力。
有专门的一本书叫做awk编程
VI 编译器 full screen edit 全屏编辑
a i o 这几个命令可以由命令模式转到输入模式:
由输入模式转回命令模式:ESC
存盘退出时要进入到底行模式:
ESC在各种模式按都没有问题
移动到行尾: :$ G
移动到行首: :^
文件尾 G
首件首 1G
任意行 行号G
屏幕中 M
屏幕尾 L
屏幕首 H
显示行号码: set nu
Ctrl + f 向下翻屏
ctrl + b 向上翻屏
删除一个字符:X
删除多个字符:4X
删除一个单词:dw
删除多个单词:3dw
撤消: u VI中最多只能撤消一次
删除一行:dd
删除指定行:5,10d
替换一个字符:r
替换一个单词:cw 把长单词改为一个短单词时改完事按一下ESC
从光标当前位置一直改到行尾:C
yy 拷贝行
nyy 拷贝n行
p 粘贴
存盘 :w + 文件名
退出 q!
存盘且退出 wq
替换全文:
:1,$s/旧串/新串/g 替换全文(%s/旧串/新串/g)
每行前都加一个#号:
1,$s /^/#
合并一个文件的内容:
:r filename 在光标所在的位置插入另一行
users 命令
如果不能用话的可以用 /usr/bin
who 命令
who am i 用于显示当前具体登陆用户的信息
此命令不能正常使用时同样也是由于环境变量引起的,应该使用绝对路径:/usr/ucb/whoami
找文件命令:find
find path expression 执行find 命令时也要权限必须要有读和执行权限
find / -name perl 从根目录下找文件名为prel的文件精确查找
find . -name "file*" 从当前目录下找文件名中含有file的文件名
find . -mtime 10 -print 从当前目录 下找文件在最后十天内修改过的文件
10 的三种表达形式 -10 十天之内 +10 修改时间超过10的文件 10 十天之前
find /etc -user 0 -size+400 -print 找出属主为root ,文件大小400个block 约200k 400*512
find ~ -perm 777 > ~/holes
find /export/home -type f -atime +365 -exec rm {} \; 找文件类型为文件,访问时在一年以前的夹, 并执行删除. \; 为语法上要求要这样写
对于一般很难删除的文件,可以试用find来删除.