diff --git "a/34\347\277\237\347\216\211\351\224\237/Linux\344\275\234\344\270\232/2024.05.18 \344\275\234\344\270\232.md" "b/34\347\277\237\347\216\211\351\224\237/Linux\344\275\234\344\270\232/2024.05.18 \344\275\234\344\270\232.md" index 74bab66ce751d74729b2035b515b38450e0928da..20a6ac37979a0f4485211ce8ed6904f537408c46 100644 --- "a/34\347\277\237\347\216\211\351\224\237/Linux\344\275\234\344\270\232/2024.05.18 \344\275\234\344\270\232.md" +++ "b/34\347\277\237\347\216\211\351\224\237/Linux\344\275\234\344\270\232/2024.05.18 \344\275\234\344\270\232.md" @@ -1,3 +1,16 @@ # 遇到问题 -1. 连接不上主机:用户名错误 \ No newline at end of file +1. 连接不上主机:用户名错误 + +## 一些命令 + + + +```js +mkdir //创建 +mkdir -p /目录名/ +touch //创建文件 +pwd //查看所有目录 +vim 文件名 .txt //插入文本 +``` + diff --git "a/34\347\277\237\347\216\211\351\224\237/Linux\344\275\234\344\270\232/img/2024-05-22\344\275\234\344\270\2321-2.png" "b/34\347\277\237\347\216\211\351\224\237/Linux\344\275\234\344\270\232/img/2024-05-22\344\275\234\344\270\2321-2.png" new file mode 100644 index 0000000000000000000000000000000000000000..dbdec1be2462334defca6548df16fecc99db84bd Binary files /dev/null and "b/34\347\277\237\347\216\211\351\224\237/Linux\344\275\234\344\270\232/img/2024-05-22\344\275\234\344\270\2321-2.png" differ diff --git "a/34\347\277\237\347\216\211\351\224\237/Linux\344\275\234\344\270\232/img/2024-05-22\344\275\234\344\270\2323.png" "b/34\347\277\237\347\216\211\351\224\237/Linux\344\275\234\344\270\232/img/2024-05-22\344\275\234\344\270\2323.png" new file mode 100644 index 0000000000000000000000000000000000000000..812ada1493d580602afe61786e4154311feace30 Binary files /dev/null and "b/34\347\277\237\347\216\211\351\224\237/Linux\344\275\234\344\270\232/img/2024-05-22\344\275\234\344\270\2323.png" differ diff --git "a/34\347\277\237\347\216\211\351\224\237/Linux\344\275\234\344\270\232/\345\256\236\346\226\2753 0522 \344\275\234\344\270\232.md" "b/34\347\277\237\347\216\211\351\224\237/Linux\344\275\234\344\270\232/\345\256\236\346\226\2753 0522 \344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..6bcf3e28bca28fbfd6453c7420a0772f5c16ea18 --- /dev/null +++ "b/34\347\277\237\347\216\211\351\224\237/Linux\344\275\234\344\270\232/\345\256\236\346\226\2753 0522 \344\275\234\344\270\232.md" @@ -0,0 +1,47 @@ +假设您刚刚登录到一个Linux系统,并位于您的家目录(`~`)下。您需要完成以下一系列复杂的操作来组织和清理您的文件和目录。请按照顺序执行,并给出相应的命令。 + +1. **创建测试文件**:在家目录下创建三个文本文件,分别命名为`.hidden.txt`(隐藏文件)、`visible1.txt`和`visible2.txt`。 + + ```js + touch .hidden.txt visible1.txt visible2.tx //在家目录下创建三个文本文件,分别命名为`.hidden.txt`(隐藏文件)、`visible1.txt`和`visible2.txt` + + ``` + + + +2. **列出文件和目录**:列出家目录(`~`)下的所有文件和目录,包括隐藏文件,并查看其详细权限和属性。 + + ```js + ls -alhs //列出家目录(`~`)下的所有文件和目录,包括隐藏文件,并查看其详细权限和属性 + ``` + + + +3. **创建工作区**:创建一个新的目录`work_area`,并在其中创建三个子目录:`project_a`、`project_b`和`docs`。 + + ```js + mkdir work_area //创建一个新的目录`work_area` + cd work_area //切换到work_area + mkdir project_a project_b docs //创建三个子目录:`project_a`、`project_b`和`docs` + + ``` + + + +4. **移动文本文件**:将家目录下的所有`.txt`文件移动到`work_area/docs`目录中,并确保这些文件在移动后仍然是隐藏的(如果它们是隐藏的)。 + + + +5. **创建新文件**:在`work_area/project_a`目录下创建一个新的文本文件`notes.txt`,并添加一些内容(例如:`echo "Initial notes for project A" > work_area/project_a/notes.txt`)。 + +6. **复制目录**:递归地复制`work_area/project_a`目录到`work_area/project_b`,并命名为`project_a_backup`。 + +7. **列出文件并按大小排序**:列出`work_area/docs`目录下的所有文件,并按文件大小降序排列。 + +8. **删除所有文件**:删除`work_area/docs`目录下所有文件。 + +9. **删除目录**:假设您不再需要`work_area/project_b`目录及其所有内容,请递归地强制删除它。 + +10. **清理空目录**:清理`work_area`目录,删除其中所有的空目录(注意:不要删除非空的目录)。 + +11. **创建别名**:回到您的家目录,并创建一个别名`llh`,该别名能够列出当前目录下文件和目录的长格式列表,并以人类可读的格式显示文件大小(类似于`ls -lh`命令)。 \ No newline at end of file diff --git "a/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.14 \347\254\254\344\270\200\350\257\276\345\210\251\347\224\250\350\207\252\345\267\261\345\206\231\345\245\275\347\232\204markdown\346\226\207\346\241\243\357\274\214\347\224\237\346\210\220\347\275\221\347\253\231.md" "b/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.14 \347\254\254\344\270\200\350\257\276\345\210\251\347\224\250\350\207\252\345\267\261\345\206\231\345\245\275\347\232\204markdown\346\226\207\346\241\243\357\274\214\347\224\237\346\210\220\347\275\221\347\253\231.md" index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..965ac779ebddfbfee15632cc5798970e499d10c1 100644 --- "a/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.14 \347\254\254\344\270\200\350\257\276\345\210\251\347\224\250\350\207\252\345\267\261\345\206\231\345\245\275\347\232\204markdown\346\226\207\346\241\243\357\274\214\347\224\237\346\210\220\347\275\221\347\253\231.md" +++ "b/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.14 \347\254\254\344\270\200\350\257\276\345\210\251\347\224\250\350\207\252\345\267\261\345\206\231\345\245\275\347\232\204markdown\346\226\207\346\241\243\357\274\214\347\224\237\346\210\220\347\275\221\347\253\231.md" @@ -0,0 +1,65 @@ +以用vitepress为例: + +1. 在D盘创建一个目录,用vs code打开 + +2. 查看打开终端 + +3. npm add -D vitepress // 利用node来安装vitepress + +4. npx vitepress init // 启用vitepress的设置向导 + + 1. ```js + Welcome to VitePress! + │ + ◇ Where should VitePress initialize the config? + │ ./docs + │ + ◇ Site title: + │ 我的笔记我作主 + │ + ◇ Site description: + │ 这是一个用markdown生成的笔记网站 + │ + ◇ Theme: + │ Default Theme + │ + ◇ Use TypeScript for config and theme files? + │ Yes + │ + ◇ Add VitePress npm scripts to package.json? + │ Yes + │ + └ Done! Now run npm run docs:dev and start writing. + ``` + + + +5. npm run docs:dev // 本地预览生成的效果 + +6. 修改index.md可以修改首页的连接 + +7. 修改config可以修改右上角的导航,和左侧的导航 + +8. 将笔记的文档复制到docs目录下的对应子目录 + +9. 利用cmd的tree /F 命令得到所有笔记的文件名,再将 + + 1. ```js + items: [ + { text: 'Markdown Examples', link: '/markdown-examples' }, + { text: 'Runtime API Examples', link: '/api-examples' } + ] + 这种要配置的格式扔给AI,让它整合文件名到这种格式 + ``` + + + +10. 如果你要将笔记放在一个统一的子目录中访问,用在配置文件config中加入一行 + + 'base':'/books/', + +11. npm run docs:build // 将md文件生成html到\docs\.vitepress\dist 目录,想本地预览就执行npm run docs:preview + +12. 登录自己的服务器,使用SSH工具,将dist上传到自己网站的目录 + +13. mv dist books // 将dist改名为books \ No newline at end of file diff --git "a/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.15 \347\254\254\344\272\214\350\257\276\344\275\277\347\224\250Vm .md" "b/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.15 \347\254\254\344\272\214\350\257\276\344\275\277\347\224\250Vm .md" index 965ac779ebddfbfee15632cc5798970e499d10c1..932077442911b8bed88b428abdec9b32b69a6a61 100644 --- "a/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.15 \347\254\254\344\272\214\350\257\276\344\275\277\347\224\250Vm .md" +++ "b/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.15 \347\254\254\344\272\214\350\257\276\344\275\277\347\224\250Vm .md" @@ -1,65 +1,66 @@ -以用vitepress为例: +# Linux基础 -1. 在D盘创建一个目录,用vs code打开 +1. Linux是操作系统的内核,以其为基础会有很多发行版本 -2. 查看打开终端 + 1. RedHat 收费商业版本,Centos 是RedHat的社区版本 很流行 + 2. Debian 命令行为主,Ubantu 是以Debian+桌面皮肤的版本 + 3. 类似显卡的核心,N卡A卡相当于内核,不同商家出的具体的型号的显卡,相当于发行版本 -3. npm add -D vitepress // 利用node来安装vitepress +2. 学习Debian的两种方式 -4. npx vitepress init // 启用vitepress的设置向导 + 1. 安装虚拟机,再安装debian,快照 + 2. 利用阿里云、华为云、腾讯云,也利用快照功能。对服务器进行存档 - 1. ```js - Welcome to VitePress! - │ - ◇ Where should VitePress initialize the config? - │ ./docs - │ - ◇ Site title: - │ 我的笔记我作主 - │ - ◇ Site description: - │ 这是一个用markdown生成的笔记网站 - │ - ◇ Theme: - │ Default Theme - │ - ◇ Use TypeScript for config and theme files? - │ Yes - │ - ◇ Add VitePress npm scripts to package.json? - │ Yes - │ - └ Done! Now run npm run docs:dev and start writing. - ``` - - - -5. npm run docs:dev // 本地预览生成的效果 +3. 准备好 虚拟机VM 17版本+Debian 12.5 64位的ISO文件 -6. 修改index.md可以修改首页的连接 +4. 先安装VM,再创建一个新虚拟机 -7. 修改config可以修改右上角的导航,和左侧的导航 +5. 如何下载一个Debian的安装镜像 https://www.debian.org/ -8. 将笔记的文档复制到docs目录下的对应子目录 +6. 直接在虚拟机操作debian很麻烦,所以想办法,用SSH远程登录它 -9. 利用cmd的tree /F 命令得到所有笔记的文件名,再将 +7. 默认Debian没有安装SSH服务端,自己安装一个 1. ```js - items: [ - { text: 'Markdown Examples', link: '/markdown-examples' }, - { text: 'Runtime API Examples', link: '/api-examples' } - ] - 这种要配置的格式扔给AI,让它整合文件名到这种格式 + apt-get install ssh -y // 需要root权限,安装SSH服务端 + ip addr show // 查看IP地址 + ifconfig // 需要root权限,可以借权sudo + // 以上两步,就可以让我们用普通用户远程登录了,但是默认下root是不可以直接登录的。需对ssh做配置 + + // 为了方便我们编辑文件。安装一个vim编辑器,默认是vi ``` -10. 如果你要将笔记放在一个统一的子目录中访问,用在配置文件config中加入一行 +8. 修改ssh的服务端配置文件/etc/ssh/sshd_config文件 + + ```js + vim /etc/ssh/sshd_config + Port 22// 开启端口22 + PermitRootLogin yes // 允许root登录 + PasswordAuthentication yes // 采用密码验证模式 + PermitEmptyPasswords no // 禁用空密码 + + + // 重启ssh,让修改后的配置生效 + systemctl restart ssh + // /etc/init.d/ssh restart 同上的效果 + ``` - 'base':'/books/', + -11. npm run docs:build // 将md文件生成html到\docs\.vitepress\dist 目录,想本地预览就执行npm run docs:preview +9. 如何借用root权限 -12. 登录自己的服务器,使用SSH工具,将dist上传到自己网站的目录 + 1. ```js + 1. 安装sudo + apt-get install sudo -y + 2. 将普通用户名加入 + vim /etc/sudoers + ## + ## Allow root to run any commands anywhere + root ALL=(ALL) ALL + 用户名 ALL=(ALL) ALL + + ``` -13. mv dist books // 将dist改名为books \ No newline at end of file + 2. 重新登录普通用户,就可以使用sudo功能 \ No newline at end of file diff --git "a/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.18 \347\254\254\344\270\211\350\257\276Linux\346\226\207\344\273\266\347\263\273\347\273\237\347\273\223\346\236\204 .md" "b/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.18 \347\254\254\344\270\211\350\257\276Linux\346\226\207\344\273\266\347\263\273\347\273\237\347\273\223\346\236\204 .md" new file mode 100644 index 0000000000000000000000000000000000000000..06d47f339ff3fb3a7067d557ecf5ec48c2bd0732 --- /dev/null +++ "b/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.18 \347\254\254\344\270\211\350\257\276Linux\346\226\207\344\273\266\347\263\273\347\273\237\347\273\223\346\236\204 .md" @@ -0,0 +1,25 @@ +Debian Linux采用了典型的Linux文件系统结构,以下是其主要目录结构: + +```csharp +/ # 这是文件系统的起点。所有的目录和文件都从这里开始。 +├── bin # 常规执行程序的存放位置,普通用户 +├── boot # 包含引导加载程序和内核文件 +├── dev # 包含设备文件 +├── etc # 存放系统配置文件 +├── home # 普通用户的家目录所在地 +├── lib # 存放系统库文件 +├── media # 用于挂载可移动介质的挂载点 +├── mnt # 用于手动挂载临时文件系统的挂载点 mount +├── opt # 可选的第三方软件包的安装目录 +├── proc # 虚拟文件系统,提供有关系统和运行进程的信息 +├── root # root用户的家目录 +├── run # 运行时临时文件目录 +├── sbin # 存放系统管理员需要的系统管理命令 +├── srv # 存放服务的数据目录 +├── sys # 包含虚拟文件系统,如文件系统相关的信息和统计数据 +├── tmp # 临时文件目录 a +├── usr # 包含大部分用户安装的程序和文件 +├── var # 包含经常变化的文件,如日志文件、缓存文件等 +└── lost+found# 文件系统检查程序将损坏的文件片段放置在此处 +``` + diff --git "a/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.21 \347\254\254\345\233\233\350\257\27605.18 \344\275\234\344\270\232\350\257\246\350\247\243.md" "b/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.21 \347\254\254\345\233\233\350\257\27605.18 \344\275\234\344\270\232\350\257\246\350\247\243.md" new file mode 100644 index 0000000000000000000000000000000000000000..6c713c3b24adafb87c7ba2edcfcdf2c00ff3728e --- /dev/null +++ "b/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.21 \347\254\254\345\233\233\350\257\27605.18 \344\275\234\344\270\232\350\257\246\350\247\243.md" @@ -0,0 +1,56 @@ +1. 新建一个用户,密码设置 + 1. useradd 全程要用户指定对应的选项和参数 + 2. useradd 用户名 + 3. passwd 用户名 + 1. useradd 创建的用户,需要详细的选项来修正,默认缺少家目录,也没有bash的shell可用 + 2. 解决方法 + 1. -m 生成家目录 + 2. -s /bin/bash 设置bash为新用户的shell + 4. 另一个高级命令 adduser,自动创建家目录,及对话形式建立相关参数 +2. 以刚建的用户登录,操作以下 + 1. 单独新建一个客户端连接 + 2. 直接使用su命令切换到新用户:su 要切换的用户名 +3. 使用命令,在自己的家目录,以以下层次依次建立文件夹 + 1. 国家 + 1. 省份 + 1. 市 + 1. 县(区) + 1. 镇(街道) + 1. 村(小区) + 1. 姓名 + 2. mkdir 文件夹名,新建文件夹,如果要连同父级目录一起创建就加上-p这个选项 + 1. -p的效果是,有则忽略无则创建,而不报错 +4. 在姓名文件夹,建立一个自己的学号姓名文件 + 1. 直接创建一个空文件 + 1. 使用vim进行编辑 + 2. vim的三种模式 + 1. 普通模式:不能编辑,默认的模式,可直接接收按钮指令 + 2. 编辑模式:在普通指定下i,进行文字的相关编辑,按ESC退回到普通模式 + 3. 命令行模式:通过命令执行保存(write) ,退出(quit),强制执行(!) + 1. 在普通模式,在英文输入法的状态下,按下Shift+:号,进入命令行模式(末行模式) + 2. 如何退出命令行模式,也是ESC + 2. 打开一个编辑器,新建文件 + 1. vim + 2. 默认编辑器 nano + 3. 复制一个文件,改一改 + 4. 在bash中,按一次tab自动识别文件的唯一性,只有一个,就自动显示,或者将共同部分显示 + 5. 如果不太一样,不确定唯一性,就要按两次tab,会显示所有可选项 +5. 在这个文件中,写一篇不少于400字的日记 +6. 最后,将国家这个文件夹打包,同时练习怎么解压 + 1. 打包 tar -cvf 打包后的名 要打包的文件或目录(可以多个),显示过程 + 2. 解包 tar -xvf 要解包的文件名 + 3. 压缩 gzip 压缩文件 + 4. 解压 gunzip 解压缩 + 5. tar和gzip一起使用 : + 1. tar -cvzf 打包并压缩 + 2. tar -xzvf 解压并解包 + 6. && 可以连接多个命令的执行 +7. 使用命令将这个压缩包下载到本地电脑【不能用shell里自带的下载功能】 + 1. scp要在本地执行 + 1. 下载:scp 用户名@主机IP:/要下载的具体文件路径 本地电脑的目录 + 2. scp cxw01@172.16.90.73:/home/cxw01/big.tar.gz d:/ + 3. 上传:scp 本地电脑文件的路径 用户名@主机IP:/要上传到的文件目录 + 4. scp d:/补充说明.jpg cxw01@172.16.90.73:/home/cxw01/1314/ + 2. sftp 也可以实现 ,用法类似SSH + 1. 操作都要进入对应的目录,不管是远程还是本地 + 2. get是下载,put是上传,后面直接用文件名 \ No newline at end of file diff --git "a/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.22 \347\254\254\344\272\224\350\257\276Linux\346\226\207\344\273\266\347\256\241\347\220\206\345\221\275\344\273\244.md" "b/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.22 \347\254\254\344\272\224\350\257\276Linux\346\226\207\344\273\266\347\256\241\347\220\206\345\221\275\344\273\244.md" new file mode 100644 index 0000000000000000000000000000000000000000..ff6c202751a4feaa94f2d3662d08f037f99a9c6a --- /dev/null +++ "b/34\347\277\237\347\216\211\351\224\237/Linux\347\254\224\350\256\260/2024.05.22 \347\254\254\344\272\224\350\257\276Linux\346\226\207\344\273\266\347\256\241\347\220\206\345\221\275\344\273\244.md" @@ -0,0 +1,39 @@ +## Linux文件管理命令 l:lemon: + +1.**ls** 列出目录内容 + +```js +ls #列出当前目录下的文件和目录 + ls 文件夹A #列出指定目录文件夹A下的文件和目录 + ls -d 文件夹A # 列出文件夹A本身的信息,而不是其它下面的目录和内容 + ls -a # all 列出当前目录下的所有文件和目录,包括隐藏文件/目录 + ls -l #以长格式列出当前目录下的文件和目录,包括权限、所有者、组、大小、创建日期等信息 + ls -h # 以易读的方式列出当前目录下的文件和目录,将文件大小以KB、MB\GB等单位表示 + ls -t # t->time 根据修改时间排序列出当前目录下的文件和目录 .默认是大到小 + ls -r # r -> reverse 反向排序列出当前目录下的文件和目录 + ls -S # S -> Size 根据文件大小排序列出当前目录下的文件和目录 + ls -R # 递归列出当前目录及其子目录下的所有文件和目录 + ls --color # --color(英文全拼:colorize 给着色 ) + # 以不同颜色区分不同类型的文件,例如蓝色表示目录、绿色表示可执行文件等 +``` + +2.**rm** + +```js + rm -i 文件名 # 删除指定的文件,删除前会询问是否删除(y 确认,n 取消)。 + rm -f 文件名 # 强制删除指定的文件,不会进行询问。 + rm -f a.txt b.txt # 同时删除多个文件:可以在命令中添加多个文件名,用空格分隔,如 。 + # mkdir,touch等操作也支持一次性操作多个目标。都是用空格隔开 + rm -f a* # 删除所有以 a 开头的文件 ;删除以特定字符或模式开头的文件:使用通配符* 。 + rm -f .* # 删除隐藏文件:使用 .*,如 (但请注意,这可能会删除当前目录下的所有隐藏文件,包括 . 和 ..,所以请谨慎使用)。 + ## 扩展 + mv example.txt .example.txt # 隐藏文件 + mv mydir .mydir # 隐藏目录 + # ------------------- 删除目录 ------------------- + rmdir 目录名 # 仅删除空的目录。 + rm -r 目录名 # 递归地删除目录及其子目录和文件,删除前会询问是否删除。 + rm -rf 目录名 # 递归地强制删除目录及其子目录和文件,不会进行询问。 + rm -rfv 目录名 # 除了递归强制删除外,还会显示删除的详细步骤。 + rm -d 目录名 # 只删除空目录(与 rmdir 命令类似)。 +``` +