Linux命令学习总结(一)

命令 -选项 参数
如果选项是一个单词时,选项前面要加2个-
modprobe -r pcspkr   在终端中输入的时候有声音,可以用这个命令屏蔽声音 ,需要root权限

useradd userdel

useradd tom 添加tom用户,需root权限
passwd tom 给tom用户添加密码,新创建的用户密码为空
useradd tom -p 123456 创建tom用户,并设置密码是123456
userdel tom 删除tom用户,但不删该用户的文件
user -r tom 删除tom用户的同时,把该用户的主目录下的文件删除

id 显示当前登录用户的uid和gid
   uid 系统分给用户的识别码,gid 系统分给用户组的身份唯一标识
id tom 显示tom用户的uid和gid

ls

ls 显示目录下的内容,和Windows下的dir命令相当
  ls -l(L的小写) 以长模式显示
  ls -l /usr 查看usr目录下的内容的信息
  ls -ld /usr 查看usr文件夹本身的信息
  ls -1(数字1)当前目录下的内容一行一行显示
  ls -a 显示包含隐藏文件,以.开头的都是隐藏文件
  ls -s 显示文件,以及文件的大小
  ls -1as 选项可以叠加
  ls -sh 显示文件的大小,有单位,能看懂
  ls -i 显示文件的inode值

date cal bc

pwd 显示当前所在目录
clear或者crtl+l 清屏,和Windows下的cls命令相当
date 显示日期
  date + %Y 显示年
  date + %m 显示月
  date + %M 显示分
  date -u 101109452017 设置时间为2017年10月11日9点45分
cal 显示日历
  cal 显示这个月分日历
  cal 2016 显示2016年所有的日历
  cal 05 2016 显示2016年5月的日历
bc 计算器
 bc 回车后可以计算
 1/3 开始等于0,因为默认保留小数点0位
 scale=2 设置保留小数点后2位
 quit 退出计算器
history 显示我们之前敲过的命令,默认最多显示1000个
!22 执行history命令中查询出的序号为22的命令

ctrl

ctrl+a 跳到命令行的开始位置
ctrl+e 跳到命令行的结束位置
ctrl+左箭头 一个单词一个单词的往左跳
ctrl+右箭头 一个单词一个单词的往右跳
ctrl+u 把当前光标到本行开头的字符全部删掉
ctrl+k 把当前光标到本行结束的字符全部删掉
ctrl+c 结束当前命令的执行
ctrl+d 退出终端,相当于exit命令
ctrl+shift+t 打开多个终端,可以用ctrl+d关掉

touch man

按住esc,松手时按. 引用上个命令时的参数
touch xx 创建一个xx文本文件
^xx^yy 重新执行上个命令(touch命令),并且创建的文件名改为yy
whatis ls 告诉我ls这个命令的作用,我们可以用来查看不知道的命令
man ls 显示ls这个命令的章节介绍,man这个命令可以用来查看不知道的命令
   输入/boot 高亮显示文章中的boot字
   n 从上往下查看boot
   N 从下往上查看boot
   q 退出
man -k clock 查看有clock关键字的命令,-k表示关键字
man host.allow 查看host.allow文件的作用,以及如何配置

gedit rm shutdown poweroff reboot

gedit 打开gedit文本编辑器
gedit oo 使用gedit编辑器打开oo文件继续编辑
rm -f oo 删除oo文件
nano 打开nano编辑器
 ctrl+o写入文件,没有文件名的话需要输入文件名
 ctrl+x 退出
sync 把缓存里的数据写入到硬盘中
shutdown 关机,需要root权限
 shutdown -h 10 10分钟后关机
 shutdown -k 10 10分钟后提示关机,并不会真正关机
 shutdown -h 10:50 10:50时候关机
poweroff 关机
 poweroff -f 立马关机,速度很快
reboot 重启
 reboot -f 立马重启,速度很快

init

七个运行级别在/etc/rc.d目录下
runlevel 查看当前在哪个运行级别,后面数字是当前在的,前面数字是以前在的
init 3 进入第三个级别,需要root权限
init 3 进入命令界面后输入startx命令,会启动图形化界面这个服务,但是当前还是在第3级别
init 5 进入图形化界面,因为第5个运行级别默认图形化界面启动
init 6 重启
init 0 关机

chmod chown chgrp

文件系统
/etc/passwd 用户的账户信息都放在这个文件夹下
/etc/shadow 用户的密码信息都放在这个文件夹下
/etc/group 用户的组信息都放在这个文件夹下
系统根据uid来标记用户的,不是根据用户名
ln -s abc.log hh 给sbc.log文件做一个快捷方式,名字为hh
ls -lh 以查模式显示目录,里面文件的大小有单位
  第一列有10个字符
   第一个字符:-:普通文件(二进制文件或文本文件);d:文件夹;b:设备文件(可以用来存储东西的文件)
               c:设备文件(字符型文件,不能用来存储东西); l:快捷方式
   下面九个字符:代表了文件的权限,把这9个字符分成三组,第一组针对文件所有者(用户)
                 第二组针对用户组里的人,第三组针对其他用户,每组有3个字符
                 这三个字符分别是r:读权限,w-写权限,x:执行权限,如果哪一个组少了什么字符,
                 就是没有什么权限        
chmod 更改用户(u),用户组(g),其他人(o)对某一个文件的权限
chmod u+x,g+w,o-r abc.log 更改为:用户对abc.log文件的权限:加上可执行权限
                                  用户组对abc.log文件的权限:加上写权限
                                  其他人对abc.log文件的权限:减去读权限
chmod ug-rw abc.log 更改用户和用户组对abc.log文件的权限:减去读和写权限
  相同的可以写在一起
x权限如果是在一个文件夹上,有x权限的人可以进入这个目录,即可以cd过来
  没有的话不能cd过来
chmod ug=x abc.log 不管用户和用户组以前对abc.log文件有什么权限,这个命令执行过后只有:可执行权限
chmod a=rw abc.log a的意思就ugo的简写
chmod +r abc.log 在+r权限前没有指明是用户或用户组或其他人,默认对用户添加读权限(但本人测试是对三个都加了)
chmod +w abc.log 在+w权限前没有指明是用户或用户组或其他人,默认对用户和用户组添加写权限
chmod +x abc.log 在+x权限前没有指明是用户或用户组或其他人,默认对三个都添加执行权限
我们把r权限当成4,w权限当成2,x权限当成1
如果说用户对某一个文件的权限是数字5,那么就是有r权限和x权限
chmod 743 abc.log 更改用户、用户组、其他人abc.log的权限,分别是rwx、r、rx权限
chmod 000 /usr 更改usr文件夹的权限为000,不会改变文件夹里面内容的权限
chmod -R 555 /usr 更改usr文件夹以及文件夹里面内容的权限为555,-R表示递归
useradd tom 添加一个tom用户
chown tom /abc.log 把abc.log的所有者(用户)改为tom用户
chown tom:tom abc.log 把abc.log文件的所有者和用户组都改为tom
   冒号(:)可以改成点(.)
chgrp root abc.log 把abc.log文件的所属组改为root
chown -R tom /usr 把usr文件夹以及里面的内容的所有者改为tom
chgrp -R tom /usr 把usr文件夹以及里面的内容的所属组改为tom

file

file abc.log 查看文件的类型
Linux根目录下有很多文件夹
  bin:存放二进制文件
  boot:系统的启动文件(内核的配置文件等)
  dev:存放设备文件,移动硬盘、u盘等
  etc:配置文件
  home:用户的家目录
  lib:链接库文件
  media:系统的自动挂载点
  mnt:手动挂载点
  opt:当我们使用源码包安装时,一般都会安装在这个目录下的某一个文件夹,如果不指名安装的话,默认安装在usr目录下
  proc:指定内核参数
  root:root的家目录,其他用户的家目录都放在home目录下
  sbin:当我们敲命令时,都是存放在这个目录下
  tmp:临时文件
  usr:默认安装路径
  var:日志文件、缓存文件、数据库文件,占用空间比较大

tree uname

tree /boot 查看boot目录下的树形结构
/usr/aa/bb 绝对路径,从根目录下开始写
.表示当前目录
..表示上层路径
cd ../../../ 当前目录的上层的上层的上层目录
uname 查看内核,Linux
uname -i 查看架构(64位还是32位)
uname -r 内核版本
uname -a 查看所有信息
lsb_release -a 查看所有信息
cat /etc/redhat-release

cd mkdir rmdir rm sh

cd /usr 切换到usr目录
cd 切换到当前用户的家目录,等同于cd ~
cd ~tom 切换到tom用户的家目录,一般用户的家目录在home下,如/home/tom,root用户的家目录是/root
cd ~/tom 切换到当前用户的家目录下的tom文件夹,由此可见~后面有/和无/的区别
whoami 看当前用户是谁
cd - 切换到上次所在的目录
mkdir xx 创建xx目录
mkdir yy zz 同时创建多个目录
rmdir yy zz 同时删除多个目录,rmdir不能删除非空目录
mkdir -p xx/yy 创建xx目录,xx目录下再创建一个yy目录,-p的意思是xx目录不存在的话就创建
mkdir -p rhca/{xx,yy,zz} 创建rhca目录,在rhca目录下创建三个文件夹
rmdir -p rhca/xx 删除xx目录的同时把rhca目录也删掉,需要删掉xx目录后rhca是空的
rm -rf rhca 把rhca目录删掉,-r表示递归,-f表示强制,不管rhca目录下有没有子目录
rm -rf * 把当前目录下的所有东西强制删除
echo $PATH 查看系统命令路径
gedit xx.sh 创建一个脚本
./xx.sh 执行当前目录下的xx.sh脚本
sh xx.sh 执行xx.sh脚本
  如果我们直接写xx.sh的话,系统默认到PATH路径下找,因为我们没把这个路径加到系统path变量里,
  报找不到命令的错误,如果我们想直接写xx.sh时能找到,就需要在系统path变量里加上这路径,如/home/sun
PATH="/home/sun" 设置系统的path变量路径为/home/sun,如果我们要更改,应该先获得以前的所有命令,
  然后再加上这个路径,这里仅为方便写了
ls -ld --time=atime /boot 以长模式显示boot文件夹自身的信息,其中的时候等于最后访问时间
ls -ld --time=ctime /boot 以长模式显示boot文件夹自身的信息,其中的时候等于创建时间
ls -R / 列出根目录下的文件,-R表示递归,如果文件夹下面还有文件夹,都显示出来

cp

cp /etc/service /home/sun 把etc目录下的service文件拷贝到home/sun文件夹下,名字还是service
cp /etc/service /home/sun/xx 把etc目录下的service文件拷贝到me/sun文件夹下,重命名为xx
cp -rf /etc /home/sun 把etc目录递归、强制拷贝到sun目录,如果不加-rf,cp无法直接拷贝一个目录
cp -p /etc/service /home/sun 把etc目录下的service文件拷贝到home/sun文件夹下,名字还是service
  不加-p的话不会复制文件的属性信息,如创建时间
cp -a /etc /mnt 把etc目录都复制到mnt里,-a表示all,包含-r/-f/-p
cp -u /etc/service /mnt/service 把etc目录下的service文件复制到mnt目录下的service文件中
  如果etc目录下的service比mnt目录下的service新的话就会复制过去,反之不会复制过去
  如果不加-u的话,会有提示的
cp xx yy 把xx文件拷贝为yy文件,如果xx是快捷方式的话,实际上快捷方式的链接没拷贝过去
cp -d xx yy 加上-d,如果xx是快捷方式,会拷贝过去
rm service 删除service文件
alias 查看别名,比如当我们把rm -i命令取别名为rm,当我们敲rm时,实际执行rm -i
ls /boot/grub/grub.conf 查看/boot/grub/目录下的grub.conf,结果包含路径和文件名
basename /boot/grub/grub.conf 查看文件名,结果只有文件名
dirname /boot/grub/grub.conf 查看文件路径,结果只有路径

cat tac head nl tail more less od strings

我们可以使用cat、tac、head、nl、tail、more、less、od查看文档的内容
cat xx 查看xx文件的内容,从前往后显示全部内容,如果内容非常多的时候,
       我们只能看到最后的东西,由此cat适合查看小文件
cat -n xx 查看文件时把每一行都加上一个编号
tac xx 查看文件的内容,从后往前显示
nl xx 查看文件内容,会在每一行前加上行号,和cat -n xx效果一样
nl -b a hosts,空行前也会加上行号
more xx 从前往后显示文件的内容,分屏显示,按enter再显示一行,按空格再显示一屏
        按q退出
less xx 从前往后显示文件的内容,分屏显示,按enter再显示一行,按空格再显示一屏
        less支持往前看,往后看,pageup往前翻,pagedown往后翻
        home翻到第一页,end翻到最后一页
        输入/然后输入要查找的内容,支持查找,按n往下翻,按N往前翻
        按q退出
head xx 查看xx文件的前几行,默认是10行
head -5 xx 查看xx文件的前5行,等同于-n 5
tail xx 查看xx文件的尾几行,默认是10行
tail -5 xx 查看文件的尾5行,等同于-n 5
tail -n +5 xx 从第5行开始查看文件内容
tail -f xx 查看文件的尾10行,但是不会退出来,我们可以监测日志文件
tailf xx 等同于tail -f xx,按crtl+c退出
service network restart 重启网络
od -t c /bin/ls -t指明显示类型 c指明用什么显示,c表示Ascii码,用于查看二进制文件
strings /bin/ls 查看文本或二进制文件的内容,强大的功能

touch ll

touch xx 如果xx文件不存在的话,创建一个新文件,名字叫xx
         如果xx文件存在的话,把这个文件的创建时间和修改时间改为当前时间
ll 等同于ls -l 以长模式显示目录内容
touch -t 20121223152536 xx 把xx的文件时间改为20121223152536
      不加时间,默认当前时间

umask chattr

umask 权限过滤壶,可以查看过滤的权限,默认0002,取后面三位
umask 333 设置权限过滤为333,再进行查看的话就是0333
umask -S 查看保留哪些字符,和umask相反
lsattr xx 查看xx文件的隐藏权限
chattr +a xx 修改xx文件的隐藏权限,+a表示只能添加,不能删除
chattr +i xx 表示这个文件不能更改,不能删除
chattr -a xx 减去隐藏a权限
chattr -i xx 减去隐藏i权限

whereis locate echo chmod

chmod u+s xx 在一个命令的所有者权限上,出现了s时,其他用户对这个文件操作时,将具有所有者的权限
which passwd 查看passwd这个命令所在的路径,结果为/usr/bin/passwd,也可以查看其他命令的路径
whereis passwd 查看passwd命令的路径,以及包含passwd命令的文件
whereis -b passwd 只看包含二进制文件命令的路径
whereis -m passwd 除二进制文件命令之外的其他命令
locate mmm 列出所有文件名有mmm字段的文件路径
   locate找文件时并不是通过硬盘找的,是通过/var/lib/mlocate/mlocate.db数据库找的
   而这个数据库是每天0点更新一次的
   如果我们想通过locate命令查看刚创建的文件,只需更新一下数据库即可
updatedb 更新数据库
locate -i mmm 查找包含mmm文件名的文件路径,不区分大小写,也就是说MMM也能找到
hostname 查看主机名
echo xxxxx 在屏幕中打印出xxxxx
echo xxx`hostname`yyy 当一个命令嵌套在其他命令中,是不会执行的,除非加上反引号·或$()
echo xxx$(hostname)yyy 执行结果和上个一样
chmod 4644 xx 设置xx文件的权限,644表示正常的权限,开始是4表示给u的位置加个S权限
chmod 2644 xx 设置xx文件的权限,644表示正常的权限,开始是2表示给g的位置加个S权限
chmod 1644 xx 设置xx文件的权限,644表示正常的权限,开始是1表示给o的位置加个T权限

find

find 目录 -属性 值
    如果不指名路径的话,默认在当前路径查找
find / -name xxx 根据文件名,在根目录下查找文件名为xxx为文件路径
find / -user xxx 根据用户名,在根目录下查找所有者为xxx的文件路径
find / -user xxx -group yyy 根据用户名和所属组,在根目录下查找所有者为xxx,且所属组为yyy的文件路径
find / -user xxx -or -group yyy 根据用户名和所属组,在根目录下查找所有者为xxx,或者所属组为yyy的文件路径
find / -uid 500 查找uid是500的用户所有的文件,当创建了用户,系统会给用户分配一个uid,作为标识

dd if=/dev/zero of=file1 bs=1M count=1 从dev下拿1个zero,每个zero大小是1M,组成一个file1
      zero本来没有大小,而且无穷多,我们用bs自定义大小,count是数目

find -size 4M 在当前路径下查找文件大小是4M的文件
find -size +2M 在当前路径下查找文件大小大于2M的文件
find -size -2M 在当前路径下查找文件大小小于2M的文件
find -size +2M -size -5M 在当前路径下查找文件大小大于2M、小于5M的文件
find -ctime 1 查找创建时间正好过1天的
find -ctime +1 找到1天之前创建的文件
find -cmin +1 查找创建时间大于1分钟的文件
find -newer file1 在当前目录查找比file1新的文件,就是比file1创建时间晚的
find /mnt -perm 222 在mnt目录下查找文件权限是222的文件
find /mnt -perm +222 在mnt目录下查找文件权限中的u、g、o只要有一个有w权限的的文件
     它们之间是或的关系
find /mnt -perm -222 在mnt目录下查找文件权限中的u、g、o都有w权限的的文件
     它们都要有w权限,当然除了w权限也可以有其他权限
     它们是并的关系
find / -perm -2 other必须要有w权限
find / -perm -22 group必须要有w权限,other必须要有w权限

filefrag dumpe2fs df du

ls -i xxx 查看xxx文件在inode里的序号,inode存储了block的信息,block存着文件数据
  ls -i /etc 查看etc目录下文件的inode序号
  ls -id /etc 查看etc文件夹的inode序号
filefrag -v xxx 查看xxx文件分布在哪些block里
dumpe2fs /dev/sda1 | more 查看日志

VFS
linux支持ext2、ext3、vfat文件系统
df 显示已挂载的文件系统
df -h 以更适合查看的单位来显示已挂载的文件系统
df -hT 以更适合查看的单位来显示已挂载的文件系统,包含显示文件系统的类型

du /etc 显示文件夹的大小,也显示文件夹里面东西的大小
du -s /etc 显示etc文件夹的大小,不显示里面东西的大小,s表示single
du -sh /etc 带单位显示文件夹的大小
du -h xx 带单位显示xx文件的大小

ln fdisk partprobe mkfs mount umount swapon swapoff

软连接:快捷方式
ln -s aa aa1 创建aa文件的快捷方式(软连接)aa1,指向aa
ln aa aa1 创建aa文件的硬链接aa1,硬链接不能分区,创建硬链接时不加参数
  ll xx 显示xx文件的长模式数据,权限后的数字是xx文件的硬链接数
diff aa aa1 显示aa和aa1文件不同的内容
fdisk -l 显示系统所有的硬盘,和对应的分区,需要root权限
fdisk -l /dev/sda 查看sda硬盘和分区
fdisk /dev/sda 给sda硬盘进行分区,fdisk后面跟硬盘名,我们是对硬盘进行分区
  我们给一个硬盘分配分区时,一个硬盘最多划分为4个主分区,所以主分区+扩展分区<=4
  我们划分的分区为主分区或扩展分区,然后我们可以在扩展分区上划分逻辑分区
partprobe /dev/sda 更新sda硬盘的分区表
partprobe 后面不加硬盘,更新所有硬盘的分区表
刚划分好的逻辑分区不能直接使用,需要先格式化
mkfs -t ext3 /dev/sda5 以ext3文件系统格式化sda5分区,默认一个block size是1K
mkfs -t ext3 -b 4096 /dev/sda5 以ext3文件系统格式化sda5分区,设置1个block size是4K
mkfs.ext3 /dev/sda5 以ext3文件系统格式化sda5分区,默认一个block size是1K
  和mkfs -t ext3 /dev/sda5效果一样
格式化好的分区需要挂载,挂载后才能使用
mount /dev/sda5 /mnt 把sda5分区挂载到mnt目录下,当我们访问mnt时,实际上访问的是sda5分区
mount -o 选项 -t 文件系统
mount -o remount,ro /mnt 以只读的形式重新挂载mnt目录,ro表示只读
mount -o remount,rw /mnt 以可读可写的形式重新挂载mnt目录,rw表示可读可写
mount -o remount,noexec /mnt 以不可执行权限重新挂载mnt目录,noexec表示没有可执行权限
mount -o remount,exec /mnt 以可执行权限重新挂载mnt目录,noexec表示有可执行权限
使用df -hT 查看已挂载的分区
实际上我们用mount挂载的只是在这一次系统启动时有效,重启了就没有了
需要我们在/etc/fstab文件里写入才能开机启动
umount /mnt 卸载mnt目录下挂载的分区
  和umount /dev/sda5效果一样
  umount 外部设备
  umount 挂载点
fuser -mv /mnt 查看哪个进程正在使用mnt目录
fsck /dev/sda5 检查sda5磁盘有没有问题
fsck -f /dev/sda5 强制检查sda5磁盘有没有问题
fsck -C -f /dev/sda2 能显示检查的过程
badblocks /dev/sda5 检查sda5磁盘的坏道
badblocks -sv /dev/sda5 检测sda5磁盘的坏道,有进度,并把结果显示出来
tune2fs -l /dev/sda5 查看sda5分区的信息
e2label /dev/sda5 xx 修改sda5分区的卷标为xx
e2label /dev/sda5 查看sda5分区的卷标
mount -o loop xx.iso /mnt 把xx.iso镜像文件挂载到mnt目录下
  挂载镜像文件要加上loop
cat /proc/swaps 查看swaps文件来看系统的交换分区和虚拟内存
mkswap /dev/sda6 把sda6变成一个交换分区
swapon /dev/sda6 激活sda6这个交换分区
  然后cat /proc/swaps才能查到sda6这个交换分区
swapoff /dev/sda6 关闭sda6这个交换分区
如果想开机启动的话,就需要写进/etc/fstab文件中
  也可以把一个文件里的空间变成交换分区

gzip bzip2 tar

gzip xx 压缩xx文件为xx.gz
  gzip -c xx > xx.gz 压缩后原文件保存
zcat xx.gz 直接查看压缩文件的内容
gzip -d xx.gz 解压文件
bzip2 xx 压缩文件为xx.bz2
  bzip2 -c xx > xx.gz 压缩后原文件保存
bzcat xx.gz 直接查看压缩文件的内容
bzip2 -d xx.gz 解压文件
zip xx.zip xx 把xx压缩为xx.zip
unzip xx.zip 解压
通过对一个文件压缩后发现,gzip压缩效果最好,bzip2第二,但是zip压缩后反而压缩文件比原文件大
tar -cvf xx.tar xx 把xx文件打包成xx.tar
  c是创建一个文件;v是显示创建过程;f是指明创建后的文件名,以tar结尾
tar -cvf xx.tar xx --remove-files 打包后不保留原文件
tar -tvf xx.tar 不解档的情况下查看打包的内容
tar -xvf xx.tar 解档tar包
tar -xvf xx.zip -C /mnt 把打包文件解档到哪个目录下
  -C后加上目录
tar -cvf xx.tar * --remove-files 把当前目录下的所有文件都打包到xx.tar
tar -xvf xx.tar hosts 把xx.tar包里的hosts文件解压出来,其他的不解压
tar -zcvf xx.tar.gz * 打包过程中进行压缩
  -z表示调用gzip压缩工具压缩,所以压缩后的名以.gz结尾
  最后加上--remove-files会删除原文件
tar -zxvf xx.tar.gz 解压
tar -jcvf xx.tar.bz2 * 打包过程中进行压缩
  -z表示调用bzip2压缩工具压缩,所以压缩后的名以.bz2结尾
  最后加上--remove-files会删除原文件
tar -jxvf xx.tar.gz 解压

dump restore mkisofs dd cpio

dump -0
 0表示完全备份
dump -0u -f /etc/xx.dump /dev/sda3 把sda3硬盘里的数据备份到xx.dump中
 备份级别有0-9,0表示完全备份,每一次备份级别只备份上次备份级别比它小的
restore -r -f /etc/xx.dump 恢复备份的数据,-r表示恢复全部文件
restore -i -f /etc/xx.dump 恢复备份文件的部分数据,回车后输入?回车,能看到命令提示

mkisofs -o xx.iso file1 file2 file3 把file1 file2 file3三个文件刻录成iso镜像
mount -o loop xx.iso /mnt 把xx.iso镜像挂载到mnt目录下
cp /dev/cdrom xx.iso 直接把光盘里的东西复制成iso镜像
dd if=/dev/sda3 of=test 把sda3整个的硬盘数据备份到test
dd if=test of=/dev/sda3 从test恢复到sda3中
find -name 'file*' | cpio -o > xx.cpio 把|前面用命令找到的结果通过管道传给cpio,cpio将他们打包成xx.cpio
   -o表示打包
cpio -iu < xx.cpio -i表示解压

vim

由命令模式进入插入模式,按i、I、a、A、o、O
  i 光标还在当前光标
  I 光标移到本行开头
  a 光标在光标后一个字符
  A 光标跳到本行结束
  o 当前行下一行产生一个空白行
  O 当前行上一行产生一个空白行
由插入模式进入命令模式,按ESC键
在命令模式 w表示保存;q表示退出;!表示强制执行
  wq保存并退出
  q!不保存强制退出
按ESC后,按yy表示复制光标所在一行,按p表示复制
在命令模式,输入set nu 在每行前面增加了一个行号,只是在内存中增加,文件不会保存
  set nonu 取消每行前的行号
s/rhce/RHCA/ 把光标所在的当前行中的第一个rhce换成RHCA
s/rhce/RHCA/g 把光标所在的当前行中的所有rhce换成RHCA
在命令模式,输入u表示还原,按ctrl+r表示前进
6,18s/rhce/RHCA/g 把从第6行到第18行的所有rhce换成RHCA
.,18s/rhce/RHCA/g 把从当前行到第18行的所有rhce换成RHCA
.,$-1s/rhce/RHCA/g 把从当前行到倒数第二行的所有rhce换成RHCA
 .表示当前行
  $表示最后一行,$-1表示倒数第二行
%s/rhce/RHCA/g 把全文所有rhce换成RHCA
%s/rhce//g 把全文所有rhce删除
10,18s/^/#/g 把从第10行到第18行开头加上#
10,18s/^#//g 把从第10行到第18行开头为#的字符去掉
在末行模式输入3,快速的进入到第三行
在命令模式输入/同样可以进入末行模式,用来查找
在命令模式
  先按5,再按shift+g或G跳到第5行
  按shift+g或G跳到最后一行
  按两下g跳到第一行
  按yy复制当前行
  按p粘贴
  按4yy复制当前行往下4行
  按dd剪切当前行,相当于删除
  按4dd从当前行剪切4行
  先按r再按5把当前字符替换为5
  按x把当前字符删掉
  按ctrl+v进入可视块,用上下左右箭头移动来选中要复制的区域,按y复制,按p粘贴
vim xx yy 同时打开xx和yy两个文件
  在末行模式下输入n进入下一个文件,N进入上一个文件,first跳到第一个文件,last跳到最后一个文  件。
在末行模式输入sp,可以分屏操作同一个文件
  按ctrl+w后按上下箭头可以跳屏
  或者按住ctrl,连续按两下w也可以跳屏
如果想每次打开文件都有行号显示,需要进入家目录,编辑.vimrc文件,输入set nu保存
vim /etc/sysconfig/i18n 这个文件规定了系统的编码
unix1dos -n xx yy 把linux下的文件xx转成Windows能正确显示的文件yy
 -n表示日期变成现在的
 -k表示日期还是原来的
dos2unix命令表示把Windows下的文件转成linux能正确显示的文件

 

posted @ 2016-05-30 09:18  彩虹过后的羽翼  阅读(299)  评论(0编辑  收藏  举报