解压缩
gzip .gz
#gzip 文件
1、只压缩文件,不能压缩目录
2、不保留原文件
解压缩
gunzip
gzip -d
tar .tar.gz
#tar 选项 目录
打包目录
-c 产生.tar打包文件
-f 指定压缩后的名
-z 打包同时压缩
-v 显示执行过程
-x 解压缩
格式: #tar -zcvf 压缩后名.tar.gz 目录名
解压缩
#tar -zxvf *.tar.gz
zip .zip (windows和linux默认通用格式)
压缩文件和目录
#zip 压缩后文件名 源文件
#zip -r 压缩后文件名 源目录
解压
#uzip 文件名
bzip2 .bz2
#bzip2 -k 文件名 (保留源文件)
----------------------------------分 割 线--------------------------------
shell常用
alias 定义别名
#alias 别名=命令
#alias 别名="命令组合"
unalias 删除别名
#unalias 别名
< 输入重定向
>或>> 输出重定向
例#date > /tmp.date
#date >> /tmp.date ##追加输出
2> 错误输出
例#cp -R /usr /backup/usr.bak 2> /bak.error
管道
| 将一个命令的输出作为另一个命令的输入
例#ls -l /etc | more
----------------------------------分 割 线--------------------------------
命令连接符
; 使命令按顺序执行
&& 逻辑与,第一个命令成功才执行第二个命令
command1 && command2
成功 执行
不成功 不执行
|| 逻辑或,第一个命令成功,不执行第二个命令
command1 || command2
成功 不执行
失败 执行
命令替换符 将一个命令的输出作为另一个命令的参数
格式 命令1 `命令2` 命令2的输出作为命令1的参数
例: #ls -l `which touch`
----------------------------------分 割 线--------------------------------
vi编辑器
命令模式、插入模式、编辑模式
插入命令:
a 光标后插入
A 行末插入
i 光标前插入
I 行首插入
o 下一行插入
O 上一行插入
定位命令:
h 左
j 下
k 上
l 右
$ 移到行尾
0 移到行首
H 移到屏幕上端
M 移到屏幕中央
L 移到屏幕下端
:set nu 显示行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
nG 到第n行
:n 到第n行
删除命令:
x 删除光标处的字符
nx 删除光标处后n个字符
dd 删除光标行
ndd 删除n行
dG 删除光标处到末尾的内容
D 删除光标处到行尾
:n1,n2d 删除指定范围的行 :10,12d
复制和剪切
yy、Y 复制当前行
nyy、nY 复制当前行以下n行
dd 剪切当前行
ndd 剪切当前行以下n行
p、P 粘贴在当前光标所在行下或行上
替换和取消命令
r 取代光标所在处字符
R 从光标所在处开始替换字符,按Esc结束
u 取消上一步操作
搜索和替换
/string 向前搜索指定字符串,搜索时忽略大小写 :set ic
n 搜索指定字符串的下一个出现位置
N 搜索指定字符串的上一个出现位置
:%s/old/new/g 全文替换指定字符串
:n1,n2s/old/new/g 在一定范围内替换指定字符串
保存退出
:wq
ZZ
:wq!
:q! 不保存退出
:w 保存
:w 文件名 ##另存为
:r 文件名 ##导入文件
:! 命令 ##可在不退出vi的情况下运行其它命令
:r !命令
定义快捷键
:map 快捷键 命令
例 :map ^P I#<ESC> ##按ctrl+p可在光标行首插入#并退出插入模式
^P=ctrl+v ctrl=p 或crtl+v+p (crtl,v必须有,p为所设置的快捷键)
连续行注释替换
格式 :n1,n2s/原字符/替换后字符/g
例
:n1,n2s/^/#/g 在行首加#
:n1,n2s/^#//g 行首#被去掉
:n1,n2s/^/\/\//g 行首插入//
:n1,n2s/^\/\///g 行首去掉//
^表示行首 \转义符
替换
:ab web1 www.myweb.com
在vi中输入web1回车后自动输入www.myweb.com
取消
:unab web1
可在家目录编辑.viminfo添加vi中用到的快捷方式或命令,以方便下次打开
文件时可继续使用
----------------------------------分 割 线--------------------------------
搜索
which ##查看可执行文件的位置
whereis ##查看文件的位置
locate ##配合数据库查看文件位置
find ##实际搜寻硬盘查询文件名称
grep ##匹配
***********
#which [文件名]
#whereis [-bmsu] [目录名称]
-b 只找二进制文件
-m 只找在说明文件manual路径下的文件
-s 只找source源文件
-u 没有说明文件的文件
#locate [目录名称]
#updatedb 更新数据库
#find [路径] [参数]
参数:
1、时间
-atime n :将n*24小时内被存取过的文件列出来
-ctime n :将n*24小时内被改变、新增的文件或目录列出来
-mtime n :将n*24小时内被修改过的文件列出来
-newer file :把比file还要新的文件列出来
2、使用名称
-gid n :寻找群组ID为n的文件
-group name:寻找群组名称为name的文件
-uid n :寻找拥有者ID为n的文件
-user name:寻找用户名称为name的文件
-name file:寻找文件名为file的文件名称
type type:寻找文件属性为type的文件
----------------------------------分 割 线--------------------------------
find
#find
-name 文件名
* 匹配任意字符
? 匹配单个字符
-size 文件大小 block数据块 512字节=0.5KB
100MB=102400KB=204800 block
+ 大于 +204800
- 小于 -204800
-user 文件所有者
-type 文件类型 f 二进制文件 l 软链接
时间
1、天 ctime、atime、mtime
2、分钟 cmin、amin、mmin
c——change 改变,表示文件属性被修改过,所有者、所属组、权限
a——access 访问
m——modify 修改,表示文件内容被修改过
-时间之内
+超过时间
#find /etc -mmin -120 120分钟内被修改的文件
连接符
1、 -a and 逻辑与 -o or 逻辑或
2、 -exec 格式 #find ... -exec 命令 {} \;
{}指前面find查询的结果
\ 转义符
; 结果
-ok 询问确认
i接点
-inum
----------------------------------分 割 线--------------------------------
系统启动配置文件
/etc/rc.d/inittab
inittab条目格式:
id:run-levels:action:process
id: 标识符,一般为两位字母或数字
run-levels: 运行级别
action: 运行状态
process: 要运行的脚本/命令
action常用值:
initdefault: 系统缺省启动级别
sysinit: 系统启动执行process中指定的命令
wait: 执行process中指定的命令,并等其结束再运行其它命令
once: 执行process中指定的命令,不等待其结束
ctrlaltdel: 按下Ctrl+Alt+Del时执行process指定的命令
powerfail: 当出现电源错误时执行process命令,不等待其结束
powerokwait: 当电源恢复时执行process命令
respawn: 一旦process命令中止,便重新运行该命令
重要的脚本:
/etc/rc.d/rc.sysinit 完成系统服务程度启动,在每个级别都运行,可直
接编写该文件添加需要开机启动的服务
对应每个运行级别的文件
/etc/rc.d/rcn.d
n为运行级别0、1、2、3、4、5、6
查看这些文件时可看到以K和S开头的文件
K=kill
S=start
配置启动项
#ln -s 软链接方法,把需要启动的程序链接到/etc/rc.d/rcN.d 某个启动
级别下
#chkconfig
#ntsysv
#dmesg 查看启动信息
/var/log 日志文件目录
/var/log/messages