linux复制后权限变化,学霸Linux基础命令吐血总结,给你当新华字典用
Linux基础命令学习笔记
一.登录Linux
[root@linux~]#
root:目前使用者账户 @之后接的内容:主机名称
root为管理员账户 #:提示字元(对于root账户) $:提示字元(对于一般账户)
系统出现乱码时,设置语言:LANG=en或者LANG=en_US
如何开通root帐户
ubuntu默认不启用root帐号,第一个用户具有管理员的权限,用它的普通密码就能执行sudo,用passwd root直接能修改root密码
~$ sudo passwd root
Password: //第一个用户的密码
Enter new UNIX password: //root密码
Retype new UNIX password:
passwd: password updated successfully
su root(进入root帐号)
二.指令方式
[root@linux~]# command [-options] parameter1 parameter2…
1. command为指令的名称,例如变化路径的指令为cd
2. 中括号[]不存在实际的指令中,加入参数设定是,通常为-号,例如–h;
完整的参数名称输入用—符号,例如–help
3. command,-options,parameter1...中间以空格来区分。不论几个空格shell都视为一格。
4. 指令太长时,使用\符号来连接下一行
5. 在Linux系统中,英文大小写字母是不一样的。如CD和cd不同
简单指令:
date日期
cal 日历
cal [month] [year] 显示任意年月的日历
bc 进入计算器+加 -减*乘 /除 ^指数 %余数quit退出scale=3小数点精确位数
三.重要热键
[Tab]按键
1. 命令补全,查询匹配的指令 #ca[Tab][Tab]
2. 档案补齐, #ls –al ~/.bash[Tab][Tab]
[Tab]接在一串指令的第一个字的后面,则为命令补全
[Tab]接在一串指令的第二个字以后时,则为档案补全
[Ctrl] + C 停止执行的程序
[Ctrl] + D 退出文字界面相当于exit功能
四.错误信息查看
[root@linux~]#DATE
~bash:DATE:command not found
bash表示我们的shell的名称
查询指令
man
1. man date
2. 输入/string向下搜索string这个字串
3. 输入?string向上搜索string这个字串
4. q 离开指令查询帮助
info
m进入到某一节点文章
n前往下一个info page处
p前往上一个info page处
s(/)在info page当中进行搜索
u向上移动一层
b光标移动到该info画面中第一个node处
e光标移动到该info画面中最后一个node处
关于关机:
1. 观察使用者who
观察网络情况 netstat –a
背景程序 ps –aux
2. 关机指令:
将资料同步写入硬盘:sync 关机之前必须执行(只有root账户才能执行)
常用关机指令:shutdown 只有root有权利关机
重新开机,关机:reboot,halt,poweroff
shutdown语法
[root@linux~]#/sbin/shutdown [-t秒] [-arkhncfF] [时间] [警告信息]
示例:
[root@linux~]#/sbin/shutdown –h 10 ‘I will shutdown after 10mins’
这个机器将在10分钟后关机!并且会显示在登入者的屏幕
-t sec:-t后面加秒数,就是“过几秒后关机”
-k:不要真的关机,只是发送警告讯息出去
-r:将在系统的服务停掉之后重新开机
-h: 将在系统的服务停掉之后,;立即关机
-n:不经过init程序,直接以shutdown的功能关机
示例:
[root@linux~]# shutdown -h now
立刻关机,其中now相当于时间为0的状态
[root@linux~]# shutdown -h 20:25
系统在今天的20:25分会关机
[root@linux~]# shutdown –h +10
系统再过10分钟后自动关机
[root@linux~]# shutdown –r now
系统立刻重新开机
[root@linux~]# shutdown –r +30 ‘The system will reboot’
再过三十分钟系统会重新开机,并显示后面的信息
[root@linux~]# shutdown –k now ‘This system will reboot’
仅发出警告信件的参数!系统并不会关机。
三.Linux档案属性
-rw-r--r-- 1 root root 5976 Jun 25 08:53 install.log.syslog
[属性] [连结数] [档案拥有者] [群组] [档案容量] [修改日期] [档案名]
属性1:权限
第一个属性:
d:表示目录 drwxr-x---
-:表示档案 -rw-r--r--
一个用户可以附属在一个或多个群组之下。
举例:
[-][rwx][r-x][r--]
[-] :代表为档案
[rwx]:拥有人的权限:可读,可写,可执行
[r-x]:同群组使用者权限:可读,可执行
[r--]:其他使用者权限:可读
在Windows下一个档案是否可以执行是否属性来判断的,例如.exe .com .bat
在Linux下一个档案是否能够执行由x属性来决定的,跟档案名没有绝对的关系
档案名:若档案名前多一个[.],则代表这个档案为[隐藏档]。
例如:[.bashrc_history]就是隐藏档。
改变档案权限:
chgrp:改变档案所属群组
chown:改变档案所属人
chmod:改变档案的属性、SUID、等等的特性
chgrp [-R] users install.log
1.users:必须是已经存在的群组,存在于/etc/passwd
2.[-R]递回的持续变更,值该目录下的文档都执行操作
chown [-R] root:root install.log
1.同时改变拥有者为root,群组为root
2.[-R]递回的持续变更,值该目录下的文档都执行操作
改变权限:
方法一:
r:4 w:2 x:1
[-rwxrwx---]
owner=rwx=4+2+1=7
group=rwx=4+2+1=7
others=---=0+0+0=0
方法二:
基本属性:(1)user (2)group (3)others
由三个字母来代表u,g,o
a代表all即全部三个群
chmod u=rwx,go=rx .bashrc (u=rwx,go=rx中间没有空格)
ls –al .bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
目录属性的意义:
r:表示具有读取目录结构清单的权限
w:具有移动该目录结构清单的权限:
1.建立新的档案和目录
2.删除已经存在的档案和目录(不论该档案属于谁)
3.将已存在的档案或目录进行更名
4.搬移该目录内的档案,目录位置。
x: x与能否进入该目录有关
[root@linux tmp]# mrdir testing *mkdir是建立目录指令
[root@linux tmp]# chmod 744 testing *改变目录权限
[root@linux tmp]# touch testing/test *touch可以建立一个没有内容的档案
[root@linux tmp]# chmod 600 testing/test *改变档案的权限
[root@linux tmp]# ls –al
drwxr--r-- 2 root root 4096 Jul 14 01:05 test
[root@linux tmp]# su dmtsai *切换用户身份为dmtsai
[dmtsai@linux tmp]$ ls –al test
---------------???? ? test *由于test档案的权限是root,dmtsai属于others,仅有r的权限
[dmtsai@linux tmp]$ cd testing
bash:cd: testing/:Permission denied *我们具有r的权限,但是没有x,所以dmtsai无法进入到/tmp/testing
[dmtsai@linux tmp]$ exit
档案名
*.sh:批次档,该文档有shell写成
*Z ,*.tar ,*tar.gz *.zip , *.tgz :经过打包的压缩档
*.html , *.php :网页相关档案
四.文件与目录管理
相对路径与绝对路径
.:代表当前的目录,也可以使用./表示
.. : 代表上一层目录,也可以../来表示
举例:
1.当前在/home目录下,要进入到/var/log这个目录,如何操作?
cd /var/log (absolute)
cd ../var/log (relative)
单个档案或目录的最大容量名称为255个字节
包含完整路径名称及目录/之后完整档名为4096个字节
Linux两层文件结构
重要目录:
/etc:这个目录是系统设定档放置的地方,包括系统上的账号和密码(/etc/passwd, /etc/shadow),还有个主要的网络服务的设定文档。
/usr/local /opt:软件安装一般统一放置在这两个目录下
/var:这个目录是在管理系统运作过程中的重要中间暂存资料的如:/var/lib与/var/run
最终的资料如邮件存放在/var/spool/mail目录中。所有服务的登录档(谁,时间,地址,操作)都存放在/var/log目录下。 异常存放地址:/var/log/messages
Linux档案系统ext2,ext3是ext2的升级版,可以对操作日志有记录,快速重新恢复文件。
相对路径与绝对路径
绝对路径:路径的写法一定由根目录/写起如cd /usr/share
相对路径:路径的写法不是由/写起如cd ../man 相对路径指“相对于目前工作目录的路径”
目录的相关操作
. 代表次层目录
.. 代表上一层目录
-代表前一个工作目录
~ 代表[当前使用者身份]所在的家目录
~account 代表account这个使用者的家目录
cd:变换目录
pwd: 显示当前的目录
mkdir:建立一个新的目录
rmdir: 删除一个空的目录
cd
举例:
[root@linux ~]# cd ~dmtsai
#代表去了dmtsai这个使用者的家目录,即/home/dmtsai
[root@linux dmtsai]# cd ~
#代表回到自己的家目录,即/root
[root@linux ~]#cd
#没有加上任何路径,也是代表回到自己的家目录
[root@linux ~]#cd ..
#表示去目前的上层目录
[root@linux ~]#cd –
#表示回到刚刚的那个目录
[root@linux ~]#cd /var/spool/mail
#绝对路径
[root@linux ~]#cd ../mqueue
#相对路径,退回上级目录后进入到mqueue目录
mkdir(建立新目录)
[root@linux ~]# mkdir [-mp]目录名称
-m:设定文件的权限!直接设定,不需要看预设权限(umask)
-p:帮助你直接将所需要的目录递回建立起来
范例1:
[root@linux tmp]# mkdir test1/test2/test3/test4
#没有办法直接建立此目录
[root@linux tmp]# mkdir –p test1/test2/test3/test4
#加了这个-p的参数,可以自行帮你建立多层目录
范例2:
[root@linux tmp]#mkdir –m 711 test2
[root@linux tmp]#ls –l /test2
drwx--x--x 2 root root 4096 Jul 18 12:54 test2
rmdir:删除空的目录
[root@linux tmp]#rmdir [-p]目录名称
# -p :连同上层“空的”目录一起删除
[root@linux tmp]#rmdir test1
删除空目录test1
[root@linux tmp]#rmdir –p test2/test3/test4
3个空目录一起删除
目录需要一层一层的删除,而且被删除的目录里面不能存在其他的目录或文件。如果要删除目录下的所有内容时需要用rm –rf test指令(较危险!)
ls:查询
ls:不显示隐藏的文件和目录
ls –a:显示所有的文件和目录
ls –l:不显示隐藏的文件和目录(显示所有属性)
ls –al:显示所有的文件和目录(显示所有属性)
ls –l bashrc*模糊查询,将匹配bashrc字段的文件和文件夹全部显示
mv(移动档案与目录,或更名)
[root@linux ~]#mv [-fiu] source destination
[root@linux ~]#mv [options] source1 source2…directory
参数:
-f:force意思,强制复制不询问。
-i:若目标档案(destination)已经存在,就会询问是否覆盖
-u:若目标已经存在,且source较新,才会更新。
范例一:将档案移动到目录中
[root@linux ~]#mv bashrc mvtest
范例二:将目录更名
[root@linux ~]#mv mvtest mvtest2?完成更名。更名的其他一个指令:rename
范例三:将两个以上文件或目录移动
[root@linux tmp]#touch testfile
[root@linux tmp]#mkdir testdir1 testdir2
[root@linux tmp]#mv testfile testdir1 testdir2
#注意如果有多个来源档案或目录,则最后一个目的档一定是“目录”
文件内容查询:
cat:由第一行开始显示档案内容
tac:从最后一行开始显示,tac就是cat倒着写
nl:显示的时候,顺便输出行号!
more:一页一页的显示档案内容
head:只看头几行
tail:只看尾巴几行
od:以二进制的方式读取档案内容
cp:复制
[root@linux~]#cp [-adfilprsu]来源档(source)目的档(destination)
[root@linux~]#cp [options] source1 source2 source3 directory
参数:
-a:复制所有内容,包括文件和文件夹,和文件的属性
-d:来源档的属性为连结档(快捷方式),复制连结档属性(快捷方式指向的文件),不是复制快捷方式本身。本质:创建一个快捷方式,并指向来源档指向的文件。
-s:目的档复制成为连结档(快捷方式),不管来源档A是真实文件还是快捷方式,复制完成后的文件成为快捷方式,并指向A。本质:创建一个快捷方式,并指向来源档(范例四)
-f:为强制的意思,若有重复或其他疑问时,先不回询问用户,直接复制
-i:若目的档(destination)已经存在时,在覆盖时会先询问
-r:递回持续复制,用于文件夹的复制行为;文件夹的权限会改变
-u:若destination比source旧才会更新destination!常用于文档更新
注意:如果来源档有两个以上,则最后一个目的档一定要目录才可以
范例一:将家目录下的.bashrc复制到/tmp下,并更名为bashrc
[root@linux~]#cd /tmp
[root@linux~]#cp ~/.bashrc bashrc
[root@linux~]#cp –i ~/.bashrc bashrc
cp:overwrite ‘bashrc’?n
#加上参数i,会在复制文件重复时提示。
范例二:将/var/log/wtmp复制到/tmp底下
[root@linux~]#cd /tmp
[root@linux~]#cp /var/log/wtmp . ?想要复制到当前文件夹,最后的.不能忘
#如果要将档案的所有特性都一起复制过来,可加入参数-a
范例三:复制/etc这个目录下的所有内容到/tmp底下
[root@linux~]#cp /etc/ /tmp
cp:omitting directory ‘/etc’ ?如果是目录,不能直接复制,需要加上参数-r
[root@linux~]#cp –r /etc/ /tmp
#注意:-r可以复制文件夹,复制后的文件夹权限会相应改变
#将权限也一起复制:cp –a /etc /tmp
范例四:将复制的bashrc建立一个连接档(快捷方式)
[root@linux~]#cp –s bashrc bashrc_slink
[root@linux~]#ls –l bashrc*
-rw-r--r-- 2 root root 395 jul 18 22:08 bashrc
1rwxrwxrwx 2 root root 395 jul 18 22:08 bashrc_slink -> bashrc
#bashrc_slink是由-s参数造成。创建了一个快捷方式
范例六:bashrc_slink复制成为bashrc_slink2(区分-d –s的用法)
[root@linux~]#cp bashrc_slink bashrc_slink2
[root@linux~]#cp –d bashrc_slink bashrc_slink3
[root@linux~]#cp –s bashrc_slink baschrc_slink4
[root@linux~]#ls –l bashrc_slink*
lrwxrwxrwx 1 root root 6 jul 18 22:31 bashrc_slink – > bashrc (该文件原本存在)
-rw-r--r--1 root root 395 jul 18 22:31 bashrc_slink2 (只复制了一个快捷方式,无任何意思)
lrwxrwxrwx 1 root root 6 jul 18 22:31 bashrc_slink3 – > bashrc (-d用法,复制快捷方式,并指向bashrc_slink指向的文件)
lrwxrwxrwx 1 root root 6 jul 18 22:31 bashrc_slink4 – > bashrc_slink(-s用法,复制快捷方式,并指向源文件)
范例七:将家目录的.bachrc和.bash_history复制到/tmp
[root@linux tmp]#cp ~/.bashrc ~/.bashrc_history /tmp
#可以将多个资料一次复制到同一个目录去!
复制档案时,一般复制后文件的权限就是操作者的权限。由于这个特性,在进行备份时要注意特殊权限档案,例如密码档以及一些设定档。不能直接以cp复制,需要加入-a或-p参数。
另外,如果要复制档案给其他使用者,也必须要注意到档案的权限(包括读、写、执行以及档案拥有者),否则,其他人没有权限进行操作。
复制前的注意点:
1.是否需要完整的保留来源档案的资讯(包括文件和属性)
2.来源档案是否为连结档(快捷方式)
3.来源档是否为特殊的档案,例如FIFL,socket等
4.来源档是否为目录?
rm(移除档案或目录)
参数:
-f:就是force意思,强制删除
-i:互动模式,在删除前会询问使用者
-r:递回删除。常用于目录的删除。
范例一:删除一个不为空的目录
[root@linux tmp]#mkdir test
[root@linux tmp]#cp ~/.bashrc test/
[root@linux tmp]#rm
范例二:删除一个带有-开头的档案
[root@linux tmp]#ls *aa*
-aaa-
[root@linux tmp]#rm –aaa-
rm:invalid option --a ?因为“-”是参数
[root@linux tmp]#rm ./-aaa-?正确方法
[root@linux tmp]#rm –rf test 会将test目录下的文件和子目录全部删除,后果严重
资料截取
head(取出前面几行)
[root@linux ~]#head [-n number]档案
参数:
-n:后面接数字,代表显示几行
范例:
[root@linux ~]#head /etc/man.config
#预设的情况中,显示前面十行!若要显示20行,就要这样:
[root@linux ~]#head –n 20 /etc/man.config
tail(取出后面几行)
[root@linux ~ ]#tail [-n number]档案
tail用法与head用法一致。
范例:若要显示文件第11行到第20行
那么先取前20行,再取后面的10行
head –n 20 bashrc | tail –n 10
修改档案时间和建新档:touch
touch使用情况:
1. 建立一个空的档案
2. 将某个档案日期修订为目前
那么umask指定的是『该预设值需要减掉的权限!』因为r、w、x分别是4、2、1分,所以棉!也就是说,当要拿
掉能写的权限,就是输入2分,而如果要拿掉能读的权限,也就是4分,那么要拿掉读与写的权限,也就是6分,
而要拿掉执行与写入的权限,也就是3分,这样了解吗?请问您,5分是什么?呵呵!就是读与执行的权限啦!如
果以上面的例子来说明的话,因为umask为022,所以user并没有被拿掉属性,不过group与others的属性被拿掉
了2 (也就是w这个属性),那么由于当使用者
档案预设权限:umask
在预设权限的属性上,目录与档案是不一样的。由于档案我们不希望他具有可执行的权力,预设情况中,档案是没有可执行(x)权限的。因此∶
●若使用者建立为『档案』则预设『没有可执行( x )项目』,亦即只有rw这两个项目,也就是最大为666分,预设属性如下∶
-rw-rw-rw-
●若使用者建立为『目录』,则由于x与是否可以进入此目录有关,因此预设为所有权限均开放,亦即为777分,预设属性如下∶
drwxrwxrwx
umask就是“该预设值需要减掉的权限”,r,w,x分别为4、2、1分
去掉写入的权限022
建文件:(-rw-rw-rw-)-(-----w--w-)è-rw-r--r--
建目录:(drwxrwxrwx)-(d----w—w-)èdrwxr-xr-x
操作:
[root@linux ~ ]# umask 002
#去掉others写入的权限。
档案隐藏属性:
chattr(设定档案隐藏属性)
[root@linux ~]#chattr [+-=] [ASacdistu]档案或目录名称
参数:
+:增加一个特殊参数,其他原本存在参数则不变
-:移除一个特殊参数,其他原本存在参数则不变
=:设定一个参数
A:设定A后,这个文件(或目录)的存取时间atime将不可被修改
i:可以让一个文件“不能被删除、改名、设定连结也无法写入或新增资料”,提高系统安全性。(重要)
a:当设定a后,这个文件只能增加资料,而不能删除,只有root才能设定,非常适用于log file这种登录文件。
[root@linux tmp]#touch attrtest
[root@linux tmp]#chattr +i attrtest
[root@linux tmp]#rm attrtest
rm:cannot remove ‘attrtest’: Operation not permitted
#即使root也是没有权限将这个文档删除。
[root@linux tmp]#chattr –i attrtest
#解除档案设定
lsattr(显示档案隐藏属性)
[root@linux ~] lsattr [-aR]档案或目录
参数:
-a:将隐藏档的属性显示;
-R:连同子目录的资料也一起显示出来!
档案特殊权限:SUID/SGID/Sticky Bit
Set UID:让一般使用者在执行程序时,能够短暂具有该程序拥有者的权限。对文件有效,文件夹无效
Sticky Bit:在具有SBit的目录下,使用者若在该文件夹下具有w,x的权限,则当使用者在该目录下建立档案或目录时,只有档案拥有者与root才有权力删除。
权限设定
我们使用chmod xyz filename的方式来设定filename的属性
4:SUID
2:SGID
1:Sticky bit
file:档案类型查看
档案搜索
which(寻找“执行档”)
[root@linux ~]#which [-a] command
参数:
-a:将所有可以找到的指令均列出,而不止第一个被找到的指令名称
[root@linux ~]#which passwd
/usr/bin/passwd
whereis(寻找特定档案)
参数:
-b:只找binary的文件
-m:只找在说明档manual路径下的档案
-s:只找source来源档案
-u:没有说明档的档案!
[root@linux ~]#whereis passwd
#任何与passwd有关的档名都会被列出来
locate
直接查询文件
[root@linux ~]#locate filename
find
[root@linux ~ ]#find [PATH] [option] [action]
参数:
1. 与时间相关参数:
-atime n:在n天之前的“一天之内”被access过的档案
-ctime n:在n天之前的“一天之内”被change过状态的档案
-mtime n:在n天之前的“一天之内”被modification过的档案
-newer file:file为一个存在的档案,只要档案比file还要新,就会被列出来
2. 与使用者或群组名称有关的参数:
-user name:name为使用者账号名称
-group name:name为群组名称
-nouser:寻找档案的拥有者不存在/etc/passwd的人
-nogroup:寻找档案的拥有群组不存在与/etc/group的档案
3. 与档案权限及名称有关的参数
-name filename:搜寻档案名称为filename的档案
-type TYPE:搜寻档案的类型为TYPE的,主要类型:一般正规档案(f),装置档案(b,c)目录(d),连结档(l),sockte(s),FIFO(p)
-perm mode:搜寻档案属性“刚好等于”mode的档案,这个mode为chmod的属性值。-rwsr-xr-x的属性为4755
-perm –mode:搜寻档案属性“必须要全部包括的mode属性”例如要搜寻-rwxr--r--,即0744的档案,使用-perm -0744,这个档案的属性为-rwsr-xr-x,亦即4755,也会被列出来
-perm +mode:搜寻档案属性“包含任一mode的属性”
4. 额外可进行的指令:
-exec command: command为其他指令,-exec后面可再接额外的指令来处理搜寻到的结果。
范例一:将过去系统上面24小时内有更新过内容(mtime)的档案列出
[root@linux ~]#find / -mtime 0
#0代表目前的时间,从现在开始到24小时前。
#find / -mtime 0 从今天之前的3*24~4*24小时之间更新的档案
#-atime和-ctime的用法相同
范例二:比较档案新旧
[root@linux ~]#find /etc -newer /etc/passwd
范例三:搜寻/home下属于dmtsai档案
[root@linux ~]#find /home –user dmtsai
范例四:找出档案名为passwd这个档案
#搜寻-name的档案名
范例五:搜寻档案属性为f的档案
[root@linux~]#find /home -type f
范例六:将找到的档案使用ls –l列出来
[root@linux ~]#find /home –type f -exec ls –l {} \;
#-exe后面的ls –l就是额外的指令
# -exec最后用\;结束
范例七:搜寻档案名包含’http’
find /etc -name ‘*http*’
五.磁盘系统管理
查看磁盘容量:df
[root@linux~]#df [-ahikHTm] [文档名或目录]
参数:
1. –h以较易读的容量格式显示
2. 不计算硬盘容量,而是以inode的数量来显示
[root@linux~]#df –h
#将容量结果以较易读的方式显示出来
[root@linux~]#df –h /etc
#将/etc做在的磁盘已易读形式显示容量
显示文件或文件夹容量:du
[root@linux~]#du [-ahskm]档案或目录名称
参数:
-h:以易读的方式显示
-s:不显示目录内的文件容量,只显示总的容量
[root@linux~]#du –hs /*
#显示根目录下每个文件夹的容量
查看系统内存:free
查看系统信息CPU+内存+进程:top
Linux的EXT2档案系统(inode)
在标准的ext2档案系统当中,我们将每个档案的内容分为两个部分来储存,一个是档案的属性,另一个是档案的内容。所以ext2规划出inode与Block来分别存储档案的属性(放在inode)与档案的内容(放在Block)
Block:记录档案内容资料
inode:记录档案的相关属性,档案内容放置在哪一个Block之内
ext2档案系统特色
1. Blocks与inode在一开始格式化时就已经固定
2. 一个partition能够容纳的档案数与inode有关
3. 一般来说,每4Kbytes的硬盘空间分配一个inode
4. 一个inode的大小为128bytes
5. Block为固定大小,目前支持1024/2048/4096bytes等
6. Block越大,则损耗的硬盘空间也越多。
7. 1个inode可以对应多个Block
8. 当block大小越小,而inode数量越多,则可利用的空间越多,但是大档案写入的效率差
9. 当block大小越大,而inode数量越少,大档案写入效率佳,可是浪费的硬盘空间较多。
六.vi文本编辑器
vi共有三种模式,“一般模式”、“编辑模式”、“指令列命令模式”
一般模式:
以vi处理一个文档,刚进入时就是一般模式,该模式下可以“删除字元”或“删除整行”可以复制,粘贴资料。但是无法编辑
编辑模式:
输入【i,I,o,O,a,A,r,R】等字母后进入到编辑模式。在页面下方出现‘insert或replace’才可以输入任何字来输入到档案中
指令列命令模式:
在一般模式中输入:/ ?可以提供读取、搜索、存档、退出vi、显示行号等操作
一般模式:光标移动
n: n为数字,光标向下移动n行
n:n为数字,光标右移n位
gg:移动到文档的第一行
0:移动到这一行的最前面
G:移动到档案的最后一行。
一般模式:搜索与取代
/word:开始向下搜索关键字word
?word:开始向上搜索关键字word
n:重复执行搜索命令
N:执行反向结果,若之前输入/word向下搜索,按N则向上搜索。
:n1,n2s/word1/word2 n1,n2为数字,在n1与n2行之间寻找word1字段,并用word2来取代。
:1, $s/word1/word2/gc 从第一行到最后一行寻找word1字串,并将该字串取代为word2!在取代前显示提示,是否取代。
一般模式:删除、复制、粘贴
x,X: x向后删除一个字符(del),X向前删除一个字符(backspace)
nx:n为数字,连续向后删除n个字符。
dd:删除光标所在的那一行
ndd:n为数字,删除n行
yy:复制光标所在那一行
nyy:复制n行
p,P: p在光标行下面粘贴,P在光标行上面粘贴
u:撤销上一步
[Ctrl]+r:重做上一个动作
u和[Ctrl]+r搭配使用可以完成一直撤销的操作
进入编辑模式:
i ,I:插入。i:在光标处进行插入操作。I光标移动到该行最前面出开始插入
a,A: a从目前光标处下一个字符开始插入,A所在行最后一个字符开始插入
o,O: o在光标下一行插入新的一行。O光标所在上一行插入新的一行。
r,R:取代 r会取代光标处的一个字符;R会一直取代光标所在文字,知道ESC
指令列命令模式
:w 将编辑的资料保存
:w! 强制保存。
:q 退出
:q! 强制退出
:wq 保存后退出
ZZ 若档案没有变更,则不保存离开,若档案已经变动,则保存后退出
:n1, n2 w [filename] 将n1到n2的内容存储成filename这个档案
:! command 暂时离开vi到指令模式下执行command的显示结果。
例如“:! ls /home”即离开vi后查看/home底下以ls输出的档案资讯。
:set nu :显示行号,设定后会在每一行的字首显示该行行号
:set nonu:取消行号。
vi简单练习题
1. 请在/tmp这个目录下建立一个名为vitest的目录;
2. 进入vitest这个目录当中;
3. 将/etc/man.config拷贝到本目录底下(或由上述的连结下载man.config档案);
4. 使用vi开启本目录下的man.config这个档案;
5. 在vi中设定一下行号;
6. 移动到第58行,向右移动40个字元,请问您看到的双引号内是什么目录?
7. 移动到第一行,并且向下搜寻一下『bzip2』这个字串,请问他在第几行?
8. 接著下来,我要将50到100行之间的man改为MAN,并且一个一个挑选是否需要修改,如何下达指令?
9. 修改完之后,突然反悔了,要全部复原,有哪些方法?
10. 我要复制51到60行这十行的内容,并且贴到最后一行之后;
11. 删除11到30行之间的20行;
12. 将这个档案另存成一个man.test.config的档名;
13. 去到第29行,并且删除15个字元;
14. 储存后离开吧!
整个步骤可以如下显示∶
1. 『mkdir /tmp/vitest』
2. 『cd /tmp/vitest』
3. 『cp /etc/man.config .』
4. 『vi man.config
linux复制后权限变化,学霸Linux基础命令吐血总结,给你当新华字典用相关推荐
- linux复制后权限变了,linux系统(centos debian freebsd等)如何拷贝数据并保持原来的属性(权限 属主)不变?...
linux系统(centos debian freebsd等)如何拷贝数据并保持原来的属性(权限 属主)不变? 2018-07-01 23:41 分享人:老牛 命令 cp -avx 重点是后面的参数a ...
- linux chown 将root改变所有者为admin,Linux用户管理 权限管理 内存管理 网络管理命令 (第四天)...
默认添加的用户会自动加入和用户名一样的组中 su 切换用户 查看当前登陆的用户: whoami id` 查看当前用户属于哪个组:groups groupadd 组名 添加组 groupdel 组名 删 ...
- linux 复制包括子目录_【Linux分享】Linux常用命令+教程分享
今天分享分为两部分 :)PART01 Linux常用命令分享/PART02 关于BD面试经验分享 30mins Linux Command:PART 1 你本可以张口就来.....本篇内容分享 ...
- Linux:CentOS 7中常用的基础命令
对于学习Linux系统来说,命令是必须熟练掌握的第一个部分.Linux系统中的命令有600多个,但常用的基础命令并不多.虽然不同版本的Linux系统的命令稍有不同,但命令的语法与使用方法基本相同,因此 ...
- linux目录默认权限是什么,linux文件目录默认权限(详解)
1.文件的默认权限是没有x的,即文件的最大默认权限为666(-rw-rw-rw) 2.由于进入目录和目录的x权限有关,故目录的最大默认权限为777(drwxrwxrwx) 查看默认权限需要使用umas ...
- Linux:分享50个实用的基础命令,欢迎收藏!
今天小编给大家分享50个实用的基础命令,欢迎收藏! 1.存放用户账号的文件在哪里? /etc/passwd 2.如何删除一个非空的目录? rm -rf 目录名 3.查看当前的工作目录用什么命令? pw ...
- Linux下的权限掩码umask,Linux下的权限掩码umask
权限掩码umask 我们都知道在linux下创建一个文件或者目录之后是可以通过chmod等命令进行权限设置,来达到给当前用户.用户组用户以及其他用户分配不同的访问权限.那么,我们新创建的目录和文件本身 ...
- linux find按权限查找,如何使用find命令按权限查找文件详解
本文分享了使用带有-perm选项的find命令通过权限来查找Linux系统上的资源. Linux文件系统可能很复杂.添加已挂载的远程文件系统,可移动媒体以及您创建的任何服务器特定目录,您或您的用户可能 ...
- linux 安装nginx 详解教程 nginx基础命令
目录 一.nginx 安装 二.nginx 配置 三.nginx 基础命令 1.帮助命令 2.nginx启动命令 3.查看nginx启动进程 4.nginx停止 5.nginx重启 6.重新加载 ...
最新文章
- Abp vNext发布v2.3!
- java安全 ——JAAS(Java 认证和授权服务)开发指南
- 消息队列(MQ)比较
- vs中git工具的使用
- 计算机网络原理思维导图
- python-onvif库基本使用
- 手机兼职做任务发布悬赏赚钱的APP汇总到底有多少?
- Android 集成腾讯Bugly
- html+p标签和span,文章段落用span和p标签对seo有影响吗
- php高德地图手机定位,AMap3DMap_Demo
- 7-1 圆锥的体积 (20 分)
- 驱动程序(9) 利用Windriver修改代码实现DMA传输定制功能的驱动程序
- webmin 远程代码漏洞复现
- ubuntu 局域网传输文件
- Windows Server 2008 各个版本微软官方下载
- mailbox数据发送和接收的过程
- cocosc++怎么打印_c++打印api
- 新手如何起步做自媒体?
- Linux部署python接口自动化教程,基于centos7 python3
- Java-输出10以内的质数
热门文章
- java遍历变量_java – 循环遍历众多变量
- 一些五笔不好打出来的字(转)-留作记念
- APP跳转微信小程序,跳转微信公众号
- [Inferior 1 (process 17260) exited normally] Debugger finished with status 0
- 国内外无代码可视化开发平台一览
- 嵌入式技术及应用基础实验
- 医咖会免费STATA教程学习笔记——单因素方差分析
- python的logo长什么样子
- 什么是迭代计算机编程,什么是递归?什么是迭代?
- 用计算机撩人套路,给大家一些撩人的套路情话~