mowatermelon / learn-es6

一个有趣的人写的有趣的前端基础
http://blog.iiwhy.cn/learn-es6
7 stars 5 forks source link

ubuntu终端小技巧 #50

Open mowatermelon opened 6 years ago

mowatermelon commented 6 years ago

vim显示行号

# 进入对应文件夹
cd /etc/vim

# 备份文件,方便修改错误之后还原
cp  vimrc  vimrc.bak

# 使用管理员权限打开文件
sudo vi vimrc

# 按字母i,进入编辑模式,按字母G,注意是大写,跳到最后一行,
# 在文件的最后一行加入指令 set nu
# if filereadable("/etc/vim/vimrc.local")
#   source /etc/vim/vimrc.local
# endif
#
# set nu

# 然后你下次进入vim页面,就可以直接看到行号了
mowatermelon commented 6 years ago

新建文件夹

mkdir [选项] {目录} 选项是非必写,目录名是必写的,注意,所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的,区分大小写。

选项名 说明
-m or --mode 模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
-v or --verbose 显示此帮助信息并退出
-p or --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
--version 输出版本信息并退出

选项说明速记,完整单词都是两个中划线,如果是缩写,则是一个中划线

创建单个文件夹

$ mkdir melon1
$ ll
total 0
drwxrwxrwx 1 melon melon 4096 Aug 19 21:21 ./
drwxrwxrwx 1 melon melon 4096 Aug 19 20:37 ../
drwxrwxrwx 1 melon melon 4096 Aug 19 21:21 melon1/

创建新目录都显示信息,使用-v指令

$ mkdir -v melon2
mkdir: created directory 'melon2'
$ ll
total 0
drwxrwxrwx 1 melon melon 4096 Aug 19 21:22 ./
drwxrwxrwx 1 melon melon 4096 Aug 19 20:37 ../
drwxrwxrwx 1 melon melon 4096 Aug 19 21:21 melon1/
drwxrwxrwx 1 melon melon 4096 Aug 19 21:22 melon2/

递归创建文件夹,使用-p指令

# 创建新文件夹下的子文件夹,即同时创建了两个文件夹
$ mkdir -p melon3/melon33 
$ ll
total 0
drwxrwxrwx 1 melon melon 4096 Aug 19 21:23 ./
drwxrwxrwx 1 melon melon 4096 Aug 19 20:37 ../
drwxrwxrwx 1 melon melon 4096 Aug 19 21:21 melon1/
drwxrwxrwx 1 melon melon 4096 Aug 19 21:22 melon2/
drwxrwxrwx 1 melon melon 4096 Aug 19 21:23 melon3/
$ tree learnVim
learnVim
├── melon1
├── melon2
└── melon3
    └── melon33

4 directories, 0 files

# 同时创建多级文件夹,并且输出相关创建信息
# 注意如果父级文件夹下只需要创建一个文件夹,可以不用加大括号 eg: static/plugins,
# 如果父级文件夹下需要创建多个文件夹,必须要加大括号eg: src/{pages,assets},
$ mkdir -vp vue-demo/{build/,config/,node_modules/,src/{pages,assets},static/plugins,test/{e2e,unit}}
mkdir: created directory 'vue-demo'
mkdir: created directory 'vue-demo/build/'
mkdir: created directory 'vue-demo/config/'
mkdir: created directory 'vue-demo/node_modules/'
mkdir: created directory 'vue-demo/src'
mkdir: created directory 'vue-demo/src/pages'
mkdir: created directory 'vue-demo/src/assets'
mkdir: created directory 'vue-demo/static'
mkdir: created directory 'vue-demo/static/plugins'
mkdir: created directory 'vue-demo/test'
mkdir: created directory 'vue-demo/test/e2e'
mkdir: created directory 'vue-demo/test/unit'

$ tree vue-demo # 打印目录结构
vue-demo
├── build
├── config
├── node_modules
├── src
│   ├── assets
│   └── pages
├── static
│   └── plugins
└── test
    ├── e2e
    └── unit

11 directories, 0 files

创建文件夹的时候同时设置权限,使用-m指令

$ mkdir -m 777 melon4 # 创建权限为777的目录 
$ ll
total 0
drwxrwxrwx 1 melon melon 4096 Aug 19 23:55 ./
drwxrwxrwx 1 melon melon 4096 Aug 19 20:37 ../
drwxrwxrwx 1 melon melon 4096 Aug 19 21:21 melon1/
drwxrwxrwx 1 melon melon 4096 Aug 19 21:22 melon2/
drwxrwxrwx 1 melon melon 4096 Aug 19 21:23 melon3/
drwxrwxrwx 1 melon melon 4096 Aug 19 23:55 melon4/
drwxrwxr-x 1 melon melon 4096 Aug 19 23:43 vue-demo/
mowatermelon commented 6 years ago

新建文件


# eg []
touch {file} # 新建文件

# 可以输入 ls,查看当前路径下文件和文件夹名
$ ls
test01.js

# 可以输入ls -l 查看当前文件夹中相关文件显示信息
ls -l
total 0
-rw-rw-rw- 1 melon melon 87 Aug 19 20:57 test01.js

# 可以输入ll,查看当前文件夹(包含隐藏文件)中相关信息
$ ll
total 0
drwxrwxrwx 1 melon melon 4096 Aug 19 20:57 ./
drwxrwxrwx 1 melon melon 4096 Aug 19 20:37 ../
-rw-rw-rw- 1 melon melon   87 Aug 19 20:57 test01.js
mowatermelon commented 6 years ago

删除文件和文件夹

rm [-dfirv][--help][--version]{文件或目录...} 中括号内是非必写,目录名是必写的

指令名 说明
-d or --directory 直接把欲删除的目录的硬连接数据删成0,删除该目录。
-f or --force 强制删除文件或目录
-i or --interactive 删除既有文件或目录之前先询问用户
-r,-R, or --recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v or --version 输出版本信息并退出

指令说明速记,完整单词都是两个中划线,如果是缩写,则是一个中划线。

删除一个文件

删除文件,不管文件内是否有内容,都直接执行的删除。

# 新建一个文件方便测试删除

$ touch melon.js
$ vim melon.js # 在文件中输入一些数据
$ ll
total 0
drwxrwxrwx 1 melon melon 4096 Aug 19 23:55 ./
drwxrwxrwx 1 melon melon 4096 Aug 19 20:37 ../
-rw-rw-r-- 1 melon melon    0 Aug 19 23:53 melon.js
drwxrwxrwx 1 melon melon 4096 Aug 19 21:21 melon1/
drwxrwxrwx 1 melon melon 4096 Aug 19 21:22 melon2/
drwxrwxrwx 1 melon melon 4096 Aug 19 21:23 melon3/
drwxrwxrwx 1 melon melon 4096 Aug 19 23:55 melon4/
drwxrwxr-x 1 melon melon 4096 Aug 19 23:43 vue-demo/

# 尝试删除刚才创建的文件
$ rm melon.js
$ ll
total 0
drwxrwxrwx 1 melon melon 4096 Aug 19 23:56 ./
drwxrwxrwx 1 melon melon 4096 Aug 19 20:37 ../
drwxrwxrwx 1 melon melon 4096 Aug 19 21:21 melon1/
drwxrwxrwx 1 melon melon 4096 Aug 19 21:22 melon2/
drwxrwxrwx 1 melon melon 4096 Aug 19 21:23 melon3/
drwxrwxrwx 1 melon melon 4096 Aug 19 23:55 melon4/
drwxrwxr-x 1 melon melon 4096 Aug 19 23:43 vue-demo/

# 删除成功

删除文件夹

使用-d指令

删除文件夹,如果文件夹内有内容,结合-d指令会提示删除失败,文件夹不为空。

# 尝试删除之前的melon1

$ rm -d melon1
$ tree melon1
melon1 [error opening dir]

0 directories, 0 files
# 删除成功

# 尝试删除之前有两级的melon3

$ rm -d melon3
rm: cannot remove 'melon3': Directory not empty
# 删除失败

使用-f指令

删除文件夹,如果文件夹内有内容,结合-f指令会提示删除失败,这是一个文件夹。

# 尝试删除之前有两级的melon3

$ rm -f melon3
rm: cannot remove 'melon3': Is a directory
# 删除失败

$ rm -rf melon3 # 执行递归强制删除
# 删除成功
$ ll
total 0
drwxrwxrwx 1 melon melon 4096 Aug 20 00:09 ./
drwxrwxrwx 1 melon melon 4096 Aug 19 20:37 ../
drwxrwxrwx 1 melon melon 4096 Aug 19 21:22 melon2/
drwxrwxrwx 1 melon melon 4096 Aug 19 23:55 melon4/
drwxrwxr-x 1 melon melon 4096 Aug 19 23:43 vue-demo/

使用-i指令

删除过程中使用-i指令,会在删除之前询问一下用户,是否删除,如果输入y,则代表是确认删除,如果输入n,则代表是不允许删除。

# 尝试删除之前的melon2
$ rm -i melon2
rm: cannot remove 'melon2': Is a directory

$ rm -id melon2
rm: remove directory 'melon2'? n # 尝试取消删除
$ ll
total 0
drwxrwxrwx 1 melon melon 4096 Aug 20 00:09 ./
drwxrwxrwx 1 melon melon 4096 Aug 19 20:37 ../
drwxrwxrwx 1 melon melon 4096 Aug 19 21:22 melon2/
drwxrwxrwx 1 melon melon 4096 Aug 19 23:55 melon4/
drwxrwxr-x 1 melon melon 4096 Aug 19 23:43 vue-demo/

$ rm -id melon2
rm: remove directory 'melon2'? y # 尝试确认删除
$ ll
total 0
drwxrwxrwx 1 melon melon 4096 Aug 20 00:12 ./
drwxrwxrwx 1 melon melon 4096 Aug 19 20:37 ../
drwxrwxrwx 1 melon melon 4096 Aug 19 23:55 melon4/
drwxrwxr-x 1 melon melon 4096 Aug 19 23:43 vue-demo/

使用-v指令

# 尝试删除之前的melon4
$ rm -v melon4
rm: cannot remove 'melon4': Is a directory

$ rm -rv melon4
removed directory 'melon4' # 打印出来的删除日志

# 尝试删除之前的vue-demo,这个日志比较全一些
$ rm -rv vue-demo
removed directory 'vue-demo/build'
removed directory 'vue-demo/config'
removed directory 'vue-demo/node_modules'
removed directory 'vue-demo/src/assets'
removed directory 'vue-demo/src/pages'
removed directory 'vue-demo/src'
removed directory 'vue-demo/static/plugins'
removed directory 'vue-demo/static'
removed directory 'vue-demo/test/e2e'
removed directory 'vue-demo/test/unit'
removed directory 'vue-demo/test'
removed directory 'vue-demo'