1、vi编辑器的使用
用 h、j、k、l 来分别实现左、下、上、右箭头的功能
yy copy一行;yl copy一个字母;yw copy一个单词;p 粘贴
dd 删除一行;dl 删除一个字母;dw 删除一个单词;u 恢复
cc 剪贴当前行;cw cl
G 光标到最后一行,xG光标到指定x行,g光标到第一行,gg到文件首
替换举例:
行替换
:1,3s/xxx/XXX/(将1行到3行小写的xxx替换成大写的XXX,只检测每行的第一个xxx)
全局替换
:1,3s/xxx/XXX/g 从第一行到第三行做全局替换
:1,$s/xxx/XXX/g 从第一行到最后一行做全局替换
例如:1,$s/key/KEY/g 替换语法
从第1行到最后一行替换key为KEY字符,在全局下替换。
不加/g为行扫描,当行首有key被替换后,该行后面的key不会被替换。
2、查看工具:
cat 全屏显示
more 分页显示
less 分页显示,支持上下翻页
tail 默认打开一个文件的后10行
tail –n 20 /etc/passwd 查看/etc/passwd最后20行
tail –f 动态查看动态更新文件如:tail –f /var/log/messages
head 默认打开一个文件的前10行
head –n x /目录/文件 查看文件的前x行
3. 用户家目录必备文件
.bash_logout
.bash_profile
.bashrc
可以从/etc/skel/.bash* 中获得。
2.alias 别名定义
alias date ='date +%F'
unalias 别名名称 取消别名
在shell下定义别名,关闭此shell后将失效;永久定义或取消别名方法:编辑其家目录下的.bashrc文件。
4、对账户的操作
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
cd ~ 进入家目录
cd /home/ 进入家目录
cd ~todd 进入todd账户家目录
cd - 回到之前的目录
su – username 切换用户
useradd
userdel
usermod
chgrp
chown
chmod
对passwd文件的操作:只对/etc/passwd里的记录进行更改
usermod –d /rrhome/kevin kevin 更改用户kevin的家目录
usermod –s /sbin/nologin kevin 更改用户kevin的登录shell
5.权限
用户权限
目录权限
扩展权限(高级权限)
有效id
6.重定向
0 stdin 键盘输入
1 stdout 终端
2 stderr
ls /dev/std*
改变0 1 2为255内任意数就叫重定向。
<
>
1> 把stdout重定向 1可以省略
2> 把stderr重定向
&> 把所有输出重定向
>> 追加
| 管道
命令1|命令2
例如:cat /etc/passwd |less
7.Kernel参数和/proc
实验目标:打开kernel的转发功能和关闭ICMP的回应功能
一 kernel所支持的可调试参数可以用下面的命令得到
#sysctl –a
你看到的是当前kernel默认的参数设置情况
二 如果要改变相应参数的值并生效,有两种方法,
第一种:实时生效的方法
通过修改/proc里面的值,能让kernel的运行状态实时发生变化
#echo 1 >/proc/sys/net/ipv4/ip_forward(打开转发)
#echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all(关闭回应)
这种方法,只保证当前生效,如果系统重启,kernel将恢复成默认的
第二种:定义/etc/sysctl.conf
这种方法可保证参数永久有效,你只需要把对应的参数在/etc/sysctl.conf做个定义,重启系统就可以了,不要忘了,对应的参数可以用下面的命令找到,很方便
#sysctl –a
8.分区
linux下是按柱面进行分区的,
0扇区称为MBR共512字节,其中bootloader 446字节 ,AA55 2字节,剩下64字节为分区信息,默认最多可分4个分区,每个分区16字节。
划分扩展分区后:ide硬盘可以最多支持63个逻辑分区,scsi硬盘可分15个逻辑分区。
计算磁盘容量:
bc 扇区数*扇区大小*磁道数*柱头数 回车 ctrl+d或者quit
sectors* 512 * cylinders*heads
普通分区:83
mke2fs -j /dev/sdax 或者:mkfs.ext3 /dev/sdax
划分swap分区:82
partprobe
格式化:#mkswap /dev/sdax
挂载: #swapon /dev/sdax
卸载: #swapoff /dev/sdax
查看swap状态#free
9.mount >>
mount [-参数] [设备名称] [挂载点]
1.)挂载分区:
#mount /dev/设备名 /挂载点
2.)挂载远程文件 :
#mount 192.168.0.254:/var/ftp/pub /mnt
3.)挂载目录:(可用于目录伪装)
#mount --bind /dirctory1/ /dirctory2/
4.)挂载文件系统:
#file 文件名 查看文件类型
#mount -o loop -t 文件类型 文件名 /挂载点
-o 指定设备类型;-t 指定文件类型 如:
挂载ios镜像#mount -o loop -t ios9660 xxx.iso /mnt
挂载光驱#mount -t iso9660 /dev/cdrom /mnt/cdrom
mount -a 重新读取fstab挂载目录
mount -o umount /挂载点 重新挂载某个设备
解决kernel动态识别设备混乱的问题。如两个usb设备的区分?
许多OS根据设备的uuid来标注设备,但uuid过长不易于管理。RHEL5.1已经不再使用!
卷标:又称别名,是对分区的别名设置.很好的解决了以上问题。
e2label /dev/sdax 查看sdax分区的卷标
e2label /dev/sdax 卷标名 设置卷标或别名
vi /etc/fstab 以实现自动挂载。fstab文件结构:
设备名 挂载点 文件类型 参数 0 0 (第1个0表示:当有备份程序执行时是否备份该文件,如增量备份、差异备份等;第2个0表示:系统启动时是否强制检查该设备,有1和2两个优先级,1更高)
LABEL=设置的卷标或 别名 …
/dev/sdax …