diff --git "a/\347\216\213\346\226\260\351\233\205/20240520-\346\211\223\345\214\205\345\216\213\347\274\251\350\247\243\345\216\213\344\270\213\350\275\275.md" "b/\347\216\213\346\226\260\351\233\205/20240520-\346\211\223\345\214\205\345\216\213\347\274\251\350\247\243\345\216\213\344\270\213\350\275\275.md" new file mode 100644 index 0000000000000000000000000000000000000000..659b08ea627ea1abdd2f99539d09a1eea90dfb21 --- /dev/null +++ "b/\347\216\213\346\226\260\351\233\205/20240520-\346\211\223\345\214\205\345\216\213\347\274\251\350\247\243\345\216\213\344\270\213\350\275\275.md" @@ -0,0 +1,35 @@ + su 用户名 //切换到该模式下 + +```js +1、创建了用户但不在家目录下 +useradd 用户名 (需自己写清楚每个选项) +adduser 用户名 高级命令,可以对话形式完成设置 +2.1、在家目录下并改成bash +useradd 用户名 -m -s /bin/bash bash解决了后面切换到用户模式只出现$的问题 +2.2、改成bash +exit退回原模式 --> chsh -s /bin/bash --> su 用户名 +3、创建文件夹 +mkdir 文件名/文件名/…… -p //-p的选项当相关目录不存在是,就创建,若已存在就跳过而不报错 +4、创建一个空文件 +touch 文件名 +5、进入编写模式 +vim 文件名 +6、打包和解包 +tar -cvf 打包后的文件名.tar 被打包的目录或文件名 (只有打包效果,不压缩) +tar -xvf 包名 -C 指定解包在哪目录(前提这个目录存在) +//&& 依次执行多个命令 命令1 && 命令2 && 命令3 +7、压缩和解压 +gzip 文件名 -k (保存原文件) +gzip -d 文件名 +//打包并解压 tar -cvzf 打包后的文件名.tar.gz 指定要打包且压缩的文件名 +//创建一个文件并解压:mkdir test && tar -xzvf 11.tar.gz -C test 创一个test并解压文件到test + +8、下载 +sftp 用户名@公网IP + +ls 查看远程文件 +lls 查看本地有哪些文件 +将远程下载到本地文件上:get 文件名 d:1 (路径) +将本地文件上传:put 文件名 +``` + diff --git "a/\347\216\213\346\226\260\351\233\205/20240522-\345\210\227\350\241\250\345\222\214\345\210\240\351\231\244\347\232\204\345\237\272\346\234\254\345\221\275\344\273\244.md" "b/\347\216\213\346\226\260\351\233\205/20240522-\345\210\227\350\241\250\345\222\214\345\210\240\351\231\244\347\232\204\345\237\272\346\234\254\345\221\275\344\273\244.md" new file mode 100644 index 0000000000000000000000000000000000000000..988f9e36c273c10988ef656ef1541e7f58db91c4 --- /dev/null +++ "b/\347\216\213\346\226\260\351\233\205/20240522-\345\210\227\350\241\250\345\222\214\345\210\240\351\231\244\347\232\204\345\237\272\346\234\254\345\221\275\344\273\244.md" @@ -0,0 +1,89 @@ +### ls + +ls 列出当前目录下的文件和目录 + +ls /home/user 列出指定目录下的文件和目录 + +ls -a 列出文件和目录,包含隐藏的文件和目录 + +ls /etc -d 查看目录/文件的本身信息,而不是它包含的目录和内容 + +ls -l 以长格式列出,包含权限、所有者、组、大小、创建日期等 + +ls -h 以易读方式列出,将文件大小以KB、MB、GB等单位表示 + +ls -t 以时间排序 + +ls -r 反向排序列出目录和文件 + +ls -S 文件大小排序 + +ls -R 递归列出当前目录及其子目录下的所有文件和目录 + +扩展如何修改环境变量 家目录下的自己的文件下,使用ls -a 显示所有文件,即可看到.bashrc这个环境变量的配置文件。将# alias ll='ls -l' 前的#号删除,并保存文件。最后要生效,就要退出帐号一次,再登录,即可使用ll来代替ls -l + alias la='ls -a' + alias l='ls -CF' + +### cd + +cd -p 文件名 --有就跳过没有就创建 + +cd 目录名 进入目录 + +cd .. 返回上一级目录 + +cd ~ 或 cd 返回家目录 + +cd - 返回上次所在目录 + +### pwd + +pwd 显示当前工作目录的绝对路径 + +dir1 = $(pwd) # 将当前工作目录路径保存到变量中(在Shell脚本中常用) +echo $dir1 + +### mkdir + +mkdir 目录名 创建一个新目录 + +mkdir 路径/目录名 在指定路径下创建目录 + +// 在创建目录的同时,如果父目录不存在,则一并创建父目录。 +mkdir -p 父目录/新目录 创建多个目录,包括父目录(如果不存在) + 通常在写脚本的时候,为避免已存在,或不存在某目录后续命令无法继续执行,在mkdir的时候,会加-p选项 + +// 创建一个具有特定权限的目录,可以用于设置目录的读写执行权限。 +mkdir -m 权限模式 目录名 创建具有特定权限的目录 + +例:mkdir -m 777 mydir + +// 需要一个文件夹 +mkdir -p /tmp/新目录 创建临时目录,不长期保留,与用户文件隔离,避免暴露用户 + +### rmdir + +rmdir 目录名 只能删除空的目录 + +## rm + +rm -i 文件名 删除指定文件,会询问是否删除 + +rm -f 文件名 强制删除 + +rm -f a.txt b.txt 删除多个文件 + +rm -f a* /rm a* 删除所有以a开头的文件 + +rm -f .* / rm .* 删除隐藏文件(注意,这可能会删除当前目录下的所有隐藏文件,包括 . 和 ..,所以请谨慎使用) + +rmdir 目录名 仅删除空的目录 + +rm -r 目录名 递归删除目录及子目录和文件,删除前会询问是否删除 + +rm -rf 目录名 递归地强制删除目录及其子目录和文件,不会进行询问 + +rm -rfv 目录名 除了递归强制删除外,还会显示删除的详细步骤 + +rm -d 目录名 只删除空目录 + diff --git "a/\347\216\213\346\226\260\351\233\205/imgs/20240522\347\273\203\344\271\240.png" "b/\347\216\213\346\226\260\351\233\205/imgs/20240522\347\273\203\344\271\240.png" new file mode 100644 index 0000000000000000000000000000000000000000..aa8a130f4a92a6311b70cea5abc972912b38b04b Binary files /dev/null and "b/\347\216\213\346\226\260\351\233\205/imgs/20240522\347\273\203\344\271\240.png" differ diff --git "a/\347\216\213\346\226\260\351\233\205/\345\256\236\346\226\2752 0522 \344\275\234\344\270\232.md" "b/\347\216\213\346\226\260\351\233\205/\345\256\236\346\226\2752 0522 \344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..04fbdca0d8ee53d31b8111a6dbe62e831e75dd70 --- /dev/null +++ "b/\347\216\213\346\226\260\351\233\205/\345\256\236\346\226\2752 0522 \344\275\234\344\270\232.md" @@ -0,0 +1,112 @@ +假设您刚刚登录到一个Linux系统,并位于您的家目录(`~`)下。您需要完成以下一系列复杂的操作来组织和清理您的文件和目录。请按照顺序执行,并给出相应的命令。 + +1. **创建测试文件**:在家目录下创建三个文本文件,分别命名为`.hidden.txt`(隐藏文件)、`visible1.txt`和`visible2.txt`。 + + ```js + touch .hidden.txt + touch visible1.txt + touch visible2.txt + + touch .hidden.txt && touch {visible1,visible2}.txt + ``` + + + +2. **列出文件和目录**:列出家目录(`~`)下的所有文件和目录,包括隐藏文件,并查看其详细权限和属性。 + + ```js + xy@hecs-165744:/home$ ls -al ~ + total 32 + drwxr-xr-x 3 xy xy 4096 May 23 10:21 . + drwxr-xr-x 4 root root 4096 May 23 10:25 .. + -rw------- 1 xy xy 2235 May 23 10:04 .bash_history + -rw-r--r-- 1 xy xy 220 May 21 19:15 .bash_logout + -rw-r--r-- 1 xy xy 3526 May 21 19:15 .bashrc + drwx------ 3 xy xy 4096 May 21 20:00 .config + -rw-r--r-- 1 xy xy 0 May 23 10:21 .hidden.txt + -rw-r--r-- 1 xy xy 807 May 21 19:15 .profile + -rw------- 1 xy xy 1413 May 21 20:51 .viminfo + -rw-r--r-- 1 xy xy 0 May 23 10:21 visible1.txt + -rw-r--r-- 1 xy xy 0 May 23 10:21 visible2.txt + ``` + + + +3. **创建工作区**:创建一个新的目录`work_area`,并在其中创建三个子目录:`project_a`、`project_b`和`docs`。 + + ```js + xy@hecs-165744:~$ mkdir work_area && mkdir ./work_area/{project_a,project_b,docs} + ``` + + + +4. **移动文本文件**:将家目录下的所有`.txt`文件移动到`work_area/docs`目录中,并确保这些文件在移动后仍然是隐藏的(如果它们是隐藏的)。 + + ```js + xy@hecs-165744:~$ mv *.txt work_area/docs/ + xy@hecs-165744:~$ mv .*.txt work_area/docs/ + xy@hecs-165744:~/work_area/docs$ ls -a + . .. .hidden.txt visible1.txt visible2.txt + ``` + + + +5. **创建新文件**:在`work_area/project_a`目录下创建一个新的文本文件`notes.txt`,并添加一些内容(例如:`echo "Initial notes for project A" > work_area/project_a/notes.txt`)。 + + ```js + xy@hecs-165744:~$ echo "Initial notes for project A" > work_area/project_a/notes.txt + ``` + + + +6. **复制目录**:递归地复制`work_area/project_a`目录到`work_area/project_b`,并命名为`project_a_backup`。 + + ```js + xy@hecs-165744:~$ cp -r work_area/project_a work_area/project_b/project_a_backup + ``` + + + +7. **列出文件并按大小排序**:列出`work_area/docs`目录下的所有文件,并按文件大小降序排列。 + + ```js + xy@hecs-165744:~$ ls work_area/docs -alhS + total 8.0K + drwxr-xr-x 2 xy xy 4.0K May 23 10:56 . + drwxr-xr-x 5 xy xy 4.0K May 23 10:37 .. + -rw-r--r-- 1 xy xy 0 May 23 10:21 .hidden.txt + -rw-r--r-- 1 xy xy 0 May 23 10:21 visible1.txt + -rw-r--r-- 1 xy xy 0 May 23 10:21 visible2.txt + ``` + + + +8. **删除所有文件**:删除`work_area/docs`目录下所有文件。 + + ```js + xy@hecs-165744:~$ rm work_area/docs/* + ``` + +9. **删除目录**:假设您不再需要`work_area/project_b`目录及其所有内容,请递归地强制删除它。 + + ```js + xy@hecs-165744:~$ rm -rf work_area/project_b + ``` + + + +10. **清理空目录**:清理`work_area`目录,删除其中所有的空目录(注意:不要删除非空的目录)。 + + ```js + xy@hecs-165744:~$ find work_area -type d -empty -delete + ``` + + + +11. **创建别名**:回到您的家目录,并创建一个别名`llh`,该别名能够列出当前目录下文件和目录的长格式列表,并以人类可读的格式显示文件大小(类似于`ls -lh`命令)。 + + ```js + xy@hecs-165744:~$ vim .bashrc + ``` + +![alt text](./imgs/20240522练习.png) \ No newline at end of file