linux文件与目录的基本操作、linux命令

【原文:http://blog.csdn.net/youngerhao/article/details/7063984

1、Linux下的目录结构:

/:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中

/bin:/usr/bin:可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。

/boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可

/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt。

/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。

注:/etc/X11存放与x windows有关的设置。

/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据

/lib:/usr/lib:/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。

/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found

/mnt:/media:光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。

/opt:给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下

/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等

/root:系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。

/sbin:/usr/sbin:/usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。

/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下

/srv:服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内

/usr:应用程序存放目录,/usr/bin存放应用程序,/usr/share存放共享数据,/usr/lib存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包。/usr/share/doc:系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间

/var:放置系统执行过程中经常变化的文件,如随时更改的日志文件/var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大的磁盘空间

 

2、颜色在linux下的重要性:

   蓝色:目录,

绿色:可执行文件,

天蓝色:符号文件,

白色:普通文件,

黄色:设备文件,

红色:失效文件的链接,

浅红:压缩文件或tarball文件,

粉色:图片文件

3、

[zhy@localhost root]$

[当前登陆用户名@机器名  当前目录]管理员

   

4、更改用户权限:

      更改用户身份su命令

1)          由普通用户更改为root

$ su

       Password:不显示

2)          由root更改为普通用户

# su zhangsan

不需要口令

5、命令

 

1)、cd  更改的路径名

    cd   /   根目录

    cd   ..   上级目录

 

2)、ls 显示文件(目录)信息

帮助信息:man   ls    ls   --help (有中文)

参数:

  -a 显示所有文件,包括以.开头的隐藏文件

  -l以长格式显示文件或子目录的详细信息

  -R 递归的显示指定目录中的各个子目录中的文件

   -S 以文件大小排序

   -s  给出每个目录项所用的块数

   -t  以文件的修改时间的先后顺序排序

   -d  如果参数是目录,只显示其名称而不显示其下的各文件,往往与1选项一起使用,已得到目录的详细信息

   -m 横向显示目录下的文件,文件名之间以逗号分隔。

 

  

Ls –l  以长格式显示

 

自己的权限可读可写

作者权限

所属组权限

其他人权限

文件所有者     所属的组   文件类型   d表示目录   -表示文件   l表示连接

R  w  x

4   2  1

-l:以长格式显示

        -         rwx           rw-           r--

      文件类型     作者权限    所属组权限    其他人权限

                      111          110             100

                     4+2+1=7      4+2=6            4

     r:read  读取     4

     w:write  写入    2

     x:  可执行     1

 

           3)、cd更改目录

cd  文件目录

 

            4)、   mkdir    touch(创建文件)

           语法:  mkdir [参数] 目录名 [目录名]

目录加上绿色必须有x权限   能用cd命令

     文件创建之后,没有x权限 

     参数:-m

               指定权限:

[root@localhost home]# mkdir dir2 -m 755

           -p

       创建多级目录,同时可创建它的子目录

[root@localhost dir2]# mkdir -p d1 d2 d3

             

                     touch

 如果touch 后面紧跟的文件名称存在 就会更新为当前的时间

                           否则生成一个新的文件(相当于新建一个空文件)

 [root@localhost dir2]# touch *

将当前目录下的所有文件时间修该为当前系统时间。

 

                          [root@localhost dir2]# touch –d 200111118 test

                           将文件test的时间修改为20011年11月18日

 

          

权限掩码umask  022  

    设置掩码  在umask 后加上你要设置的 权限掩码 422

      目录真实权限=777-umask    755

      文件真实权限=666-umask    644

 

  

     5)、 rmdir    rm        

  语法:  rmdir [参数] 目录名 [目录名]

       rmdir 

          参数:

  -p   递归删除目录,当子目录删除后其父目录为空时,也一同被删除。

 

删除的必须是一个空目录 ,并且当前目录也不能为被删除的目录,或者是子目录,否则目录不能从系统中删除。

       参数:

          

       rm

          参数:

                -i询问用户是否删除,在进行删除。

               -r  递归删除

               Ctrl+c 停止删除

               -f  强制删除

      用rm删除目录时不能删除子目录,必须加上   -r   这个参数才可以 递归删除  ctrl+c 停止删除    强制删除目录  rm –f

      对于连接文件,只是删除了连接,原有文件均保持不变

 

 

            6)、建立连接文件:  ln命令

               ln [-s]  源文件或目录   连接文件名

               参数:-s  建立软连接(或符号连接)

     7)、查看被起别名的命令:alias 

          alias  命令名

 

     8)、临时修改权限:Chmod

     

1)      使用字母方式

U  表示user用户

分为:加、减、等于

u- (r  w  x)

u+ (r  w  x)

u=(r  w  x)

[root@localhost root]# ls -l test.html

-rw-r--r--    1 root     root           65 12月  9 08:30 test.html

[root@localhost root]# chmod u-w test.html

[root@localhost root]# ls -l test.html

-r--r--r--    1 root     root           65 12月  9 08:30 test.html                

 

                                                                                                                                                                                                                                                                                                                                                                                                                                              

2)      使用数字方式   chmod 权限 文件名

dir11  dir4  etc  file1  file2  shadow

 [root@localhost dir1]# chmod 644 file1

[root@localhost dir1]# ls

dir11  dir4  etc  file1  file2  shadow

 

 

      9)、文件或目录复制 cp  copy

  语法:  cp [参数] 源文件或目录  目标文件或目录

参数:

-f 如果目标文件或目录已经存在,不询问用户是否删除,直接删除在赋值

                     -i 如果目标文件或目录已经存在,询问用户是否删除,在进行复制。

                     -R 递归复制目录,即连同目录下的子目录和文件一起复制

                 -p 在复制时保持源文件的所有者、权限和时间标志。

              *:通配符,在文件名中出现表示通配符

         cp   file1 file2 在同一个目录下表示将file1重命名为file2

         Tab  补齐文件名

 

10)、mv  文件移动和重命名

      语法:  mv [参数] 源文件  目标文件

 

            mv用于文件名的修改,或者是将文件或目录由一个目录移入另一个目录

 

            如果移入一个目录则原来的文件名不会变,如果目标文件也是一个文件,则源文件会改为目标文件的名称

        参数:

-f 如果目标文件或目录已经存在,不询问用户是否覆盖,直接进行覆盖操作

                     -i 如果目标文件或目录已经存在,询问用户是否覆盖原文件或目录

 

          [root@localhost user]# mv /tmp/a.txt .  将a.txt移动到当前目录下

          [root@localhost user]# mv mydata   myfile 

 

 

     11)、cat 显示文件内容

          语法:  cat [参数] 文件名 [文件名]

 

       将输出的内容显示等到屏幕上,如果有多个文件,则依次读取文件内容并显示,如果文件过长,会自动出现滚屏,按ctrl+s 停止滚屏,  ctrl+q 回复滚屏。

               参数:

                    -n 显示输出行的行号。

                    -s 将相连的多个空行用单一空行代替。

                    -e 在每行末尾显示$符号。

    

 

     12)、显示文本时用到的命令:more   less   wc   head   tail  

 (1)more

语法:  more[参数] 文件名

 ----分页显示 more 文件名称  回车显示下一行   空格显示下一页  不能回滚  只能向下移动

 

(2)less

语法:  less[参数] 文件名

  -分页显示 more 文件名称  回车显示下一行   空格显示下一页  能回滚 

 

(3)wc 统计

-c或--bytes或--chars   只显示Bytes数。
  -l或--lines   只显示行数。
  -w或--words   只显示字数。每一个空格算一个

 

例题:

    [root@localhost user]# wc 3.txt  /home/user/a.php

统计3.txt  a.php  文件中分别出现的行数、单词数、字符数,以及总的结果数

3   4   65    3.txt

4   2   57    a.php

7   6   122   总用量

 

(4)head   显示头几行

       Head  -10  文件名

   语法:  head[参数] 文件名列表

(5)tail     显示后几行

       Tail   -10  文件名

语法:  tail[参数] 文件名列表

              [root@localhost user]#  hear -10 | tail -1  a.php

显示a文件第十行 hear -10 | tail -1

 

13)、find查找

find 可以指定查找条件如名称,类型,时间,文件大小,权限和所有者查找,针对多个条件进行与或非的逻辑运算。我们可以控制find的查找的行为,还可以和其他命令组合使用。

find 
find .
find . -print
三者等效, 查找当前目录下所有的文件和目录(递归子目录),以每行一个文件或者目录的形式列举出,不包含隐藏文件

find lib opt bin
同上,查找指定的多个目录(lib/opt/bin)

(1) 指定查找条件

1) 按名称查找


find . -name readme.txt
查找当前目录下(递归子目录)的所有名为readme.txt的文件

find . -name \*.txt
find . -name "*.txt"
查找当前目录下(递归子目录)的所有名称以.txt结尾的文件,注意*号的写法,需要前面加\或者放到双引号中

find . -iname \*.txt
默认find是区分大小写的,如果不想区分大小写,请使用-iname替代-name,如上则"abc.TXT"将被查找到

2) 按类型查找

find . -type d 
查找当前目录下(递归子目录)的所有目录

find . -type f
查找当前目录下(递归子目录)的所有文件

find . -type l
查找当前目录下(递归子目录)的所有符号链接

3) 按时间查找

1. 以小时为单位的时间
find 命令三个选项用于按照时间查找,单位都是小时:

mtime — 文件内容上次修改时间
atime — 文件被读取或访问的时间
ctime — 文件状态变化时间

这三个选项都需要配置一个n值使用,可以是-n / n / +n:
-n 小于 n
n 正好与 n 相等
+n 大于 n

find . -mtime -1
查找当前目录下(递归子目录)的所有1小时内修改的文件和目录
find . -mtime +1
查找当前目录下(递归子目录)的所有修改时间超过1小时的文件和目录
find . -mtime 1
查找当前目录下(递归子目录)的所有恰好在1小时前修改的文件和目录

2. 以分钟为单位的时间
用法和*time类似,mmin、amin和cmin 的不同在于单位时间是分钟,用于查找在不到1小时的时间内变化了的文件和目录

find . -mmin -10
查找当前目录下(递归子目录)的所有10分钟内修改的文件和目录

find . -mmin +20
查找当前目录下(递归子目录)的所有20分钟外1小时内修改的文件和目录

3. 与特定的文件比较
-newer,-anewer和-cnewer选项用于查找与特定的文件比较的已修改或访问过的文件,类似mtime,atime和ctime
-newer 指内容最近被修改的文件
-anewer 指最近被读取过的文件
-cnewer 指状态最近发生变化的文件

find . -newer a.txt
查找当前目录下(递归子目录)的所有修改时间在a.txt之后(所以文件更新)的文件和目录


4) 按文件大小查找

1. -size 选项用于查找满足指定的大小条件的文件(注意不查找目录), +表示大于, -表示小于, 没有+1表示正好等于。文件大小的单位可以是字节(用c表示), kb(用k表示)。

find . -size -100c
查找当前目录下(递归子目录)的所有文件大小小于100字节的文件

find . -size +100k
查找当前目录下(递归子目录)的所有文件大小大于100k的文件

find . -size 0
查找当前目录下(递归子目录)的所有文件大小为0的文件

2. -empty 查找空文件和空文件夹, 和-size 0不同的在于-size 0 只查找空文件,或者说-empty -type f 等同于-size 0 :

find . -empty
查找当前目录下(递归子目录)的所有文件大小为0的文件和空文件夹

find . -empty -type f 
查找当前目录下(递归子目录)的所有文件大小为0的文件

find . -empty -type d
查找当前目录下(递归子目录)的所有空目录


5) 按权限和所有者查找

find . -perm 777
查找当前目录下(递归子目录)的所有权限为777的文件和目录

find . -perm -u=rwx
查找当前目录下(递归子目录)的所有user权限为rwx的文件和目录

find . -perm -ug=x
查找当前目录下(递归子目录)的所有user和group权限为x的文件和目录

find . -user sky
查找当前目录下(递归子目录)的所有user为sky的文件和目录

find . -group users
查找当前目录下(递归子目录)的所有group为users的文件和目录

(2) 查找条件的逻辑运算

1. 逻辑与

find . -name "*.java" -size -mmin -10
find . -name "*.java" -a -size -mmin -10
查找当前目录下(递归子目录)的所有名为*.java并且修改时间在10分钟之内的文件,-a是默认选项

2. 逻辑或
find . -name "*.class" -o -name "*.jar"
查找当前目录下(递归子目录)的所有名为*.class或者*.jar的文件和目录

3. 逻辑非

find . ! -user sky
查找当前目录下(递归子目录)的所有user不是sky的文件和目录

(3) 控制查找的行为

find . -maxdepth 3 -name "*.txt"
查找当前目录下(递归子目录)的所有名为*.txt的文件,目录深度不超过3层

find . -maxdepth 1 -name "*.txt"
查找当前目录下(不递归子目录,因为maxdepth为1)的所有名为*.txt的文件

find . -mindepth 3 -name "*.txt"
查找当前目录下(递归子目录)的所有名为*.txt的文件,目录深度不低于3层

find . -mindepth 1 -name "*.txt"
查找当前目录下的子目录中(递归子目录)的所有名为*.txt的文件,不包含当前目录

find . -depth -name "*.txt"
查找当前目录下(递归子目录)的所有名为*.txt的文件,每个目录都是先在目录中进行查找,然后才继续查找其子目录

(4) find和其他命令的组合

find . -name "*.jar" -exec ls -l {} \;

find . -name "*.jar" -ls
查找当前目录下(递归子目录)的所有*.jar文件并使用ls -l列出详细信息

find . -name "*.java" -exec grep HashMap {} \;
查找当前目录下(递归子目录)的所有的含有"HashMap"字样的*.java文件

find . -name "*.sh" -exec mv {} backup \;
查找当前目录下(递归子目录)的所有的*.sh文件并移动到backup目录中

 

14)、locate 查找

          [root@localhost user]# Locate   file1

  Locate: 在文件名数据库中查找文件和目录,速度比find命令快(不存在库就会查不到)

     需要注意的是 如果用locate查找必须先执行它Updatedb,保证查找的准确性

15)、grep 查找

语  法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

 

参  数:
  -a或--text   不要忽略二进制的数据。
  -A<显示列数>或--after-context=<显示列数>   除了显示符合范本样式的那一列之外,并显示该列之后的内容。
  -b或--byte-offset   在显示符合范本样式的那一列之前,标示出该列第一个字符的位编号。
  -B<显示列数>或--before-context=<显示列数>   除了显示符合范本样式的那一列之外,并显示该列之前的内容。
  -c或--count   计算符合范本样式的列数。
  -C<显示列数>或--context=<显示列数>或-<显示列数>   除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
  -d<进行动作>或--directories=<进行动作>   当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
  -e<范本样式>或--regexp=<范本样式>   指定字符串做为查找文件内容的范本样式。
  -E或--extended-regexp   将范本样式为延伸的普通表示法来使用。
  -f<范本文件>或--file=<范本文件>   指定范本文件,其内容含有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每列一个范本样式。
  -F或--fixed-regexp   将范本样式视为固定字符串的列表。
  -G或--basic-regexp   将范本样式视为普通的表示法来使用。
  -h或--no-filename   在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
  -H或--with-filename   在显示符合范本样式的那一列之前,表示该列所属的文件名称。
  -i或--ignore-case   忽略字符大小写的差别。
  -l或--file-with-matches   列出文件内容符合指定的范本样式的文件名称。
  -L或--files-without-match   列出文件内容不符合指定的范本样式的文件名称。
  -n或--line-number   在显示符合范本样式的那一列之前,标示出该列的列数编号。
  -q或--quiet或--silent   不显示任何信息。
  -r或--recursive   此参数的效果和指定“-d recurse”参数相同。
  -s或--no-messages   不显示错误信息。
  -v或--revert-match   反转查找。
  -V或--version   显示版本信息。
  -w或--word-regexp   只显示全字符合的列。
  -x或--line-regexp   只显示全列符合的列。
  -y   此参数的效果和指定“-i”参数相同。
  --help   在线帮助。

 

使用

如果预料到有许多输出,您可以通过 管道将其转到‘less’上阅读: feedom.net

$ grep magic /usr/src/linux/Documentation/* | less

这样,您就可以更方便地阅读。

有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用 *)。如果您忘了,‘grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按 <CTRL c> ,然后再试。

下面是一些有意思的命令行参数:

·         grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,

·         grep -l pattern files :只列出匹配的文件名,

·         grep -L pattern files :列出不匹配的文件名,

·         grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),

·         grep -C number pattern files :匹配的上下文分别显示[number]行,

·         grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,

·         grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

这里还有些用于搜索的特殊符号:

·         < 和 > 分别标注单词的开始与结尾。
例如:

o        grep man * 会匹配 ‘Batman’、‘manic’、‘man’等,

o        grep \'<man\' * 匹配‘manic’和‘man’,但不是‘Batman’,

o        grep \'<man>\' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。

·         \'^\':指匹配的字符串在行首,

·         \'$\':指匹配的字符串在行尾,

·         如果您不习惯命令行参数,可以试试图形界面的‘grep’,如 reXgrep 。这个软件提供 AND、OR、NOT 等语法,还有漂亮的按钮 :-) 。如果您只是需要更清楚的输出,不妨试试 fungrep 。


.grep 搜索字符串
命令格式:
grep string filename
寻找字串的方法很多,比如说我想找所有以M开头的行.此时必须引进pattern的观
念.以下是一些简单的□例,以及说明:
^M 以M开头的行,^表示开始的意思
M$ 以M结尾的行,$表示结束的意思
^[0-9] 以数字开始的行,[]内可列举字母
^[124ab] 以1,2,4,a,或b开头的行

* 星号表示0个以上的字母(可以没有)
+ 加号表示1个以上的字母
/ 斜线可以去掉特殊意义

 16)、重定向和管道符号(|) > 覆盖  >>追加   cat (读取文件)

>定向 把要输出到屏幕的内容保存下来,定向到一个指定的文件中 ,发生覆盖        

   ls > file1          将显示的内容写入file1里

Cat file1 > file3   读取file1到file3里

     cat file1 显示内容

       >>重定向  到另一个地方 不会发生覆盖,会在尾部追加。


Cat file2 >> file3   将file2里德内容追加到file3中

Cat file3

 

 

17)、Tar  命令(归档、备份(也可压缩))

Tar 压缩文件  相当于归档(不完全是压缩)有*.tar.zp

压缩文件  *.Z  *.c  *.gz  *.Zip等

 

参数

-c  create创建归档文件

-t   list显示归档文件的内容

-x   恢复(显示)归档文件

-C   保存归档文件到外部的存储设备

-f  file 指定归档文件的名称

-F  force 

-v  berbose  显示执行过程中的详细信息

-z 压缩

 

1、创建归档文件(备份)

       整合需要的文件和文件夹(不等于压缩)

       Tar –cvf  /etc  自定义的归档文件名称.tar  需要归档的文件或文件夹名称(多个之间用空格分开)

2、查看归档文件内容(多个归档文件共存)

       当passwd  huo shadow 被损坏时

[root@bogon home]# tar  -tvf  user.tar(归档文件名)

3、释放归档文件(需要还原系统)

       从外部设备拷贝到系统 mnt挂载点

       释放归档文件

              Tar  -xvf  (归档文件名)

 

 

18)、压缩:zip  unzip

 语法:zip[参数]  压缩文件名  被压缩的文件或目录

   参数:

     -D 不在zip文件中存储文件的目录信息

     -g 将文件压缩后添加到zip文件中

     -m 将特定文件移入zip文件中,并且删除特定文件

     -r  递归压缩

   [root@bogon home]# zip   test.zip  test/*

     将test目录下的所有文件压缩为test.zip

 

解压: unzip  [参数]  (指定要被解压的文件名)

     -d 将解压后的文件存放到指定的文件夹下。

     -v  查看压缩文件目录,但不解压。

     -n  不覆盖已经存在的文件

     -o  覆盖已经存在的文件,但是不需要用户确认

     -j  不重建文档的目录结构,把所有文件解压到同一目录下。

 

   

     19)、gzip  gunzip

 

          Linux系统中常见的压缩和解压缩的命令,文件名以“.Gz“为后缀。压缩后,默认情况下源文件被压缩后的文件所取代。

 

       语法:gzip[参数]  压缩  (解压缩) 的文件

 

       参数:

           -c 将输出写到标准输出上,并保留源文件。

           -d  将压缩文件解压

           -l  对每个压缩文件,显示压缩文件的大小,未压缩文件的大小,压缩比等信息。

           -v 对每一个压缩和解压的文件,显示文件名和压缩比。

           -r  递归式的查找指定目录并压缩其中的所有文件或者是解压缩。

         

      [root@bogon home]# gzip  -v  ls.txt

       [root@bogon home]# gzip  -dv  ls.txt.gz   解压   -d

       [root@bogon home]# gunzip  ls.txt.gz      解压    gunzip

 

 

20)、vi编辑器

1、用vi打开一个已经编辑过的文件  vi  test.html

内容为:qqqqqqq  

现在:(注意:必须是已经编辑完的文件并且都要在命令状态下(ESC))

Esc退出

按键:

   小写a  此时输出的内容在光标所处地之后输出

   小写i  此时输出的内容在光标所处地之前输出

小写o  此时输出的内容在光标所处的行之后另起一行输出

 

大写a  此时输出的内容在光标所处的行尾输出

   大写i  此时输出的内容在光标所处的行首输出

大写o  此时输出的内容在光标所处的行之前另起一行输出

 

2、ESC命令后  由编辑状态到命令状态

退出  :q    保存退出:shift+Z+Z     强制保存退出:wq!

 

3、加上行号 set nu(number) 加行号

   取消行号 set nonu  

 

4、Ctrl+d 强制结束输入

Ctrl+Z

Ctrl+C强制结束执行

 

 

5、合并两个文件的内容

File1    aaaaaaa

File2    bbbbbbb

现在将file1的内容读入到file2中

首先打开file1 在命令状态下(ESC或者进来什么都没有操作的情况下)

Shift+:read  file2    ->  enter   这时就会把file2中的内容复制到光标所在地

6、执行外部命令::r  !  命令

     命令状态下:

            :r  !date

            :r  !ls –l  同样会把应当显示到屏幕上的内容保存到该文件中

 

7、gg      文件第一行

   Shift+g  文件尾行

   H      当前页第一行(header)

   L       当前页尾行  (lower)

   M       当前页中间行 (middle)

:set  ic 不区分大小写的查找

  按照行号查找

:先要设置行号 :set nu  

:行号 (12)

 

8、替换  s

    1) :s/要替换的内容/替换成什么/

2) :s/要替换的内容/替换成什么/g    

g表示替换当前行中的所有出现的要替换的内容

 

3) 多行替换:

      :2,34s/要替换的内容/替换成什么/ [g]

 

10、复制 yy  yy前无数字表示复制一行  像这样:3yy复制3行(复制包括当前光标在向下数3-1行)

    粘贴  p

 

u撤销   d删除

11、 删除

     X    按照字符删除  x    nx

     dd   按照段落删除 

     ndd  多段删除

     r     替换一次(光标上的那个)  abcdefg

     R     替换多次abcdefg   

 

12、在文件里写命令

# 表示注释,

但是在 #!  bin/bash这条语句中不是,他代表要用那种shell

      在这里可以写任意的命令

不过要把它的权限设置为可执行文件

用到的时候就去执行这个文件,他会把里面的命令全部执行,比如可以做一个定时执行的东西

注意:只有在该文件为绿色的时候才能被执行,修改它的权限的方法是 chmod  数字权限  文件名

 

21)、清屏

   Clear


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值