Linux学习笔记(二)——文件/目录/VIM

文件和目录管理 及 VI编辑器的使用

 文件和目录管理,刚开始学这块的时候感觉内容很多很杂,但是学完进行总结后,发现其实很有条理的而且没什么难度,只是熟练掌握这些常用的命令就行了。至于Vim编辑器,不得不说,用了这个编辑器之后,感觉windows的notepad很没有技术含量了。

  先简单总结一下文件和目录常用到的命令,简单的用法就略过。

     文件操作命令:touch、file、which、find、cp、rm、mv、ln

     文件内容操作命令:cat、more、less,head、tail,wc、grep

     目录操作命令:pwd、cd、ls、mkdir、du

     归档及压缩命令:gzip、bzip2、tar

[[email protected] ~]$ pwd  ==>显示当前目录
/home/jzhou
[[email protected] ~]$ mkdir dirtest   ==>创建一个目录
[[email protected] ~]$ cd dirtest      ==>进入这个目录
[[email protected] dirtest]$ touch testfile    ==>创建一个文件
[[email protected] dirtest]$ mkdir dirtest1    ==>创建子目录
[[email protected] dirtest]$ ls    ==>列出当前目录内容
dirtest1  testfile
[[email protected] dirtest]$ echo hello linux >>testfile  ==>追加内容到文件
[[email protected] dirtest]$ cat testfile    ==>显示文件内容
hello linux
[[email protected] dirtest]$ file testfile  ==>查看文件类型
testfile: ASCII text
[[email protected] dirtest]$ du -sh testfile  ==>显示文件所占空间
8.0K    testfile
[[email protected] dirtest]$ wc testfile  ==>统计文件行数、字数、字符数
 1  2 12 testfile
[[email protected] dirtest]$ echo haha,I love Linux >> testfile   ==>追加内容
[[email protected] dirtest]$ echo no,no ,I hate C plus plus >> testfile
[[email protected] dirtest]$ echo OK,the end >> testfile
[[email protected] dirtest]$ cat testfile   ==>查看内容
hello linux
haha,I love Linux
no,no ,I hate C plus plus
OK,the end
[[email protected] dirtest]$ head -2 testfile  ==>查看文件前两行内容
hello linux
haha,I love Linux
[[email protected] dirtest]$ tail -2 testfile  ==>查看文件最后两行内容
no,no ,I hate C plus plus
OK,the end
[[email protected] dirtest]$ cat testfile | grep "Linux"  查找特定关键字
haha,I love Linux
[[email protected] dirtest]$

以上只是展示部分命令的简单用法,很多选项没有加入,head和tail命令默认是显示前10行和后10行记录,du是查看目录或文件所占的空间,通常比实际大小要大,且通常为4的整数倍。

more和less命令也是查看文件内容的方法,不过less已经渐渐取代more了,因为more的所有功能less都具有,而且less可以向上翻页查看,more则不可以,cat是直接将文件内容一屏显示出来,不管多长,所有如果文件很长时,则使用less命令,同样,也是按q键退出。

[[email protected] dirtest]$ cd dirtest1    ==>进入到刚才建的子目录
[[email protected] dirtest1]$ touch testfile1   ==>在子目录中创建一个新文件
[[email protected] dirtest1]$ echo haha >> testfile1
[[email protected] dirtest1]$ cd .. ==>返回到上一目录
[[email protected] dirtest]$ ls
dirtest1  testfile
[[email protected] dirtest]$ cp testfile ./dirtest1/ ==>把文件testfile复制到子目录dirtest1下
[[email protected] dirtest]$ cd dirtest1/   ==>进入到子目录
[[email protected] dirtest1]$ ls   ==>查看子目录下多了一个刚才复制过来的文件
testfile  testfile1
[[email protected] dirtest1]$ cd ..
[[email protected] dirtest]$ ls
dirtest1  testfile
[[email protected] dirtest]$ rm -f testfile ==>强制删除dirtest目录下的testfile文件
[[email protected] dirtest]$ ls  ==>testfile文件已经被删除
dirtest1
[[email protected] dirtest]$ cd ./dirtest1/   ==>进入到子目录
[[email protected] dirtest1]$ mv testfile ./testfile  ==>这里我尝试移动的目标目录错误
testfile   testfile1
[[email protected] dirtest1]$ pwd   ==>所以我要查看当前目录,以使用绝对路径
/home/jzhou/dirtest/dirtest1
[[email protected] dirtest1]$ mv testfile /home/jzhou/dirtest/==>将testfile文件移到dirtest目录下
[[email protected] dirtest1]$ cd ..
[[email protected] dirtest]$ ls   ==>很好,testfile文件已经被移动过来了
dirtest1  testfile
[[email protected] dirtest]$ ln -s testfile linkfile  ==>建立软链接
[[email protected] dirtest]$ ls -l   ==>注意下面软链接文件的显示方式
总计 20
drwxrwxr-x 2 jzhou jzhou 4096 03-05 22:43 dirtest1
lrwxrwxrwx 1 jzhou jzhou    8 03-05 22:45 linkfile -> testfile
-rw-rw-r-- 1 jzhou jzhou   67 03-05 22:40 testfile
[[email protected] dirtest]$

rm 文件作用在文件与目录的唯一区别就是是否带有-r选项,因为删除目录时,目录里面可能嵌套有文件和目录,所以必须要有-r选项,cp和rm的格式都是: cp/rm  原文件   目标文件(注意这里的路径问题)

ln链接文件:分为软链接和硬链接,软链接又称符号链接,即带有-s选项。软链接即相当于windows下的快捷方式,若原文件损坏,则快捷方式无效,而硬链接则相当于对原文件的一个拷贝,通常情况,硬链接用的很少。所以建立链接文件时,通常加-s选项即建立软链接。链接文件的文件类型位为:l,后续笔记文件权限中会介绍这个位。

另外要注意的是:不能为目录建立硬链接文件,而且硬链接与原始文件必须位于同一分区(文件系统)中。

[[email protected] ~]$ cd dirtest/
[[email protected] dirtest]$ ls
dirtest1  linkfile  testfile
[[email protected] dirtest]$ tar cf test.tar dirtest1 testfile  ==>归档目录和文件
[[email protected] dirtest]$ ls  ==>多了一个刚新建的归档文件test.tar
dirtest1  linkfile  testfile  test.tar
[[email protected] dirtest]$ rm -rf dirtest1 testfile   ==>删除原文件,方便后面确认文件是否归档
[[email protected] dirtest]$ ls
linkfile  test.tar
[[email protected] dirtest]$ pwd  ==>查看一下当前目录,后面要解归档在这个目录
/home/jzhou/dirtest
[[email protected] dirtest]$ tar xf test.tar -C /home/jzhou/dirtest/   ==>解开归档,testfile文件释放了
[[email protected] dirtest]$ ls
dirtest1  linkfile  testfile  test.tar
[[email protected] dirtest]$ rm -f test.tar  ==>删除这个归档包,助于后面测试
[[email protected] dirtest]$ ls
dirtest1  linkfile  testfile
[[email protected] dirtest]$ gzip -9 testfile   ==>将这个文件以gz格式压缩
[[email protected] dirtest]$ ls
dirtest1  linkfile  testfile.gz ==>这个就是压缩后自动生成的文件名
[[email protected] dirtest]$ gzip -d testfile.gz   ==>将刚压缩的包解开
[[email protected] dirtest]$ ls
dirtest1  linkfile  testfile    ==>看,testfile被解压出来了
[[email protected] dirtest]$ bzip2 -9 testfile    ==>将这个文件以bz2格式压缩
[[email protected] dirtest]$ ls
dirtest1  linkfile  testfile.bz2  ==>看,这个bz2就是刚生成的
[[email protected] dirtest]$ bzip2 -d testfile.bz2   ==>解开这个压缩包
[[email protected] dirtest]$ ls
dirtest1  linkfile  testfile  ==>看,它被释放出来了
[[email protected] dirtest]$ tar jcf test.tar.bz2 testfile   ==>这个是bz2格式归档压缩,注意选项是j
[[email protected] dirtest]$ ls
dirtest1  linkfile  testfile  test.tar.bz2
[[email protected] dirtest]$ rm -r testfile
[[email protected] dirtest]$ ls
dirtest1  linkfile  test.tar.bz2
[[email protected] dirtest]$ tar jxf test.tar.bz2 -C /home/jzhou/dirtest/  ==>解开归档压缩
[[email protected] dirtest]$ ls
dirtest1  linkfile  testfile  test.tar.bz2
[[email protected] dirtest]$ tar zcf test.tar.gz dirtest1   ==>这个是gz格式归档压缩,注意选项是z
[[email protected] dirtest]$ ls
dirtest1  linkfile  testfile  test.tar.bz2  test.tar.gz
[[email protected] dirtest]$ rm -rf dirtest1
[[email protected] dirtest]$ ls
linkfile  testfile  test.tar.bz2  test.tar.gz
[[email protected] dirtest]$ tar zxf test.tar.gz -C /home/jzhou/dirtest/   ==>解开归档压缩
[[email protected] dirtest]$ ls
dirtest1  linkfile  testfile  test.tar.bz2  test.tar.gz
[[email protected] dirtest]$

上面命令显示格式不太友好,因为在真实环境下,若删除原文件,软链接文件会处于不可用状态背景会变成红底。不过这个不影响理解呵呵。

注意归档只是将文件或者目录打在一个包里,并不进行压缩,而gzip和bzip2是进行压缩,上述最后几行命令是将二者结合起来使用的,即先归档后压缩。

tar和gzip  bzip2的命令格式如下:

tar  [选项]...  归档文件名  源文件或目录    ==》制作归档文件

tar  [选项]...  归档文件名  [-C 目标目录]   ==》解开归档文件

gzip/bzip2 [-9] 文件名或目录                 ==》制作压缩文件

gzip/bzip2  -d .gz/.bz2格式的压缩文件    ==》解开压缩文件

对于上述命令,只是举出最简单的用法,至于要实现更强大的功能,使用时那就要去查每个命令带有哪些选项,或者直接找man命令帮助,那些选项太多,所以我认为只要知道有某个命令,至于具体用法用到时再去查而没必要记住所有的选项含义。

VIM编辑器的常用快捷编辑方式

 文本编辑器可用来创建或修改文本文件,以及维护Linux系统中的各种配置文件。首次接触这个编辑器时会由于不熟练而是影响编辑效率,但是掌握常用快捷键后,非常神速。下面只是简单介绍下Vim编辑器,至于更深入的用法大家可以网上找找。

Unix和早期的Linux中默认使用的文本编辑器是Vi,现在用的都是vi的增强版vim,由于vi用的比较习惯了,所以现在仍然叫vi,其实是别名 alias vi=‘/usr/bin/vim‘,这个可以通过命令which vi看到。

Vim编辑器有3种工作模式:命令模式、输入模式、末行模式,在有的资料中可能说有2中工作模式,不将‘末行模式’列在其中,这个不重要,总之前两种模式确实很重要;因为在这两种模式下可以做很多事。各种模式之间的切换如下图:

这几个模式的转换也要非常熟练。

   命令模式中的基本操作:

  (1)显示行号::set nu     取消行号: :set nonu

(2)行间快速跳转:#G:跳转到文件中的第#行;G:跳转到文件的末尾行;1G或gg:跳转到文件的行首。

   (3)行内快速跳转:Home  End

关于删除复制和粘贴:(命令模式下)


删除


x或Del


删除光标处的单个字符


dd


删除当前光标所在行


#dd


删除从光标处开始的#行内容


d^


删除当前光标之前到行首的所有字符


d$


删除当前光标处到行尾的所有字符


复制


yy


复制当前行整行的内容到剪贴板


#yy


复制从光标处开始的#行内容


粘贴


p


将缓冲区中的内容粘贴到光标位置处之后


P


粘贴到光标位置处之前

 在文件内容中查找:


操作键


功能


/word


从上而下在文件中查找字符串“word”


?word


从下而上在文件中查找字符串“word”


n


定位下一个匹配的被查找字符串


N


定位上一个匹配的被查找字符串

   撤销编辑及保存退出:


u


按一次取消最近的一次操作

多次重复按u键,恢复已进行的多步操作


U


用于取消对当前行所做的所有编辑


ZZ


保存当前的文件内容并退出vi编辑器

  保存文件及退出vi编辑器:(末行模式下)


保存文件

   

:w /root/newfile


另存为其它文件


退出vi


:q


未修改退出


:q!


放弃对文件内容的修改,并退出vi


保存文件退出vi


:wq

 

  文件内容替换:(末行模式下)


:s /old/new


将当前行中查找到的第一个字符“old” 串替换为“new”


:s /old/new/g


将当前行中查找到的所有字符串“old” 替换为“new”


:#,# s/old/new/g


在行号“#,#”范围内替换所有的字符串“old”为“new”


:% s/old/new/g


在整个文件范围内替换所有的字符串“old”为“new”


:s /old/new/c


在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认

要想熟练操作Vim编辑器,首先得掌握这些快捷键,这些都是最基本的。

如有错误,欢迎指正,3Q!

时间: 2024-10-12 23:53:36

Linux学习笔记(二)——文件/目录/VIM的相关文章

linux学习笔记二-----文件权限管理

一.分析文件权限(ln -s 文件名 快捷方式名 用来创建文件的快捷方式,下方ll查看信息时会在第一个字符处显示l) [[email protected] ~]$ ll total 4 drwxrwxr-x. 2 hjp hjp 4096 Jan 6 00:16 t drwxrwxr-x. 2 hjp hjp 6 Jan 5 20:44 testdir [[email protected] ~]$ 以drwxrwxr-x. 2 hjp hjp 4096 Jan 6 00:16 t为例1.d:表示

Linux学习笔记二:Linux的文件处理命令

1.文件处理命令:ls 作用:显示目录文件 语法:ls [选项] [文件或目录] [选项]:-a 显示所有文件,包括隐藏文件   -l 显示详细信息 -d 查看目录属性 [文件或目录]:当省略时默认将当前路径作为参数 实例: · ls 显示当前文件夹下所有文件(不包括隐藏文件)的信息 · ls -l 显示当前文件夹下所有文件(不包括隐藏文件)的详细信息 · ls -ld  显示当前文件夹的详细信息 技巧:要查看文件夹的信息,必须加-d参数:要查看详细参数,必须加-l参数. 2.文件的属性 使用”

Linux System Programming 学习笔记(二) 文件I/O

1.每个Linux进程都有一个最大打开文件数,默认情况下,最大值是1024 文件描述符不仅可以引用普通文件,也可以引用套接字socket,目录,管道(everything is a file) 默认情况下,子进程会获得其父进程文件表的完整拷贝 2.打开文件 open系统调用必须包含 O_RDONLY,O_WRONLY,O_RDWR 三种存取模式之一 注意 O_NONBLOCK模式 int fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0644

linux学习笔记二:linux文件系统

各大linux的版本都遵循着FHS(Filesystem Hierarchy Standard)文件系统目录标准,是一个树形结构的组织文件.在此简要记录各目录. linux下所有文件都处在/文件下. 树形结构图: /boot:  系统启动相关的文件 主要文件 1.vmliunx:内核    2.initramfs:磁盘映像文件   3.grub(bootloader) /dev:设备文件 块设备:随机访问设备. 字符设备:线性设备,顺序访问.按字符为单位.键盘.鼠标. 设备号:主设备号(majo

APUE 学习笔记(二) 文件I/O

1. 文件I/O 对于内核而言,所有打开的文件都通过文件描述符引用,内核不区分文本文件和二进制文件 open函数:O_RDONLY  O_WRONLY  O_RDWR create函数: close函数:关闭一个文件时还会释放该进程加在该文件上的所有记录锁 lseek函数:显式地为一个打开的文件设置其偏移量 每个打开的文件都有一个与其相关联的 "当前文件偏移量",用以度量从文件开始处计算的字节数,通常,读.写操作都从当前文件偏移量处开始,并使偏移量增加所读写的字节数 文件偏移量可以大于

linux学习笔记二:硬盘信息查询

在linux管理中,硬盘管理是很重要的一部分.包括阵列,分区,逻辑卷等操作,在对硬盘操作前,需要充分的了解硬盘的信息.常用的硬盘查询有以下几种: 1.df  查看文件系统空间使用情况: linux-lszd-db:~ # dfFilesystem     1K-blocks     Used Available Use% Mounted on/dev/sda6      809262496 37615092 770825244   5% /udev             8076412    

《Linux学习并不难》文件/目录管理(7):rmdir命令删除空目录

7.7  <Linux学习并不难>文件/目录管理(7):rmdir命令删除空目录 使用rmdir命令可以在Linux系统中删除空目录. 命令语法: rmdir [选项] [目录] 命令中各选项的含义如表所示. 选项 选项含义 -p 递归删除目录,当子目录删除后其父目录为空时,也一同被删除 例:删除空目录newdir1. [[email protected] ~]# rmdir newdir1 例:同时删除/root/newdir2和/root/newdir2/newdir3这两个空目录. [[

《Linux学习并不难》文件/目录管理(4):cd命令更改工作目录路径

7.4  <Linux学习并不难>文件/目录管理(4):cd命令更改工作目录路径 使用cd命令可以更改用户的工作目录路径.工作目录路径可以使用绝对路径名或相对路径名,绝对路径从/(根)开始,然后循序到所需的目录下,相对路径从当前目录开始. 命令语法: cd [选项] [目录] 命令中各选项的含义如表所示. 选项 选项含义 -P 如果是链接路径,则进入链接路径的源物理路径 cd命令结合各种符号使用方法如下所示. cd:进入用户主目录: cd ~:进入用户主目录: cd -:返回进入此目录之前所在

《Linux学习并不难》文件/目录管理(5): ls命令列出目录和文件信息

7.5  <Linux学习并不难>文件/目录管理(5): ls命令列出目录和文件信息 使用ls命令,对于目录而言将列出其中的所有子目录与文件信息:对于文件而言将输出其文件名以及所要求的其它信息.     命令语法: ls [选项] [目录|文件] 命令中各选项的含义如表所示. 选项 选项含义 -a 显示指定目录下所有子目录与文件,包括隐藏文件 -c 配合-lt:根据ctime 排序并显示ctime -d 如果参数是目录,只显示其名称而不显示其下的各文件和子目录 -F 显示文件类型 -i 在输出

linux学习笔记(二)之文件系统结构

一.目录结构 1.目录功能介绍 很多linux系统的发行版目录结构布局都遵循着FSSTND标准,这一标准的特点是根目录非常简洁,只包含系统最基本的文件,遵循这一标准,有利于程序的编写和移植,也便于系统管理和维护. (1)/etc目录 这个目录主要用于存放系统管理相关的配置文件以及子目录,其中比较重要的有系统初始化文件/etc/re,用户信息文件/etc/passwd等,相关网络配置文件和服务启动文件也均在这个目录下.详细信息如下: passwd 用户库文件,所有用户的用户名,UID,GID和工作