From a22356f97f6df340298025e189bf394af6b38c6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=99=B4?= <12077825+Wang-Qing-wq@user.noreply.gitee.com> Date: Thu, 23 May 2024 04:41:33 +0000 Subject: [PATCH] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 王晴 <12077825+Wang-Qing-wq@user.noreply.gitee.com> --- ...66\345\244\271\347\256\241\347\220\206.md" | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 "50 \347\216\213\346\231\264/20240523\346\234\254\344\273\266\345\217\212\346\226\207\344\273\266\345\244\271\347\256\241\347\220\206.md" diff --git "a/50 \347\216\213\346\231\264/20240523\346\234\254\344\273\266\345\217\212\346\226\207\344\273\266\345\244\271\347\256\241\347\220\206.md" "b/50 \347\216\213\346\231\264/20240523\346\234\254\344\273\266\345\217\212\346\226\207\344\273\266\345\244\271\347\256\241\347\220\206.md" new file mode 100644 index 0000000..e885a2f --- /dev/null +++ "b/50 \347\216\213\346\231\264/20240523\346\234\254\344\273\266\345\217\212\346\226\207\344\273\266\345\244\271\347\256\241\347\220\206.md" @@ -0,0 +1,141 @@ +### **ls**:列出目录内容。 + +```bash +ls -d 文件A 列出文件夹A本身的信息,而不是其它下面的目录和内容 +ls -a all 列出当前目录下所有文件和目录,包括隐藏文件 +ls -l 以长格式列出当前目录下的文件,包括权限、所有者、组、大小、创建日期等信息。 +ls -h 易读方式列出 +ls -t 按时间排序 +ls -r reverse 反向排列 +ls -s 按大小排序 +ls -R 递归列出当前目录下的子文件 +ls -color 以不同颜色区分不同类型文件,如蓝色表示目录,绿色表示可执行文件 + + ## 扩展如何修改环境变量 家目录下的自己的文件下,使用ls -a 显示所有文件,即可看到.bashrc这个环境变量的配置文件。将# alias ll='ls -l' 前的#号删除,并保存文件。最后要生效,就要退出帐号一次,再登录,即可使用ll来代替ls -l + alias la='ls -a' + alias l='ls -CF' + + vim bashrc 按i修改,保存wq,断开激活一次(logout) +``` + +/ 目录 * 可执行文件(/bin专门放可执行文件) @链接 + +ls -CF 更直观显示 + +### **cd**:改变当前目录。 + +返回上次所在目录:cd - cd (啥也不跟):/home/用户名 + +### pwd:显示当前工作目录的绝对路径 + +```bash +dir1 = $(pwd) 将当前工作目录路径保存到变量中 +echo $dir1 +``` + +### **mkdir**:创建新目录。 + +```bash +mkdir -p #创建多个子目录,包括父目录(如果不存在) +mkdir -p /tmp/新目录 # 创建临时目录,不长期保留,与用户文件隔离,避免暴露用户 +``` + +#### **rmdir**:删除空目录。 + +`rmdir 目录名` ,只能删除空的目录 + +### **rm**:删除文件或目录。 + +```bash +rm -i 文件名 # 删除指定的文件,删除前会询问是否删除(y 确认,n 取消)。 +rm -f 文件名 # 强制删除指定的文件,不会进行询问。 +rm -f a.txt b.txt # 同时删除多个文件 mkdir,touch等操作也支持一次性操作多个目标。都是用空格隔开 +rm -f a* # 删除所有以 a 开头的文件 +rm -f .* # 删除隐藏文件(可能会删除当前目录下的所有隐藏文件) + +rm -r 目录名 # 递归地删除目录及其子目录和文件,删除前会询问是否删除。 +rm -rf 目录名 # 递归地强制删除目录及其子目录和文件,不会进行询问。 +rm -rfv 目录名 # 除了递归强制删除外,还会显示删除的详细步骤。 +rm -d 目录名 # 只删除空目录(与 rmdir 命令类似)。 +``` + +### 作业 + +1. **创建测试文件**:在家目录下创建三个文本文件,分别命名为`.hidden.txt`(隐藏文件)、`visible1.txt`和`visible2.txt`。 + + ```bash + sudo touch .hidden.txt visible1.txt visible2.txt + ``` + +2. **列出文件和目录**:列出家目录(`~`)下的所有文件和目录,包括隐藏文件,并查看其详细权限和属性。 + +```bash +ls -al +``` + +3.**创建工作区**:创建一个新的目录`work_area`,并在其中创建三个子目录:`project_a`、`project_b`和`docs`。 + +```bash +sudo mkdir work_area +cd ./work_areacd +sudo mkdir project_a project_b docs +``` + +4.**移动文本文件**:将家目录下的所有`.txt`文件移动到`work_area/docs`目录中,并确保这些文件在移动后仍然是隐藏的(如果它们是隐藏的)。 + +```bash +sudo mv ./.[^.]*.txt ./work_area/docs +sudo mv ./*.txt ./work_area/docs +``` + +5.**创建新文件**:在`work_area/project_a`目录下创建一个新的文本文件`notes.txt`,并添加一些内容(例如:`echo "Initial notes for project A" > work_area/project_a/notes.txt`)。 + +```bash +sudo touch notes.txt +sudo chmod a+w notes.txt +vim notes.txt +Initial notes for project A +:wq +``` + +6.**复制目录**:递归地复制`work_area/project_a`目录到`work_area/project_b`,并命名为`project_a_backup`。 + +```bash +sudo cp -r ./work_area/project_a ./work_area/project_b +sudo mv project_a project_a_backup +``` + +7.**列出文件并按大小排序**:列出`work_area/docs`目录下的所有文件,并按文件大小降序排列。 + +```bash +ls -als +``` + +8.**删除所有文件**:删除`work_area/docs`目录下所有文件。 + +```bash +sudo rm -f * +``` + +9.**删除目录**:假设您不再需要`work_area/project_b`目录及其所有内容,请递归地强制删除它。 + +```bash + sudo rm -rf ./project_b +``` + +10.**清理空目录**:清理`work_area`目录,删除其中所有的空目录(注意:不要删除非空的目录)。 + +```bash +sudo rmdir docs +``` + +11.**创建别名**:回到您的家目录,并创建一个别名`llh`,该别名能够列出当前目录下文件和目录的长格式列表,并以人类可读的格式显示文件大小(类似于`ls -lh`命令)。 + +```bash +ls -a +nano .bashrc +alias llh='ls -alh' +logout + +``` + -- Gitee