From 8bcc0d8a92fffa706c72caab3fd3146a1083cd9c Mon Sep 17 00:00:00 2001 From: 7Wate Date: Sun, 4 Dec 2022 20:05:53 +0800 Subject: [PATCH] =?UTF-8?q?Shell=EF=BC=9AShell=20=E5=BF=85=E5=A4=87?= =?UTF-8?q?=E9=94=A6=E5=9B=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wiki/getting-started/Shell/Shell 必备锦囊.md | 117 ++++++++++++++++++ wiki/getting-started/Shell/命令行的艺术.md | 2 +- .../Python/入门/模块和包.md | 13 +- 3 files changed, 124 insertions(+), 8 deletions(-) create mode 100644 wiki/getting-started/Shell/Shell 必备锦囊.md diff --git a/wiki/getting-started/Shell/Shell 必备锦囊.md b/wiki/getting-started/Shell/Shell 必备锦囊.md new file mode 100644 index 00000000..9c6caa46 --- /dev/null +++ b/wiki/getting-started/Shell/Shell 必备锦囊.md @@ -0,0 +1,117 @@ +--- +title: Shell 必备锦囊 +description: Shell 必备锦囊 +keywords: +- Shell +- 必备锦囊 +tags: +- Shell +sidebar_position: 2 +author: 7Wate +date: 2022-12-04 +--- + +## tab 补全 + +在 Shell 中可以使用 tab 键盘实现快速补全,双击 tab 可以显示补全列表。 + +``` shell +@:~$ cd +.ansible/ .config/ .wget-hsts index.html +.bash_history .lesshst ChangeMirrors.sh index.html.1 +.bash_logout .profile DockerInstallation.sh +.bashrc .ssh/ aaaa/ +.cache/ .sudo_as_admin_successful demo/ +``` + +## history 历史 + +history 命令可以显示执行过的命令历史。 +``` shell +@:~$ history + 1 pwd + 2 ls -l + 3 ip addr + 4 apt-get update + 5 sudo apt-get update +``` + +## `^` 替换命令 + +如果输错了命令,特别是命令较长的情况下可以使用 `^` 替换错误的地方。 + +``` shell +@:~$ cat a。txt +cat: a。txt: No such file or directory +@:~$ ^。^. +cat a.txt +helloworld! +@:~$ +``` + +## `!` 快捷符号 + +`!` 符号拥有很多便捷的实用方法,例如 `!!` 快速执行上条命令,特别适用于 sudo 权限的情况下。`!foo` 快速执行历史命令中 foo 开头的命令。`!$` 命令引用上调命令中的最后一位参数。 + +``` shell +@:~$ !! +cat a.txt +helloworld! +@:~$ !ca +cat a.txt +helloworld! +@:~$ mkdir path-a +@:~$ cd !$ +cd path-a +@:~/path-a$ +``` + +## 目录操作 + +Linux 终端执行命令的很多情况下需要经常的更换目录,cd 命令、pushd 命令、popd 命令可以快速移动目录。 + + - cd:回到当前用户目录。 + - cd ~:回到当前用户目录(方便切换到其他用户目录)。 + - cd -:回到上次工作的目录。 + - pushd path:存入 path 目录到目录栈。 + - pop:移动到目录栈弹出的目录。 + +``` shell +@:~/demo/a$ cd ~ +@:~$ cd - +/home/xxb/demo/a +@:~/demo/a$ cd +@:~$ cd - +/home/xxb/demo/a +@:~/demo/a$ pushd /home/xxb/demo/a +~/demo/a ~/demo/a +@:~/demo/a$ cd ~ +@:~$ popd +~/demo/a +@:~/demo/a$ +``` + +## alias 别名 + +一些常用的命令可以使用 alais 定义别名,方便快速操作。移除别名使用 unalias 命令。 + +``` shell +@:~/demo/a$ cat aa.txt +helloworld! +@:~/demo/a$ alias abc='cat aa.txt' +@:~/demo/a$ abc +helloworld! +@:~/demo/a$ +``` + +## 命令替换 + +Shell 内可以使用反引号和 $() 命令执行命令。 + +```shell +@:~/demo/a$ pushd `pwd` +~/demo/a ~/demo/a +@:~/demo/a$ pushd $(pwd) +~/demo/a ~/demo/a ~/demo/a +@:~/demo/a$ +``` diff --git a/wiki/getting-started/Shell/命令行的艺术.md b/wiki/getting-started/Shell/命令行的艺术.md index 9fac4e40..fad2d9ab 100644 --- a/wiki/getting-started/Shell/命令行的艺术.md +++ b/wiki/getting-started/Shell/命令行的艺术.md @@ -6,7 +6,7 @@ keywords: - Shell tags: - Shell -sidebar_position: 2 +sidebar_position: 3 author: 7Wate date: 2022-11-16 --- diff --git a/wiki/programming-language/Python/入门/模块和包.md b/wiki/programming-language/Python/入门/模块和包.md index c9359f64..0951d363 100644 --- a/wiki/programming-language/Python/入门/模块和包.md +++ b/wiki/programming-language/Python/入门/模块和包.md @@ -85,25 +85,24 @@ runoob2() ## import -Python 中,模块(包、类、函数)的导入方式有以下四种: - -import 语句(不带 from 子句)会分两步执行: +import 语句不带 from 会分两步执行: 1. 查找一个模块,如果有必要还会加载并初始化模块。 2. 在局部命名空间中为 import 语句发生位置所处的作用域定义一个或多个名称。 -from 形式使用的过程略微繁复一些: +from 形式使用的过程略微繁复一些: 1. 查找 from 子句中指定的模块,如有必要还会加载并初始化模块; 2. 对于 import 子句中指定的每个标识符: - 1. 检查被导入模块是否有该名称的属性 - 2. 如果没有,尝试导入具有该名称的子模块,然后再次检查被导入模块是否有该属性 + 1. 检查被导入模块是否有该名称的属性。 + 2. 如果没有,尝试导入具有该名称的子模块,然后再次检查被导入模块是否有该属性。 3. 如果未找到该属性,则引发 ImportError。 - 4. 否则的话,将对该值的引用存入局部命名空间,如果有 as 子句则使用其指定的名称,否则使用该属性的名称 + 4. 否则的话,将对该值的引用存入局部命名空间,如果有 as 子句则使用其指定的名称,否则使用该属性的名称。 ```python +# Python 中,模块(包、类、函数)的导入方式有以下四种: import xx.xx from xx.xx import xx from xx.xx import xx as rename