龙空技术网

大白话 linux 教程-05-常用的文件操作

程序喵的日记本 211

前言:

现在看官们对“虚拟机拷贝目录命令在哪”大致比较重视,你们都想要了解一些“虚拟机拷贝目录命令在哪”的相关知识。那么小编同时在网摘上收集了一些有关“虚拟机拷贝目录命令在哪””的相关资讯,希望你们能喜欢,同学们快快来了解一下吧!

linux 被发明的时候有2大核心思想,第一是一切都是文件,包括内核、设备、进程、网络等;第二是每个软件都有确定的用途。第二条很好理解,第一条是一个非常高级的抽象,可见文件在 linux 系统中的重要性,而本节的文件严格说的只能算狭义的文件,主要指用户存储在磁盘上的文档资料,比如文本、音频、视频、代码、日志等等。

初次进入 Shell 后显示 ~$ 或 ~#,其中 ~ 是特殊的目录(目录也是文件),输入 pwd 可以看到它的真实目录,这个目录就是当前登录用户的主目录(home),很多人也叫家目录,为什么要用 ~ 表示,这和早期的键盘有关,原意是编辑文本的时候回到行首(这个牵涉到 vi 的故事,关于 vi 教程点击这里)。

使用 ls 可以看到目录下的文件列表,这个命令有几个常用的参数:-l -a -h,比如 ls -l 看详细文件列表,ls -lh 文件尺寸大小友好显示(人类可读的的 K M G等),ls -lha 会显示出隐藏文件(以.开头的两个文件),有2个特殊的文件:. 表示当前目录,.. 表示上一级目录,另外注意每行的第一个d表示文件是一个目录,rwx 分别表示文件权限的读(read)、写(write)、执行(execute),后面是文件所属的用户和用户组、文件的时间,关于文件权限和用户、用户组很重要,但是现在不用深入学习,在多用户管理章节会详细介绍文件的权限和用户、用户组关系。

~  pwd/Users/wangbotest  ls -lhatotal 0drwxr-xr-x   4 wangbo staff  128 12 10 09:44 .  // 当前目录drwxrwxrwx+ 48 wangbo staff 1.5K 12 10 09:44 .. // 上一级目录 1.5K 大小drwxr-xr-x   2 wangbo staff   64 12 10 09:44 catdrwxr-xr-x   2 wangbo staff   64 12 10 09:44 dog-rw-r--r--   1 wangbo staff    0 12 10 09:48 readme.txt // 没有d是一个普通文件

命令 cd 用于切换当前目录,原文是 change directory,cd 经常和~、-搭配使用,cd ~ 立刻回到用户的主目录,cd - 则切换到上次工作的目录,cd .. 回到上一层目录,cd . 什么也不会改变,因为 . 就是当前目录,cd . 就是保持原地不动。

test  ls cat  dog  readme.txttest  cd catcat  pwd/Users/wangbo/Desktop/test/catcat  cd ..test  cd dog dog  pwd/Users/wangbo/Desktop/test/dogdog  cd -~/Desktop/testtest  cd ~~  pwd/Users/wangbo

有时候我们希望观察下大概的目录结构,可以用 tree 命令,如果目录和子目录很多,可以用 -L 参数限制它显示的层级,-L 后的数字表示要显示的层级数。如果你在 Mac 系统,遇到中文乱码的话,需要加一个 -N 参数。

test  tree.├── cat│   ├── 1.txt │   └── 2.txt├── dog│   ├── 1.txt│   └── 2.txt└── readme.txt2 directories, 5 files

控制显示层数:

test  tree -L 1 // 只显示1层.├── cat├── dog└── readme.txt2 directories, 1 file

新建目录使用 mkdir (mkdir directory),rm (remove directory) 用于删除目录,rm 有2个重要的参数 -r 和 -f,-r 表示把子目录的子目录等递归删除,-f 表示强制删除,使用 -f 参数要特别小心,以免造成数据丢失,有很多初学者甚至工作中的运维人员因为误输入了 rm -rf / 强制删除系统的根目录/导致系统被损坏了(可以把虚拟机做一个快照,然后去实验这个命令,回头用快照恢复)。cp 用于拷贝目录,带上 -R 参数表示子目录的子目录递归拷贝,需要指定要拷贝的目录和目的地。mv (move) 用于移动文件,也可以重命名。

test  mkdir backuptest  lsbackup  cat  dog  readme.txttest  cp readme.txt backup test  lsbackup  cat  dog  readme.txttest  cp -R cat backup test  tree.├── backup│   ├── cat│   │   ├── 1.txt│   │   └── 2.txt│   └── readme.txt├── cat│   ├── 1.txt│   └── 2.txt├── dog│   ├── 1.txt│   └── 2.txt└── readme.txt4 directories, 8 filestest  rm -rf backup test  lscat  dog  readme.txttest  mv changelog.log change.log    test  lsbackup  cat  change.log  dog  history.txt  one.txt  readme.txt

touch 命令可以新建一个空白的文件,对于简单的文本文件可以使用 echo 命令,> 是重定向,后面会详细学习。使用 cat 可以打印出文件的内容,但是有时候文件很长很大,实际生产环境有的文件上百M甚至超过1G,这时候 cat 就不好用了,需要使用 more 或者 less 命令,以缓冲区浏览的方式,关于这两个命令如何使用,请输入 more --help 和 less --help 了解,当你需要用到时候,可以详细去了解用法。请记住每个命令都可以输入 --help 或者 -h 了解它的参数和示例(有问题就用 man 命令,比如 man less),请用这种方法去试试 head 和 tail 命令是干什么的(按 q 退出帮助 j 和 h上下滚动,请注意有的简化的 linux 镜像没有包含帮助手册,可能没有这个命令),友情提示 tail -f 非常有用,在观察不断更新的文件、日志时很爽。

test  touch changelog.logtest  lscat  changelog.log  dog  readme.txttest  echo 文件历史 > history.txttest  lscat  changelog.log  dog  history.txt  readme.txttest  cat history.txt 文件历史test  more history.txt 文件历史test  less history.txt

如果目录和子目录很多,想定位一个文件或者想确定是否存在某个文件需要用到 find 命令,这个命令在实际工作中非常非常常用,它的功能非常非常的多,比如可以使用 find . -name 以名字的方式搜索当前目录,find . -size 按大小搜索当前目录,find . -type 按文件类型查找等等,find 的用法和技巧太多需要在工作中慢慢积累。

test  pwd/Users/wangbo/Desktop/testtest  find . -name 1.txt./cat/1.txt./dog/1.txt

ln 用于创建文件的链接,经常使用的是 ln -s 创建文件的符号链接(-s --symbolic),可以理解为另外一个文件的快捷方式,如果源文件被修改了,这个快捷方式的文件也会同步修改。

test  ln -s cat/1.txt one.txttest  lscat  changelog.log  dog  history.txt  one.txt  readme.txttest  echo 修改 > cat/1.txttest  cat one.txt 修改test  ls -lhtotal 4.0Kdrwxr-xr-x 4 wangbo staff 128 12 10 09:55 cat-rw-r--r-- 1 wangbo staff   0 12 10 10:14 changelog.logdrwxr-xr-x 4 wangbo staff 128 12 10 09:55 dog-rw-r--r-- 1 wangbo staff  13 12 10 10:14 history.txtlrwxr-xr-x 1 wangbo staff   9 12 10 10:31 one.txt -> cat/1.txt // 箭头指向了源文件-rw-r--r-- 1 wangbo staff   0 12 10 09:48 readme.txt

tar、zip、unzip都是文件压缩和解压缩命令,linux 中经常出现 .tar.gz 结尾的文件,就需要使用 tar 来解压缩,zip 和 unzip 通常对简单的 zip 文件更方便。tar 常用参数 -czvf,-c 表示创建,-z表示压缩,-v显示,-f指定文件,相对应的 tar -zxvf 表示解压缩,-x 表示解压,请自己试试文件解压的命令参数。

test  mkdir backuptest  tar -czvf backup/cat.tar.gz cat // 把 cat 目录压缩成 cat.tar.gz 放到 backup 目录去   a cat // 打印文件列表是因为使用 -v 参数a cat/2.txta cat/1.txttest  ls -lh backup total 4.0K-rw-r--r-- 1 wangbo staff 171 12 10 10:40 cat.tar.gz

对于文件操作还有一些重要的命令比如 chmod chown chgrp 等,chmod +w 可以为文件加上写权限,chmod a+rwx 可以为系统所有用户加上读写执行权限,你可能会看到 chmod 755 或者 chmod 4755 这样的命令参数,请参考后面多用户管理的内容。

test  ls -ltotal 4drwxr-xr-x 3 wangbo staff  96 12 10 10:40 backupdrwxr-xr-x 4 wangbo staff 128 12 10 09:55 cat-rw-r--r-- 1 wangbo staff   0 12 10 10:14 changelog.logdrwxr-xr-x 4 wangbo staff 128 12 10 09:55 dog-rw-r--r-- 1 wangbo staff  13 12 10 10:14 history.txtlrwxr-xr-x 1 wangbo staff   9 12 10 10:31 one.txt -> cat/1.txt-rw-r--r-- 1 wangbo staff   0 12 10 09:48 readme.txttest  chmod a+w readme.txt test  ls -l readme.txt -rw-rw-rw- 1 wangbo staff 0 12 10 09:48 readme.txt // 注意新增的2个w表示用户组用户和其他用户都具有该文件的写权限

这些就是基本的文件操作了,有了这些命令基础,你可以在 shell 里到处逛一逛了,有一些系统目录很重要,如果被破坏,系统可能会瘫痪,所以你有必要先去了解一下 linux 各个目录的作用,输入 ls -l / 看看有哪些目录,不同的 linux 发行版目录不同,总的说来如果你在自己的 home 目录 ~ 下新建一个文件夹,在里面做实验是比较安全的,毕竟 ~ 是完全属于你的地盘。

标签: #虚拟机拷贝目录命令在哪