diff --git "a/31 \346\236\227\344\274\237\345\275\254/20240520 (adduser\343\200\201mkdir\343\200\201touch\343\200\201nano\343\200\201tar\343\200\201scp).md" "b/31 \346\236\227\344\274\237\345\275\254/20240520 (adduser\343\200\201mkdir\343\200\201touch\343\200\201nano\343\200\201tar\343\200\201scp).md" new file mode 100644 index 0000000000000000000000000000000000000000..c2e4146735cde7b40e70f77ac37cd08093d7edbb --- /dev/null +++ "b/31 \346\236\227\344\274\237\345\275\254/20240520 (adduser\343\200\201mkdir\343\200\201touch\343\200\201nano\343\200\201tar\343\200\201scp).md" @@ -0,0 +1,138 @@ +## 笔记 + +1.新建一个用户,密码设置: + +```bash +sudo adduser newuser +sudo passwd newuser +``` + +2.以刚创建的用户登录: + +```bash +su - newuser +``` + +3.在自己的家目录,按照指定层次建立文件夹: + +```bash +mkdir -p 国家/省份/市/县/镇/村/姓名 +cd 国家/省份/市/县/镇/村/姓名/ +``` + +4.在姓名文件夹中建立一个自己的学号姓名文件: + +```bash +touch 学号_姓名.txt +``` + +5.编辑学号姓名文件写入日记,要求不少于400字: + +```bash +nano 学号_姓名.txt +``` + +编辑完成后保存并退出编辑器。 + +6.将国家文件夹打包: + +```bash +tar -cvf 国家.tar 国家/ +``` + +7.练习解压文件: + +```bash +tar -xvf 国家.tar +``` + +#### 8.使用 scp 命令将压缩包下载到本地电脑: + +##### ①第一种方法 + +首先在本地电脑终端执行: + +```java +scp user@IP地址 :/path/to/国家.tar /path/to/save +``` + +注意替换 user、IP地址、文件路径前后的服务器和本地的文件路径。 + +##### ②第二种方法 + +这就需要用到**rz(上传)**、**sz(下载)**工具。 + +```java +apt-get install lrzsz //自动安装rzsz +运行rz 文件名 //会将windows的文件传到linux服务器 +运行sz 文件名 //会将文件下载到windows本地 + +rz命令和sz命令使用方法: +举例说明:将Linux服务器上的test.txt文件下载到Windows本地 +首先确保本地Windows通过ssh已经连接了linux服务器。 +命令:sz test.txt +执行命令后,会自动弹出文件存放对话框。 +``` + +#### 1、删除文件夹 + +```java +rm -rf /root/logs/game +//以上命令将会删除/root/logs/game目录并且向下穿透,其下所有文件、文件夹都会被删除。 +``` + +#### 2、删除文件 + +```java +rm -f /root/logs/game/nohup.log +//将会强制删除/root/logs/game/nohup.log这个文件 + +``` + + + +#### 修改文件路径 + +```java +要修改Linux中的文件路径,可以使用mv命令。该命令可以将文件或目录从一个位置移动到另一个位置。例如,要将文件"file.txt从/home/user1/"移动到"/home/user2": +mv /home/user1/file.txt /home/user2/ +``` + +#### 修改文件路径并重命名 + +```java +//如果要将文件重命名并将其移动到新位置,可以在mv命令中指定新文件名。例如,将文件"fle.xt"重命名为"newile.tx并将其移动到/home/user2" : +mv /home/user1/file.txt /home/user2/newfile.txt +``` + +/请注意,您需要具有足够的权限才能移动文件或目录。如果您没有足够的权限,则需要使用sudo + +## 作业: + +~~~java +1.新建用户 +adduser 用户名 +passw 密码 +su - 用户名 //进入用户 +---------------------------------------------------------------------------------------- +2.创建目录 +```java +mkdir -p 国家/身份/市区/县/镇 //批量创建目录 +cd 国家/身份/市区/县/镇/ +---------------------------------------------------------------------------------------- +3.创建文件 +touch 文件.后缀 +nano 文件.后缀 +atrl+x +y 回车 +---------------------------------------------------------------------------------------- +4.压缩、解压文件 +tar -cvf 压缩的文件名.tar 文件夹/ +tar -xvf 解压的文件名.tar +---------------------------------------------------------------------------------------- +5.下载到电脑 +本地终端: scp 用户名@IP地址:文件夹/文件 下载的本地路径 +例:scp userzi@192.168.1.1:home/中国.tar E:/桌面 + +~~~ + diff --git "a/31 \346\236\227\344\274\237\345\275\254/20240521 (cp\343\200\201mv\343\200\201rm).md" "b/31 \346\236\227\344\274\237\345\275\254/20240521 (cp\343\200\201mv\343\200\201rm).md" new file mode 100644 index 0000000000000000000000000000000000000000..22c758c69d59e1a79f68f0dbd75eefa414c5cbf8 --- /dev/null +++ "b/31 \346\236\227\344\274\237\345\275\254/20240521 (cp\343\200\201mv\343\200\201rm).md" @@ -0,0 +1,115 @@ +# cp、mv、rm + +#### ①cp :命令复制文件文件夹 + +```js +cp [-r] 参数1 参数2 +// -r选项,可选,用于复制 [文件夹] 使用,表示递归,如需要复制文件夹则加 -r +// 参数1,Linux路径,表示被复制的文件或文件夹 +// 参数2,Linux路径,表示要复制去的地方 + +``` + +#### ②mv:移动、改名文件或文件夹 + +```js +mv 参数1 参数2 +例:mv test.txt ziwen/ //移动文件 +例:mv test.txt test2.txt //改名 +// 参数1,Linux路径,表示被移动的文件或文件夹 +// 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在 + +``` + +#### ③r m:删除文件、文件夹 + +```js +rm [-r -f] test.txt // 删除文件,如果要删除文件夹必须加-r +rm test.txt test1.txt test2.txt // 删除多个文件,用空格隔开 +// -r选项,可选,文件夹删除 +// -f选项,可选,用于强制删除(不提示,一般用于root用户) +``` + + + +# 作业 + +1. ### 综合练习题:大学生生活场景中的文件夹和文件管理 + + 假设你是一名大学生,现在面临着整理学习资料和课程作业的任务。请按照以下要求完成相关的文件夹和文件管理操作: + + 1. 在个人文档目录下创建名为`学习资料`的文件夹,并进入该文件夹: + + ```java + mkdir ~/Documents/学习资料 && cd ~/Documents/学习资料 + ``` + + 2. 在`学习资料`文件夹中创建名为`计算机科学`的文件夹: + + ```java + mkdir 计算机科学 + ``` + + 3. 在`计算机科学`文件夹中创建两个子文件夹,分别命名为`课程资料`和`编程项目`: + + ```java + mkdir /课程资料 && mkdir /编程项目 + ``` + + 4. 将最近的一门计算机科学课程的课件文件(假设文件名为`CS101_第一讲.pdf`)放入`课程资料`文件夹: + + ```java + mv cs101_第一讲.pdf 课程资料/ + ``` + + + + 5. 在`编程项目`文件夹中创建一个名为`Java项目`的文件夹: + + ```java + mkdir 计算机科学/编程项目/Java项目 + ``` + + 6. 在`Java项目`文件夹中创建两个空文件,分别命名为`主程序.java`和`工具类.java`: + + ```java + touch 计算机科学/编程项目/Java项目/主程序.java 计算机科学/编程项目/Java项目/工具类.java + ``` + + 7. 复制`主程序.java`并命名为`备份_主程序.java`: + + ```java + cp 计算机科学/编程项目/Java项目/主程序.java 计算机科学/编程项目/Java项目/备份_主程序.java + ``` + + + + 8. 创建一个名为`Python项目`的文件夹,并将`工具类.java`移动到`Python项目`文件夹中: + + ```java + mkdir 计算机科学/编程项目/Python项目 && mv 计算机科学/编程项目/Java项目/工具类.java 计算机科学/编程项目/Python项目 + ``` + + 9. 列出`计算机科学`文件夹中所有文件和文件夹的内容:写到这里 + + ``` + ls 计算机科学 + ``` + + 10. 删除`编程项目`文件夹及其包含的所有内容: + + ``` + rm -rf 计算机科学/编程项目 + ``` + + 11. 重命名`Python项目`为`数据分析项目`: + + ``` + mv 计算机科学/Python项目 计算机科学/数据分析项目 + ``` + + 最后,列出当前所在目录的路径: + + 12. ``` + pwd + ``` \ No newline at end of file diff --git "a/31 \346\236\227\344\274\237\345\275\254/20240523 (alias\343\200\201find).md" "b/31 \346\236\227\344\274\237\345\275\254/20240523 (alias\343\200\201find).md" new file mode 100644 index 0000000000000000000000000000000000000000..768315319544b404f210772e167daf220755832e --- /dev/null +++ "b/31 \346\236\227\344\274\237\345\275\254/20240523 (alias\343\200\201find).md" @@ -0,0 +1,128 @@ + + +# 笔记: + +### find:查找文件 + +-type 文件类型 +d 目录 +-empty 空目录 +-exec 允许后面执行一个命令 +{} 将会被匹配到的文件名代理 +\; 命令结束 + +```js +// 按文件名查找文件 +find 起始路径 -name "被查找的文件名" +例:find / -name “test” //查找文件名叫做:test的文件,从根目录开始搜索 + +// 按文件大小查找文件 +find 起始路径 -size [+ -] n [kMG] +例:find / -size -10k //查找小于10KB的文件 +// +、- 表示大于和小于 +// n表示大小数字 +// kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB +-------------------- +find ~/work_area -type d -empty -exec rm -r {} \; +// find 查找文件或目录 +// -type 文件类型 +// d 目录 +// -empty 空目录 +// -exec 允许后面执行一个命令 +// {} 将会被匹配到的文件名代理 +// \; 命令结束 +``` + +### alias:创建别名 + +语  法:alias[别名]=[指令名称] + +```js +alias llh='ls -l' +//语  法:alias[别名]=[指令名称] +``` + +# 作业: + +假设您刚刚登录到一个Linux系统,并位于您的家目录(`~`)下。您需要完成以下一系列复杂的操作来组织和清理您的文件和目录。请按照顺序执行,并给出相应的命令。 + +1. #### **创建测试文件**:在家目录下创建三个文本文件,分别命名为`.hidden.txt`(隐藏文件)、`visible1.txt`和`visible2.txt`。 + + ```js + touch ~/.hidden.txt + touch ~/visible1.txt + touch ~/visible2.txt + ``` + +2. **列出文件和目录**:列出家目录(`~`)下的所有文件和目录,包括隐藏文件,并查看其详细权限和属性。 + + ```js + ls -lah + ``` + +3. **创建工作区**:创建一个新的目录`work_area`,并在其中创建三个子目录:`project_a`、`project_b`和`docs`。 + + ```js + mkdir -p work_area/project_a work_area/project_b work_area/docs + ``` + +4. **移动文本文件**:将家目录下的所有`.txt`文件移动到`work_area/docs`目录中,并确保这些文件在移动后仍然是隐藏的(如果它们是隐藏的)。 + + ``` + mv ~/*.txt ~/work_area/docs/ + ``` + +5. **创建新文件**:在`work_area/project_a`目录下创建一个新的文本文件`notes.txt`,并添加一些内容(例如:`echo "Initial notes for project A" > work_area/project_a/notes.txt`)。 + + ```js + touch work_area/project_a/nots.txt | echo "Initial notes for project A" > work_area/project_a/nots.txt //利用管道符|和echo追加内容 + ``` + +6. **复制目录**:递归地复制`work_area/project_a`目录到`work_area/project_b`,并命名为`project_a_backup`。 + + ```js + cp -r ~/work_area/project_a/ ~/work_area/project_b/project_a_backup + ``` + +7. **列出文件并按大小排序**:列出`work_area/docs`目录下的所有文件,并按文件大小降序排列。 + + ```js + ls -lhS work_area/docs^ + // -l 使用详细格式列表。 + // -S 用文件和目录的大小排序。 + // -h或--human-readable 用"K","M","G"来显示文件和目录的大小。 + ``` + +8. **删除所有文件**:删除`work_area/docs`目录下所有文件。 + + ``` + rm ~/work_area/docs/* + ``` + +9. **删除目录**:假设您不再需要`work_area/project_b`目录及其所有内容,请递归地强制删除它。 + + ```js + rm -rf ~/work_area/project_b + ``` + +10. **清理空目录**:清理`work_area`目录,删除其中所有的空目录(注意:不要删除非空的目录)。 + + ```js + find ~/work_area -type d -empty -exec rm -r {} \; + // find 查找文件或目录 + // -type 文件类型 + // d 目录 + // -empty 空目录 + // -exec 允许后面执行一个命令 + // {} 将会被匹配到的文件名代理 + // \; 命令结束 + ``` + +11. **创建别名**:回到您的家目录,并创建一个别名`llh`,该别名能够列出当前目录下文件和目录的长格式列表,并以人类可读的格式显示文件大小(类似于`ls -lh`命令)。 + + ```js + alias llh='ls -l' + //语  法:alias[别名]=[指令名称] + ``` + + \ No newline at end of file diff --git "a/31 \346\236\227\344\274\237\345\275\254/\345\255\246\344\271\240\350\265\204\346\226\231/Linux.chm" "b/31 \346\236\227\344\274\237\345\275\254/\345\255\246\344\271\240\350\265\204\346\226\231/Linux.chm" new file mode 100644 index 0000000000000000000000000000000000000000..84c35850b3ec40e081861bcf59c21d50eecaa7e9 Binary files /dev/null and "b/31 \346\236\227\344\274\237\345\275\254/\345\255\246\344\271\240\350\265\204\346\226\231/Linux.chm" differ diff --git "a/31 \346\236\227\344\274\237\345\275\254/\345\255\246\344\271\240\350\265\204\346\226\231/Linux\347\254\224\350\256\260.md" "b/31 \346\236\227\344\274\237\345\275\254/\345\255\246\344\271\240\350\265\204\346\226\231/Linux\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..9ff2140ad66b3b292072e1dd5ff45dd26b59e208 --- /dev/null +++ "b/31 \346\236\227\344\274\237\345\275\254/\345\255\246\344\271\240\350\265\204\346\226\231/Linux\347\254\224\350\256\260.md" @@ -0,0 +1,217 @@ +# Linux基础命令 + +# 1、ls :列出目录下的内容 + +```java +ls [-a -l -h ] [Linux路径] +//-a 选项,表示:all的意思,即列出全部文件(包含隐藏的文件/文件夹) + +//-l 选项,表示:以列表(竖向排列)的形式展示内容,并展示更多信息 + +//-h 表示以易于阅读的形式,列出文件大小,如K、M、G + +//-h 选项必须要搭配 -l 一起使用 +``` + +# 2、cd / pwd + +#### ①cd:切换工作目录 + +```js +cd [Linux路径] //cd命令无需选项,只有参数,标示要切换到哪个目录下 +``` + +#### ②pwd:查看当前工作目录 + +```js +pwd //无选项,无参数,直接输入pwd即可 +``` + +### 相对路径、绝对路径和特殊路径符: + +```java +cd /home/itheima/Desktop //绝对路径写法 + +cd Desktop //相对路径写法 +``` + +# 3、mkdir + +```java +mkdir [-p] Linux路径 //-p选项可选填,表示自动创建不存在的父目录,适用于创建连续多层级的目录 +``` + +# 4、touch、cat、more + +#### ①touch :创建文件 + +```js +touch Linux路径 //touch命令无选项,参数必填 +``` + +#### ②cat命令 查看文件内容 + +```js +cat Linux路径 //cat同样没有选项,只有必填参数 +``` + +#### ③more命令查看文件内容 + +```js +more linux路径 //more支持翻页,如果文件内容过多,可以一页页的展示 + //查看的过程中,通过空格翻页 + //通过q退出查看 +``` + +# 5、cp、mv、rm + +#### ①cp :命令复制文件文件夹 + +```js +cp [-r] 参数1 参数2 +// -r选项,可选,用于复制 [文件夹] 使用,表示递归,如需要复制文件夹则加 -r +// 参数1,Linux路径,表示被复制的文件或文件夹 +// 参数2,Linux路径,表示要复制去的地方 + +``` + +#### ②mv:移动、改名文件或文件夹 + +```js +mv 参数1 参数2 +例:mv test.txt ziwen/ //移动文件 +例:mv test.txt test2.txt //改名 +// 参数1,Linux路径,表示被移动的文件或文件夹 +// 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在 + +``` + +#### ③r m:删除文件、文件夹 + +```js +rm [-r -f] test.txt // 删除文件,如果要删除文件夹必须加-r +rm test.txt test1.txt test2.txt // 删除多个文件,用空格隔开 +// -r选项,可选,文件夹删除 +// -f选项,可选,用于强制删除(不提示,一般用于root用户) +``` + +# 6、which、find + +#### ①which: 查看所使用的一系列命令的程序文件存放在哪里 + +```js +which pwd // 查看pwd命令存放在哪里 +``` + +#### ②find:查找文件 + +-type 文件类型 +d 目录 +-empty 空目录 +-exec 允许后面执行一个命令 +{} 将会被匹配到的文件名代理 +\; 命令结束 + +```js +// 按文件名查找文件 +find 起始路径 -name "被查找的文件名" +例:find / -name “test” //查找文件名叫做:test的文件,从根目录开始搜索 + +// 按文件大小查找文件 +find 起始路径 -size [+ -] n [kMG] +例:find / -size -10k //查找小于10KB的文件 +// +、- 表示大于和小于 +// n表示大小数字 +// kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB +-------------------- +find ~/work_area -type d -empty -exec rm -r {} \; +// find 查找文件或目录 +// -type 文件类型 +// d 目录 +// -empty 空目录 +// -exec 允许后面执行一个命令 +// {} 将会被匹配到的文件名代理 +// \; 命令结束 +``` + +# 7、grep、wc:和管道符 + +#### ①grep:从文件中通过关键字过滤文件行 + +```js +grep [-n] "关键字" 文件路径 +// 选项-n,可选,表示在结果中显示匹配的行的行号。 +// 参数,关键字,必填,表示过滤的关键字,建议使用””将关键字包围起来 +// 参数,文件路径,必填,表示要过滤内容的文件路径,可作为管道符的输入 +``` + +#### ②wc命令:命令统计文件的行数、单词数量、字节数、字符数等 + +```js +wc [-c -m -l -w] 文件路径 +// 不带选项默认统计:行数、单词数、字节数 +//- c字节数、-m字符数、-l行数、-w单词数 +// 参数,被统计的文件路径,可作为管道符的输入 +``` + +#### ③管道符:| 将管道符左边命令的结果,作为右边命令的输入 + +# 8、echo、tail:和重定向符 + +#### echo:在命令行内输出指定内容 + +```js +echo "输出的内容" //在命令行内输出指定内容 + +``反引号符 +被 `` 包围的内容,会被作为命令执行,而非普通字符 +例:echo `pwd` +``` + +#### tail:查看文件尾部内容,并可以持续跟踪 + +```js +tail [-f -num] Linux路径 +例:tail 5 test.txt +// -f:持续跟踪, +// -num:启动的时候查看尾部多少行,默认10 +// Linux路径,表示被查看的文件 +``` + +#### 重定向符: + +```js +// >,将左侧命令的结果,覆盖写入到符号右侧指定的文件中 +例:echo “Hello Linux” > itheima.txt +例:echo “Hello itheima” > itheima.txt,再次执行,覆盖新内容 +// >>,将左侧命令的结果,追加写入到符号右侧指定的文件中 +例:echo “Hello itcast” >> itheima.txt,再次执行,使用>>追加新内容 +``` + + + +# 9、vi/vim编辑器 + +#### vi\vim编辑器的三种工作模式 + +![image-20240522155720012](https://gitee.com/weibina/computer-fundamentals/raw/master/img/image-20240522155720012.png) + +命令模式: + +![image-20240522155734748](https://gitee.com/weibina/computer-fundamentals/raw/master/img/image-20240522155734748.png) + + + +底线命令模式: + +![image-20240522155840456](https://gitee.com/weibina/computer-fundamentals/raw/master/img/image-20240522155840456.png) + +# 10、创建别名 + + + +```js +alias llh='ls -l' +//语  法:alias[别名]=[指令名称] +``` +