From 89a46827cefc35c851eb6dab4900c92e64cf8eb1 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 31 May 2024 16:59:26 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20240516Linux\347\254\224\350\256\260.md" | 84 +++ .../20240520Linux\347\254\224\350\256\260.md" | 102 ++++ .../20240522Linux\347\254\224\350\256\260.md" | 21 + .../20240523Linux\347\254\224\350\256\260.md" | 524 ++++++++++++++++++ .../20240524Linux\347\254\224\350\256\260.md" | 104 ++++ .../20240527Linux\347\254\224\350\256\260.md" | 139 +++++ .../20240529Linux\347\254\224\350\256\260.md" | 47 ++ 7 files changed, 1021 insertions(+) create mode 100644 "\351\231\210\347\247\221\345\220\211/20240516Linux\347\254\224\350\256\260.md" create mode 100644 "\351\231\210\347\247\221\345\220\211/20240520Linux\347\254\224\350\256\260.md" create mode 100644 "\351\231\210\347\247\221\345\220\211/20240522Linux\347\254\224\350\256\260.md" create mode 100644 "\351\231\210\347\247\221\345\220\211/20240523Linux\347\254\224\350\256\260.md" create mode 100644 "\351\231\210\347\247\221\345\220\211/20240524Linux\347\254\224\350\256\260.md" create mode 100644 "\351\231\210\347\247\221\345\220\211/20240527Linux\347\254\224\350\256\260.md" create mode 100644 "\351\231\210\347\247\221\345\220\211/20240529Linux\347\254\224\350\256\260.md" diff --git "a/\351\231\210\347\247\221\345\220\211/20240516Linux\347\254\224\350\256\260.md" "b/\351\231\210\347\247\221\345\220\211/20240516Linux\347\254\224\350\256\260.md" new file mode 100644 index 0000000..36bdf31 --- /dev/null +++ "b/\351\231\210\347\247\221\345\220\211/20240516Linux\347\254\224\350\256\260.md" @@ -0,0 +1,84 @@ +## Linux系统部署 + +准备Debian12镜像 + +1. Install(命令模式安装) +2. 安装语言:Chinese,地区:中国,配置键盘:英语 +3. 配置主机名,域名,密码,用户名和密码 +4. 对磁盘进行分区 + + 向导-使用整个磁盘 + + 将所有文件放在同一个分区 + + 完成分区操作并将修改写入磁盘 + + 是 +5. 配置软件包管理器 + + 扫描额外的安装介质:否 + + Debian仓库镜像站点所在的国家:中国 + + Debian仓库镜像站点:mirrors.ustc.edu.cn + + HTTP代理信息:没有,选择继续 +6. 正在设定popularity-contest:否 +7. 软件选择:SSH server +8. 正在设定grub-pc + + 将GRUB启动引导器安装至您的主驱动器:是 + + 安装启动引导器的设备:/dev/sda + +9. 主机名 login:root password:密码 进入主机 +10. apt update:更新源 +11. apt upgrade -y:更新系统 +12. apt install vim -y:安装vim编辑器 +13. vim /etc/network/interfaces:设置网卡地址 + + 修改 iface ens192 inet static + + address:172.16.90.12 //设置IP地址 + + netmask:255.255.255.0 //子网掩码 + + gateway:172.16.90.1 //网关 + + esc键,wq保存退出 +14. vim /etc/ssh/sshd_config:修改配置文件 + + 修改PermitRootLogin yes :允许超级管理员登入 + + wq:保存退出 +15. reboot now :重启 + + + +### 到Tabby + ++ ssh root@服务器IP 登入到系统 ++ apt update 更新服务器源 + + + + + +#### 虚拟机的设置 + +1.更新系统软件源 2.更新系统 3.安装vim(vim可以理解是一个语言) 4.编辑静态的ip 5.编辑配置sshd配置,允许远程的账号登入 6.配置环境变量 7.设置当前的语言字符集 + +#### node.js和pm2的下载 + +node.js下载:[https://nodejs.org/en](https://gitee.com/link?target=https%3A%2F%2Fnodejs.org%2Fen) + +#### pm2的安装步骤: + +``` +npm install pm2 -g + +apt update && apt install curl && curl -sL https://raw.githubusercontent.com/Unitech/pm2/master/packager/setup.deb.sh | bash - +``` + +#### 更新PM2 + +pm2 update + +#### 保存当前应用列表 + +pm2 save + +#### 重启保存的应用列表 + +pm2 resurrect + +#### 清除保存的应用列表 + +pm2 cleardump + +#### 保存并恢复PM2进程 + +pm2 update \ No newline at end of file diff --git "a/\351\231\210\347\247\221\345\220\211/20240520Linux\347\254\224\350\256\260.md" "b/\351\231\210\347\247\221\345\220\211/20240520Linux\347\254\224\350\256\260.md" new file mode 100644 index 0000000..4897bf1 --- /dev/null +++ "b/\351\231\210\347\247\221\345\220\211/20240520Linux\347\254\224\350\256\260.md" @@ -0,0 +1,102 @@ +# Linux系统 + +### 红帽Linux企业服务版(RHEL)和Debian 12差别 + +- **商业性与开源性**: + +RHEL是商业版的Linux发行版,提供了企业级的支持和维护,需要支付订阅费用以获取更新和技术支持。而Debian 12是一个完全开源的Linux发行版,由社区维护和更新,用户无需支付任何费用即可使用。 + +- **目标用户**:RHEL主要面向企业级用户,主要做中大型项目。而Debian12面对个人或开发者,有非常友好丰富的软件包 + +- **版本更新速度**:RHEL是商业性质,更新速度较慢。而Debian更新迭代速度较快。 + + + +#### 1.1红帽Linux企业服务版(RHEL)和Debian 12优缺点 + +红帽: + +- 优点: + + - 强大的性能和稳定性,适合用于企业服务器和云计算环境。 + - 丰富的应用生态和管理工具,帮助用户快速构建和部署应用。 + - 全面的安全解决方案和技术支持,确保用户在使用过程中的安全性和可靠性。 + +- 缺点: + + - 商业许可证和相对较高的成本可能会让一些用户望而却步。 + + - 在桌面应用方面的支持相对较弱,不如Ubuntu等发行版用户友好。 + + + +Debian: + +- 优点: + - 完全的开源和免费,用户可以自由使用、修改和分发。 + - 丰富的软件包和友好的用户界面,适合用于桌面环境和开发环境。 + - 改进了设备驱动的自动安装功能,提高了安装便利性。 +- 缺点: + - 版本更新速度相对较慢,较新的软件包需要等待较长时间才能出现。 + - 依赖库可能存在兼容性问题,需要用户自行解决。 + +## Debian安装Vim + +```bash +apt install vim -y +``` + + + +## Debian设置字符集 + +```bash +#在/etc/profile.d下,新建一个叫lang.sh的文件夹: +vim/etc/profile.d/lang.sh +#或者 +cd/etc/profile.d +vim lang.sh + +#lang.sh文件内容如下: +export LC_ALL=C.utf8 +``` + +## 设置下当前root用户下的环境变量 + +```bash +#第一步,编辑root家目录中的.bashrc +#取消几个注释: +export LS_OPTIONS="--color=auto" +alias ll="ls $LS_OPTIONS -l" +alias l="ls $LS_OPTIONS -lA" +``` + +# 关于文件和文件夹的操作相关命令 + +```bash +ls:列出指定路径的文件和文件夹 +cd:切换当前路径 +pwd:显示当前工作目录 +touch:创建一个空文件 +mkdir:创建一个文件夹 +cat、more、less、tail、head:查看指定文件内容(文本文件) +rm:删除指定的文件或者文件夹 +cp:复制文件或者文件夹 +mv:移动文件或者文件夹 +find:查找指定目录下的文件或者文件夹 +``` + +## Debian使用NAT网络修改静态IP + +```bash +vim /etc/network/interfaces +#设置静态IP:在配置文件中,找到你的网络接口(通常是eth0或ens33等),然后将其配置为静态IP。以下是一个示例配置: + +auto eth0 +iface eth0 inet static + address 192.168.56.100 # 设置你的静态IP地址 + netmask 255.255.255.0 # 设置子网掩码 + gateway 192.168.56.1 # 设置网关地址 + dns-nameservers 8.8.8.8 8.8.4.4 # 设置DNS服务器 + +``` \ No newline at end of file diff --git "a/\351\231\210\347\247\221\345\220\211/20240522Linux\347\254\224\350\256\260.md" "b/\351\231\210\347\247\221\345\220\211/20240522Linux\347\254\224\350\256\260.md" new file mode 100644 index 0000000..a26b220 --- /dev/null +++ "b/\351\231\210\347\247\221\345\220\211/20240522Linux\347\254\224\350\256\260.md" @@ -0,0 +1,21 @@ +# linux Debian目录结构 + +1. **根目录(/)**:根目录是整个系统的起点,所有目录都从这里开始延伸。在根目录还会找到其他重要目录,如下: + + - **/bin**:这个目录包含了一些基本可执行的命令,如ls(查看目录)、cp和mkdir等。这些命令是系统启动时必需的,所以它们被放置在是这个目录下,而不依赖于其他文件系统。1 + + - **/boot**:目录包含了引导Linux内核启动时所需文件。 + - **/etc**: 目录包含了系统配置文件,如Network(网络配置文件)、用户账户配置文件、软件包管理器(apt)配置文件等。 + - **/home**:每个用户的个人主目录。当创建新用户,个人文件夹就会在这个目录下生成,每个用户都有自己的私有空间来存文件和配置。 + - **/lib和/lib64**:目录用于系统所需的共享库文件,这些库文件被可执行文件使用,以提供系统功能和支持。 + - **/opt**:目录可用于安装可选软件包,一些第三方软件,如跨平台应用程序和专用软件,可能会安装到这个目录。 + - **/root**:目录是超级用户(root)的个人主目录。与普通用户的主目录(/home)不同,root用户的主目录位于/root目录下。 + - **/usr**:/usr目录是一个重要的目录,包含了系统的许多子目录和文件。主要内容如下: + - /usr/bin:系统的用户可执行命令。 + - /usr/include:用于C/C++编程的头文件。 + - /usr/lib:非系统关键库的共享库文件。 + - /usr/local:用户自行安装的软件(通常由源码编译得到)。 + - /usr/sbin:系统管理员使用的系统管理命令。 + - /usr/share:共享数据文件,如系统文档、图标和桌面文件等。 + + - **/var**:/var目录用于存储经常变化的数据。这些数据包括日志文件(/var/log)、临时文件(/var/tmp)和软件包数据库(/var/lib/dpkg)等。 \ No newline at end of file diff --git "a/\351\231\210\347\247\221\345\220\211/20240523Linux\347\254\224\350\256\260.md" "b/\351\231\210\347\247\221\345\220\211/20240523Linux\347\254\224\350\256\260.md" new file mode 100644 index 0000000..06d6b05 --- /dev/null +++ "b/\351\231\210\347\247\221\345\220\211/20240523Linux\347\254\224\350\256\260.md" @@ -0,0 +1,524 @@ +# linux常用目录和指令 + +1. ### 更改针对所有用户都生效的变量环境 + + ```bash + #全局环境变量对所有用户都有效,通常存储在/etc/profile、/etc/environment或/etc/profile.d/目录下的文件中。要更改全局环境变量,需要具有root权限。 + + #打开终端并以root用户身份登录。 + + #使用文本编辑器打开/etc/environment文件。 + + vim /etc/environment + + #在文件中添加或修改环境变量。每行定义一个环境变量,格式为VARIABLE=value。例如,要添加一个新的环境变量MY_GLOBAL_VAR,添加以下行: + + MY_GLOBAL_VAR=/path/to/my/global/directory + #要修改现有的PATH环境变量,可以找到现有的PATH行并修改它。 + + #保存并关闭文件。在vim编辑器中,按ESC,Chrl+:输入wq保存, + + #由于/etc/environment文件在系统启动时由env命令读取,因此更改将立即对所有用户生效,无需重新登录或重启系统。 + ``` + + ### 2.更改针对当前用户都生效的变量环境 + + ```bash + #第一步,编辑root家目录中的.bashrc + vim ~/.bashrc + #取消几个注释: + export LS_OPTIONS="--color=auto" + alias ll="ls $LS_OPTIONS -l" + alias l="ls $LS_OPTIONS -lA" + #保存并关闭文件。在vim编辑器中,按ESC,Chrl+:输入wq保存 + #使用以下命令来立即应用更改: + source ~/.bashrc + ``` + + ### 3.ls命令作用,常用选项与其具体意义, 常用用法 + + ```bash + #ls 命令用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)。 + #ls [-alrtAFR] [name...] + ls #列出当前目录下的所有文件和子目录 + ls -l # 以长格式显示当前目录中的文件和目录 + ls -a # 显示当前目录中的所有文件和目录,包括隐藏文件 + ls -lh # 可读的方式显示当前目录中的文件和目录大小 + ls -t # 按照修改时间排序显示当前目录中的文件和目录 + ls -r # 逆序显示。 + ls -R # 递归显示当前目录中的所有文件和子目录 + ls -l /etc/passwd # 显示/etc/passwd文件的详细信息 + + ``` + + - ls -l # 以长格式显示当前目录中的文件和目录 + + ![ls-l](https://oss.zhida5u.top/zd5u/202405231552176.png) + + - ls -a # 显示当前目录中的所有文件和目录,包括隐藏文件 + + ![ls-a](https://oss.zhida5u.top/zd5u/202405231552801.png) + + - ls -lh # 以可读的方式显示当前目录中的文件和目录大小 + + ![ls -lh](https://oss.zhida5u.top/zd5u/202405231552841.png) + + - ls -t # 按照修改时间排序显示当前目录中的文件和目录 + + ![ls -t](https://oss.zhida5u.top/zd5u/202405231553816.png) + + - ls -R # 递归显示当前目录中的所有文件和子目录 + + ![ls -r](https://oss.zhida5u.top/zd5u/202405231553966.png) + + - ls -l /etc/passwd # 显示/etc/passwd文件的详细信息 + + ![ls -l etc passwd](https://oss.zhida5u.top/zd5u/202405231553944.png) + + ### 4.切换当前工作目录 + + ```bash + #要在DebianLinux系统中切换当前工作目录,可以使用cd命令。cd命令,用于改变当前工作目录。 + # 切换到用户的主目录 + cd + + # 切换到上级目录 + cd .. + + # 切换到绝对路径所指定的目录 + cd /path/to/directory + + # 切换到相对路径所指定的目录 + cd path/to/directory + ``` + + ### 5.查看当前工作目录 + + ```bash + #要查看当前工作目录,可以使用pwd命令。用于显示当前所在的工作目录路径。 + #在终端中输入以下命令即可查看当前工作目录: + pwd + ``` + + ![pwd](https://oss.zhida5u.top/zd5u/202405231554015.png) + + ### 6.创建一个文件,并批量创建100个文件 + + ```bash + #要创建一个文件,可以使用touch命令。touch命令用于创建空白文件或者更新文件的访问和修改时间戳。 + #创建一个文件 + touch filename.txt + ``` + + ![touch](https://oss.zhida5u.top/zd5u/202405231555196.png) + + ```bash + #要批量创建100个文件: + touch file{1..100}.txt + ``` + + ![touch file{1..100}.txt](https://oss.zhida5u.top/zd5u/202405231555729.png) + + ### 7.用户信息文件 + + ```bash + #用户信息通常存储在 /etc/passwd 文件中。这个文件包含了关于系统中每个用户的基本信息,如用户名、用户ID、组ID、家目录路径、默认Shell等。 + #可以使用cat来查看 + ``` + + ### 8.删除一个文件夹。若文件夹非空,删除文件夹 + + ```bash + #要删除一个空文件夹,可以使用 rmdir 命令。rmdir 命令用于删除空文件夹,如果文件夹中有文件或子文件夹,rmdir 命令将无法删除它。在终端中,使用以下命令来删除一个空文件夹: + rmdir /path/to/folder + #如果要删除一个非空文件夹及其内容,你可以使用之前提到的 rm -r + rm -r /path/to/folder + + #请确保在删除文件夹时谨慎操作,因为删除的文件无法被恢复。 + ``` + + ### 9.创建一个文件夹,一口气创建嵌套的文件夹(/root/lucy/cofee/sugar) + + ```bash + #创建一个文件夹,可以使用 mkdir 命令。在终端中输入以下命令来创建一个名为 my_folder 的文件夹: + mkdir my_folder + + #要一口气创建嵌套的文件夹,包括多个级别的子文件夹,你可以使用 mkdir -p 命令。在终端中,使用以下命令可以一次性创建多级嵌套的文件夹: + mkdir -p /root/lucy/coffee/sugar + ``` + + ### 10.多个可查看文件内容指令,几个指令他们的区别 + + ```bash + #1、cat: + #cat 命令用于连接文件并打印它们的内容到标准输出。它通常用于显示文件的内容,也可以用于创建、组合和编辑文件。 + + cat filename.txt + + #2、more: + + #more 命令逐页显示文件内容,允许用户向前或向后滚动,以便查看长文件的内容。 + more filename.txt + + #3、less: + + #less 命令也用于逐页显示文件内容,但相比 more 更加灵活,支持向前和向后滚动、搜索等功能。 + 示例:less filename.txt + + #4、head: + + #head 命令用于显示文件的开头几行,默认情况下显示文件的前10行。 + head filename.txt + + #5、tail: + + #tail 命令用于显示文件的末尾几行,默认情况下显示文件的最后10行。 + tail filename.txt + ``` + + ### 11.复制一个文件,移动一个文件,举例如下 + + ```bash + #cp命令复制文件 + cp /home/user/documents/example.txt /home/user/backup/ + #将example.txt复制到backup文件夹内 + + #使用mv命令移动文件 + mv /home/user/documents/example.txt /home/user/backup/ + #要将名为example.txt的文件从/home/user/documents/目录移动到/home/user/backup/目录 + + ``` + + ### 12.切换用户指令。使用超级管理员执行某个命令 + + ```bash + #切换到root用户 + su + #这将要求你输入root用户的密码,然后你将切换到root用户的环境。 + + #以root用户身份执行命令: + command_to_execute + + #在切换到root用户后,你可以直接执行需要的命令,这些命令将以超级管理员权限运行。如果要安装软件包,可以执行以下命令: + + apt-get install package_name + ``` + + 13.检测本机网络是否可以上网 + + ```bash + #1、使用ping + ping www.baidu.com + + #2、使用wget打开网页 + curl www.baidu.com + + ``` + + ### 14.vim的模式,这些模式分别可以做些什么,模式之间分别切换 + + ```bash + #普通模式: + + #在普通模式下,你可以移动光标、复制粘贴文本、删除文本、搜索替换等。 + #你可以按下i进入插入模式,或者按下:进入命令行模式。 + + #插入模式: + + #在插入模式下,你可以输入文本。按下Esc键可以回到普通模式。 + #可以按下i在当前光标位置插入文本,或者按下a在当前光标后插入文本。 + + #可视模式: + + #在可视模式下,你可以选择文本块以便复制、删除或其他操作。 + #按下v进入字符可视模式,按下V进入行可视模式,按下Ctrl + v进入块可视模式。 + + #命令行模式: + + #在命令行模式下,你可以执行命令,比如保存文件、退出Vim等。 + #按下:键可以进入命令行模式。 + #在Vim中,你可以通过以下方式在不同模式之间进行切换: + + #从普通模式切换到插入模式:按下i键。 + #从普通模式切换到可视模式:按下v、V或Ctrl + v键。 + #从插入模式切换到普通模式:按下Esc键。 + #从可视模式切换到普通模式:按下Esc键。 + ``` + + ### 15.设置本机网卡的IP地址信息 + + ```bash + #1、打开网络配置文件进行编辑(以root用户身份): + vim /etc/network/interfaces + #在文件中找到要配置的网卡(比如eth33),然后添加类似以下内容的配置(请根据你的网络环境进行相应修改): + auto eth33 + iface eth33 inet static + address 192.168.1.100 #需要和本地或虚拟机网关配对 + netmask 255.255.255.0 + gateway 192.168.1.1 + #保存 + #重启网络得到新的配置 + sudo systemctl restart networking + + + ``` + + ### 16.在当前目录下建立文件exam.c,将文件exam.c拷贝到/tmp这个目录下,并改名为 shiyan.c? + + 以下步骤在当前目录下创建文件 `exam.c`,然后将其拷贝到 `/tmp` 目录并改名为 `shiyan.c`。您可以使用 `touch` 命令创建空的 `exam.c` 文件,然后使用 `cp` 命令将其复制到 `/tmp` 目录并改名为 `shiyan.c`。 + + 以下是具体步骤: + + 1. **在当前目录下创建文件 `exam.c`**: + ```bash + touch exam.c + ``` + + 2. **将文件 `exam.c` 拷贝到 `/tmp` 目录并改名为 `shiyan.c`**: + ```bash + cp exam.c /tmp/shiyan.c + ``` + + ### 17.在任何目录下回到用户主目录? + + 要返回到用户的主目录,您可以使用 `cd` 命令,后跟波浪号 `~`。 + + 只需在终端中输入以下命令即可: + + ```bash + cd ~ + ``` + + 或者,可以直接使用以下命令,效果是一样的: + + ```bash + cd + ``` + + ### 18.打印当前目录(隐藏文件也显示)? + + 要打印当前目录下的所有文件(包括隐藏文件),您可以使用 `ls` 命令,并搭配 `-a` 选项。这将显示当前目录中的所有文件,包括以点(.)开头的隐藏文件。 + + 在终端中,只需输入以下命令即可打印当前目录中的所有文件(包括隐藏文件): + + ```bash + ls -a + ``` + + ### 19.用长格式列出/home目录下所有的文件包括隐藏文件? + + 要以长格式列出 `/home` 目录下的所有文件(包括隐藏文件),您可以使用 `ls` 命令,并搭配 `-a` 和 `-l` 选项。 `-a` 选项用于显示所有文件(包括隐藏文件),而 `-l` 选项用于以长格式显示文件列表。 + + 在终端中,只需输入以下命令即可以长格式列出 `/home` 目录下的所有文件(包括隐藏文件): + + ```bash + ls -al /home + ``` + + ### 20.查看当前目录下所有的文件或目录(含.开头的),把查看结果生成文件ls.txt? + + 要查看当前目录下所有的文件和目录(包括以点开头的隐藏文件),并将查看结果保存到一个名为 `ls.txt` 的文件中,您可以使用以下命令组合: + + ```bash + ls -a > ls.txt + ``` + + 这个命令将会将 `ls -a` 命令的输出重定向到一个名为 `ls.txt` 的文件中。在这个文件中,您将会看到当前目录下所有的文件和目录(包括以点开头的隐藏文件)的列表。 + + ### 21.查看当前目录下所有的文件或目录(含.开头的),把查看结果生成文件ls.txt? + + 要查看当前目录下所有的文件和目录(包括以点开头的隐藏文件),并将查看结果保存到一个名为 `ls.txt` 的文件中,使用以下命令: + + ```bash + ls -a >> ls.txt + ``` + + 这个命令将会将 `ls -a` 命令的输出附加到名为 `ls.txt` 的文件中。在这个文件中,您将会看到当前目录下所有的文件和目录(包括以点开头的隐藏文件)的列表。 + + 请注意,使用 `>>` 将结果附加到文件中,如果文件已存在,则会在文件末尾添加新内容;而使用 `>` 将会覆盖文件中的内容。 + + ### 22.显示一个文件的最后 10 行用什么命令 + + 要显示一个文件的最后 10 行,您可以使用 `tail` 命令。以下是显示一个文件的最后 10 行的命令: + + ```bash + tail filename + ``` + + 在这个命令中,将 `filename` 替换为想要查看最后 10 行的文件的名称。这将显示该文件的最后 10 行内容。 + + 如果您需要显示更多或更少行数,可以使用 `-n` 选项,如下所示: + + ```bash + tail -n 20 filename # 显示最后 20 行 + ``` + + ### 23.如何统计一个文件的行数? + + 要统计一个文件的行数,您可以使用 `wc` 命令(word count)并结合 `-l` 选项来统计行数。以下是统计一个文件行数的命令: + + ```bash + wc -l filename + ``` + + 在这个命令中,将 `filename` 替换为您想要统计行数的文件的名称。运行该命令后,会输出文件中的行数。 + + 如果您想要统计多个文件的行数,可以将多个文件名作为参数传递给 `wc` 命令,例如: + + ```bash + wc -l file1 file2 file3 + ``` + + 这将分别显示每个文件的行数,以及所有文件行数的总和。 + + ### 24.如何创建一个新文件,并且向文件内部写入数据"清华大学",并在当前的文件里面追加数据"计算机科学与技术" + + 要创建一个新文件并向文件内部写入数据,您可以使用 `echo` 命令结合重定向操作符 `>` 和 `>>`。以下是您可以执行的命令: + + 1. 创建一个新文件并写入数据 "清华大学": + ```bash + echo "清华大学" > newfile.txt + ``` + + 2. 在当前文件中追加数据 "计算机科学与技术": + ```bash + echo "计算机科学与技术" >> newfile.txt + ``` + + 这两个命令将创建一个名为 `newfile.txt` 的新文件,并在其中写入 "清华大学",然后在同一文件中追加 "计算机科学与技术"。 + + 如果您希望在创建文件时就同时写入两行内容,可以使用以下命令: + ```bash + echo -e "清华大学\n计算机科学与技术" > newfile.txt + ``` + + 这个命令会将两行内容一次性写入 `newfile.txt` 文件中。 + + ### 25.sbin 目录和 bin 目录有什么区别? + + `/sbin` 目录和 `/bin` 目录是常见的 Linux 系统目录,它们之间有一些区别: + + 1. `/sbin` 目录: + - `/sbin` 目录包含系统管理员(superuser)可能需要的系统管理命令。这些命令通常用于系统的管理和维护,而不是普通用户的日常操作。 + - 一般来说,`/sbin` 目录中的命令通常需要超级用户权限(root 权限)才能执行。 + - 一些常见的在 `/sbin` 目录下的命令包括 `shutdown`(关机)、`reboot`(重启)、`ifconfig`(配置网络接口)、`fdisk`(磁盘分区工具)等。 + + 2. `/bin` 目录: + - `/bin` 目录包含系统的基本命令,这些命令通常是系统中的标准用户和脚本所需的基本工具。 + - `/bin` 目录中的命令通常是用户可以直接调用的常用命令,不需要特殊权限。 + - 一些常见的在 `/bin` 目录下的命令包括 `ls`(列出目录内容)、`cp`(复制文件)、`mv`(移动文件)、`rm`(删除文件)等。 + + 总的来说,`/sbin` 目录中的命令通常用于系统管理任务,需要超级用户权限执行,而 `/bin` 目录中的命令通常是用户级命令,可供普通用户使用。 + + ### 26.vi 编辑器有几种模式? + + `vi` 编辑器有三种主要模式,它们是: + + 1. **命令模式(Command Mode)**: + - 这是 `vi` 编辑器最初启动时进入的模式。 + - 在命令模式下,您可以执行各种操作,如移动光标、复制、粘贴、删除等,而不会输入文本。 + - 您可以按下 `i` 进入插入模式、`:` 进入底线命令模式等。 + + 2. **插入模式(Insert Mode)**: + - 在插入模式下,您可以输入文本内容。 + - 您可以通过按下 `i` 进入插入模式,此时光标会移动到当前位置,允许您在光标处插入文本。 + - 您可以按下 `Esc` 退出插入模式并返回到命令模式。 + + 3. **底线命令模式(Last Line Mode)**: + - 在底线命令模式下,您可以执行一些命令,如保存文件、退出编辑器、查找文本等。 + - 您可以按下 `:` 进入底线命令模式,然后输入相应的命令来执行操作,如 `:w` 保存文件、`:q` 退出编辑器等。 + - 您可以在底线命令模式下执行一些高级操作,如查找替换、设置编辑器参数等。 + + 这三种模式在 `vi` 编辑器中起着不同的作用,允许用户执行各种编辑和操作。熟练掌握这些模式可以帮助用户高效地编辑文本文件。 + + ### 27.如何进入 vi 编辑器的插入模式 + + 按I键进入Vi编辑器的插入模式 + + ### 28.如何进入 vi 编辑器的可视化模式 + + 在 `vi` 编辑器中,要进入可视化模式,您可以按下 `v` 键。可视化模式允许您以可视方式选择文本块,以便执行复制、粘贴、删除等操作。 + + 以下是进入 `vi` 编辑器的可视化模式的步骤: + + 1. 打开一个文件: + ```bash + vi filename + ``` + + 2. 进入可视化模式: + - 在 `vi` 的命令模式下,将光标移动到您要选择的起始位置。 + - 按下小写字母 `v` 键,此时会进入可视化模式。 + - 您可以使用方向键或 `h`、`j`、`k`、`l` 键来移动光标并选择文本块。 + + 3. 选择文本: + - 在可视化模式下,通过移动光标来选择要操作的文本块。 + - 选择完毕后,可以执行复制、剪切、删除等操作。 + + 4. 执行操作: + - 选择文本后,您可以按下 `y` 复制选中的文本、`d` 删除选中的文本、`x` 剪切选中的文本等。 + - 操作完成后,按下 `Esc` 退出可视化模式,回到命令模式。 + + +### 29.在 vi 编辑器中如何复制一行 + +要在 `vi` 编辑器中复制一行,您可以按照以下步骤操作: + +1. 进入 `vi` 编辑器并打开要编辑的文件: + ```bash + vi filename + ``` + +2. 将光标移动到您要复制的行上方或者所需行内,即使不在行首也可以: + - 如果您想复制整行,将光标移动到该行的任何位置。 + - 如果您想复制行内的一部分,将光标移动到该部分的起始位置。 + +3. 复制行: + - 按下 `yy`,即按两次小写字母 `y` 键。这将复制当前行的内容。 + +4. 粘贴复制的行: + - 将光标移动到您想要粘贴复制的行的位置。 + - 按下 `p`,这将在当前光标位置粘贴复制的行。 + +通过按下 `yy` 复制一行并按下 `p` 粘贴复制的内容,您可以在 `vi` 编辑器中轻松复制和粘贴文本行。记得在完成操作后保存文件。 + +### 30.在 vi 编辑器中如何进行粘贴 + +在 `vi` 编辑器中,要粘贴之前复制的内容,您可以按照以下步骤操作: + +1. 复制文本: + - 在 `vi` 编辑器中,使用 `yy` 命令复制一行或者使用 `y` 加上移动光标命令来复制特定的文本内容。例如,`y$` 可以复制从当前光标位置到行尾的内容。 + +2. 将光标移动到要粘贴的位置: + - 将光标移动到您希望粘贴内容的位置。 + +3. 粘贴文本: + - 按下 `p` 键,这将在当前光标位置粘贴之前复制的内容。 + - 如果您想在当前光标位置的前面粘贴,可以使用 `P` 大写字母。 + +通过这些步骤,您可以在 `vi` 编辑器中轻松复制和粘贴文本内容。记得在完成操作后保存文件。 + +### 31.如何删除从 3 行到 15 行的所有数据 + +在 `vi` 编辑器中删除从第 3 行到第 15 行的所有数据,按照以下步骤进行操作: + +1. 打开文件并进入 `vi` 编辑器: + ```bash + vi filename + ``` + +2. 进入命令模式并移动光标到第 3 行: + - 按下 `:3`,然后按下回车键,这将使光标移动到第 3 行。 + +3. 进入可视化模式并选择要删除的行: + - 按下 `V` 进入可视化行模式。 + - 按下 `10j` 或者直接按下 `15G` 将会选择从当前行到第 15 行的所有行。 + +4. 删除选中的行: + - 按下 `d`,这将删除选中的行。 + +5. 保存文件并退出 `vi` 编辑器: + - 按下 `:wq` 并按下回车键,以保存更改并退出编辑器。 + +通过这些步骤,您可以在 `vi` 编辑器中删除从第 3 行到第 15 行的所有数据。请确保在执行删除操作之前备份您的文件,以免意外丢失数据。 + diff --git "a/\351\231\210\347\247\221\345\220\211/20240524Linux\347\254\224\350\256\260.md" "b/\351\231\210\347\247\221\345\220\211/20240524Linux\347\254\224\350\256\260.md" new file mode 100644 index 0000000..a00e98d --- /dev/null +++ "b/\351\231\210\347\247\221\345\220\211/20240524Linux\347\254\224\350\256\260.md" @@ -0,0 +1,104 @@ +# Linux常用命令 + +## 1、命令初识 + + - shell:壳,命令解释器,是用户和计算机操作系统交互的媒介 + + - bash:shell的一种具体实现,类似的还有sh、csh、zsh + + - 语法:命令 [选项] 操作对象,如:ls -a / + 命令帮助:man\命令自己的 -h|--help 选项 + + #### 命令补全: + +* Tab键 +* 向上方向键 + +#### 文件和目录管理 + + - 路径: + + ##### 绝对路径 + + - 以/根目录开始的完整路径,都是绝对路径 + + ##### 相对路径 + + * 以某个对象为参数而写的不完整路径,是相对路径 + + ##### 目录管理 + + * cd + * 切换目录(change directory):cd 路径 + + * pwd + * 显示当前工作目录 + + * ls + * 列出指定路径下的内容,包含文件或文件夹 + + * tree + * 以树形结构列出指定路径下的内容 + + * mkdir + * 创建文件夹,创建嵌套目录:mkdir -p 老胡来也/潘潘/鹏鹏/同同/杰杰 + + * rmdir + * 删除空文件夹 + + * rm + * 删除文件,搭配-r选项可以删除目录,和-f搭配时慎用 + + * cp + * 复制某个|些对象 + + * mv + + * 移动某个|些对象 + + * cat + + * 查看某个文件内容 + + * more + + * 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。 + + * less + + * less 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。 + + * tail + + * 命令可用于查看文件的内容,有一个常用的参数 **-f** 常用于查阅正在改变的日志文件。 + + **tail -f filename** 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。 + + ##### 文件和目录查找 + + * find + + * 命令用于在指定目录下查找文件和目录。 + + 它可以使用不同的选项来过滤和限制查找的结果。 + + * locate + + * 命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。 + + 一般情况我们只需要输入 **locate your_file_name** 即可查找指定文件。 + + * whereis + + * 命令用于查找文件。 + + 该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。 + + 该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。 + + * which + + * 命令用于查找文件。 + + which指令会在环境变量$PATH设置的目录里查找符合条件的文件。 + diff --git "a/\351\231\210\347\247\221\345\220\211/20240527Linux\347\254\224\350\256\260.md" "b/\351\231\210\347\247\221\345\220\211/20240527Linux\347\254\224\350\256\260.md" new file mode 100644 index 0000000..c9d2690 --- /dev/null +++ "b/\351\231\210\347\247\221\345\220\211/20240527Linux\347\254\224\350\256\260.md" @@ -0,0 +1,139 @@ +# Linux常见指令2 + +## 一、文件和目录查找 + +1. **find**: + + - `find` 命令用于在指定目录及其子目录中查找文件。 + - 示例:查找当前目录及其子目录中所有以 ".txt" 结尾的文件: + ```bash + find . -type f -name "*.txt" + ``` + +2. **locate**: + - `locate` 命令用于快速查找系统中已建立的文件索引数据库中的文件。 + - 示例:查找包含 "example" 的文件或目录: + ```bash + locate example + ``` + +3. **whereis**: + - `whereis` 命令用于查找特定命令的位置。 + - 示例:查找 `ls` 命令的位置: + ```bash + whereis ls + ``` + +4. **which**: + - `which` 命令用于查找特定命令的绝对路径。 + - 示例:查找 `python` 命令的绝对路径: + ```bash + which python + ``` + +5. **grep**: + - `grep` 命令用于在文件中搜索指定模式。 + - 示例:在当前目录及其子目录中查找包含关键字 "hello" 的文件: + ```bash + grep -r "hello" . + ``` + +6. **find命令的其他示例**: + - 查找大于100MB的文件: + ```bash + find /path/to/directory -type f -size +100M + ``` + + - 查找特定用户所有的文件: + ```bash + find /path/to/directory -type f -user username + ``` + +## 二、文本编辑 + +1. **Nano**: + - Nano 是一个简单易用的文本编辑器,适合新手用户。 + - 打开文件:`nano filename` + - 保存文件:按下 `Ctrl + O`,然后按 `Enter` + - 退出 Nano:按下 `Ctrl + X` + + **示例**: + + ```bash + nano hello.txt + ``` + +2. **Vim**(常用): + + - Vim 是一个强大的文本编辑器,有许多高级功能。 + - 打开文件:`vim filename` + - 按 I 进入编辑模式 + - 保存文件并退出:按下 `Esc` 进入命令模式,然后输入 `:wq`,按下 `Enter` + + **示例**: + + ```bash + vim hello.txt + ``` + +3. **Emacs**: + - Emacs 是一个功能强大的文本编辑器,拥有丰富的功能和扩展性。 + - 打开文件:`emacs filename` + - 保存文件:按下 `Ctrl + X`,然后按下 `Ctrl + S` + - 退出 Emacs:按下 `Ctrl + X`,然后按下 `Ctrl + C` + + **示例**: + ```bash + emacs hello.txt + ``` + +4. **Gedit**: + - Gedit 是 GNOME 桌面环境下的默认文本编辑器。 + - 打开文件:`gedit filename` + - 保存文件:点击菜单中的保存选项或使用快捷键 `Ctrl + S` + - 关闭 Gedit:点击窗口右上角的关闭按钮 + + **示例**: + ```bash + gedit hello.txt + ``` + +## 三、用户管理 + +1. **创建用户**: + - 以 root 用户身份执行以下命令来创建新用户: + ```bash + adduser username + ``` + +2. **删除用户**: + - 以 root 用户身份执行以下命令来删除用户: + ```bash + deluser username + ``` + +3. **修改用户密码**: + - 以 root 用户身份执行以下命令来修改用户密码: + ```bash + passwd username + ``` + +4. **切换用户**: + - 使用 `su` 命令切换到 root 用户: + ```bash + su + ``` + +5. **列出用户**: + - 以 root 用户身份执行以下命令来列出系统上的所有用户: + ```bash + cat /etc/passwd + ``` + +6. **用户组管理**: + - 以 root 用户身份执行以下命令来创建新用户组和将用户添加到用户组: + ```bash + addgroup groupname + usermod -aG groupname username + ``` + diff --git "a/\351\231\210\347\247\221\345\220\211/20240529Linux\347\254\224\350\256\260.md" "b/\351\231\210\347\247\221\345\220\211/20240529Linux\347\254\224\350\256\260.md" new file mode 100644 index 0000000..0aabc4d --- /dev/null +++ "b/\351\231\210\347\247\221\345\220\211/20240529Linux\347\254\224\350\256\260.md" @@ -0,0 +1,47 @@ +# Vim + +### 1、Vim的使用 + +| 键位 | 作用 | +| ------ | -------------------------------------- | +| i | 插入模式,光标当前行插入 | +| a | 插入模式,在光标下一个位置开始输入文本 | +| o | 插入模式,在当前行下方插入一个新行 | +| x | 删除当前光标所在字符 | +| dd | 删除当前光标所在行 | +| yy | 复制当前光标所在行 | +| 5yy | 复制5行当前光标所在向下内容 | +| p | 粘贴到光标所在行 | +| u | 撤销上一次操作 | +| Ctrl+r | 重做上一次撤销操作 | +| G | 到文本最底下 | +| gg | 到文本最顶端 | +| /word | 查找光标之下名称为“word”的字符串 | +| ?word | 查找光标之上名称为"word"的字符串 | +| n/N | n查找下一个,N查找上一个 | +| :w | 保存文件 | +| :q | 退出 | +| :wq! | 强制保存退出 | +| :wq | 保存退出 | + +2、Vim如何前面有序号(临时/永久) + +- 临时 + +```bash +#在Vim文档里 +:set number +or +:set nu +``` + +- 永久 + +```bash +#使用find寻找 +find / -name vim* #来查找VIM相关配置文件 +vim /etc/vim/vimrc +#G键到文档最下方,插入 +set nu +``` + -- Gitee From 206d8b1654f49078414966b08b03aec2e4eb1af9 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 31 May 2024 17:04:17 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20240530Linux\347\254\224\350\256\260.md" | 124 ++++++++++++++++++ .../20240531Linux\347\254\224\350\256\260.md" | 86 ++++++++++++ 2 files changed, 210 insertions(+) create mode 100644 "\351\231\210\347\247\221\345\220\211/20240530Linux\347\254\224\350\256\260.md" create mode 100644 "\351\231\210\347\247\221\345\220\211/20240531Linux\347\254\224\350\256\260.md" diff --git "a/\351\231\210\347\247\221\345\220\211/20240530Linux\347\254\224\350\256\260.md" "b/\351\231\210\347\247\221\345\220\211/20240530Linux\347\254\224\350\256\260.md" new file mode 100644 index 0000000..1331d07 --- /dev/null +++ "b/\351\231\210\347\247\221\345\220\211/20240530Linux\347\254\224\350\256\260.md" @@ -0,0 +1,124 @@ +# Vim2 + +## 1、光标移动 + +```bash + * 单位级 + * h 向左移动一个单位 + * j 向下移动一个单位 + * k 向上移动一个单位 + * l 向右衔动一个单位 + * 单词级 + * w 向右移动到下一单词开头 + * e 向右移动到下一单词结尾 + * b 向左移动到下一单词开头 + * 块级 + * gg 移动光标到文档第一行 + * G 移动光标到文档最后一行 + * 0 移动光标所在行的第一列 + * ^ 移动光标到非空的第一个字符 + * $ 移动光标到所在行的最后一列 + * H 移动光标到屏幕顶端 + * M 移动光标到屏幕中间 + * L 移动光标到屏幕底部 + * gg 或者: 移动光标到第n行 + * k 或者:- 移动光标到向上n行 + * j 或者:+ 移动光标到向下n行 +``` + +## 2、 vim内打开文件 + +```bash + + * :e <文件名称> 打开名为 filename 的文件,若文件不存在则创建之 + * :Ex 在 Vim 中打开目录树,光标选中后回车打开对应文件(提示:- 进入上级目录 ) + +``` + +## 3、小练习 + +先敲出以下代码,然后修正以下代码中的错误单词、重复单词、错误格式、多余行,修改函数名为 typing 并为定时器添加 300 毫秒延迟 + +```javascript +const bbb = () => { +// this is is a description +// +// another descriptttion +const timer = setTimeout(( ) => { + console.log(that) alert('cool!') + // awosome man ! +}) +} +``` + +1. **打开 Vim 并输入代码**: + - 在终端中输入 `vim` 命令打开 Vim 编辑器。 + - 输入 `i` 进入插入模式,然后输入以下代码: + +```javascript +const bbb = () => { + // This is a description + // + // Another description + const timer = setTimeout(() => { + console.log(that); + alert('cool!'); + // Awesome man! + }); +}; +``` + +2. **修正代码中的错误**: + + - 移动光标到需要修改的位置。 + - 使用 `x` 删除字符,使用 `i` 进入插入模式进行编辑。 + - 修正拼写错误、格式错误和其他问题。 + +3. **修改函数名为 typing**: + - 将光标移到函数名 `bbb` 上。 + + - 按下 `cw` 删除当前单词并进入插入模式,然后输入 `typing`。 + + ```javascript + const typing = () => { + // This is a description + // + // Another description + const timer = setTimeout(() => { + console.log(that); + alert('cool!'); + // Awesome man! + }); + }; + ``` + + + +4. **为定时器添加 300 毫秒延迟**: + - 将光标移动到 `setTimeout` 函数的括号内。 + + - 按下 `f)` 定位到 `)`,然后按下 `i` 进入插入模式,在 `, 300` 之前插入延迟时间。 + + - + + ```javascript + const typing = () => { + // This is a description + // + // Another description + const timer = setTimeout(() => { + console.log(that); + alert('cool!'); + // Awesome man! + },300); + }; + ``` + + + +5. **保存并退出**: + + - 按下 `Esc` 键确保退出插入模式。 + - 输入 `:wq` 并按下 `Enter` 保存并退出 Vim。 + +通过以上步骤,您可以在 Vim 中输入代码并进行修改。如果您遇到任何问题或需要进一步的帮助,请随时告诉我。我很乐意为您提供支持。 diff --git "a/\351\231\210\347\247\221\345\220\211/20240531Linux\347\254\224\350\256\260.md" "b/\351\231\210\347\247\221\345\220\211/20240531Linux\347\254\224\350\256\260.md" new file mode 100644 index 0000000..a022b7b --- /dev/null +++ "b/\351\231\210\347\247\221\345\220\211/20240531Linux\347\254\224\350\256\260.md" @@ -0,0 +1,86 @@ +# VIM3 + +### 内容查找 + +- 文档内查找 + * `*` 向后查找当前光标所在单词 + * `#` 向前查找当前光标所在单词 + * / 向后查找指定字符串 + * ? 向前查找指定字符串 + * n 继续查找下一个 + * N 继续查找上一个 + * 行内查找 + * f 当前行内向行尾查找定位X字符 + * t 当前行内向行尾查找定位X字符前一字符 + * F 当前行内向行首查找定位X字符 + * T 当前行内向行首查找定位X字符后一字符 + * ; 向当前方向查找下一个字符 + * , 向当前反方向查找下一个字符 + * 匹配查找 % 符号在其中一个上时 + * (和) + * [和]'''''''' + * {和} + + + +### 文档修改与保存 + +* 插入 + * i 当前字符前插入 + * I 当前行首插入 + * a 当前字符后插入 + * A 当前行尾插入 + * o 在下一行插入 + * O 在上一行插入 + + * 删除 + * x 删除当前字符,相当于 insert 模式下的 Delete + * X 删除前一个字符,相当于 insert 模式下的 Backspace + * d 删除指定内容并保存到 Vim 剪贴板 + * dd 删除当前行,并将删除的内容保存到 Vim 剪贴板 + * cc 删除当前行并保存到 Vim 剪贴板,同时进入 INSERT 模式 + * c 删除指定内容并保存到 Vim 剪贴板,同时进入 INSERT 模式 + + * 复制 + * y 复制指定字符串到粘贴板 + * yy 复制整行到粘贴板 + + * 粘贴 + * p 在当前位置后粘贴 + * P 在当前位置前粘贴 + + * 合并 + * J 合并当前行和下一行 + + * 替换 + * r 将当前字符替换为 X + * gu 将指定的文本转换为小写 + * gU 将指定的文本转换为大写 + * :%s/// 查找 search 内容并替换为 replace 内容(常用) + * replace后面/g 为全局替换 + * 指定行数替换将%换成开始行数,结束行数如下: + * 21,25s/旧文本/新文本/g + * 代表21-25行旧文本替换成新文本 + + * 缩进 + * >> 向右缩进当前行 + * << 向左缩进当前行 + + * 撤销与重做 + * u 撤销 + * Ctrl-r 重做 + * . 重复上一个动作,3.重复上次动作3次 + + * 保存修改 + * :w 保存当前文件 + * :wa 保存全部文件 + * :wq or ZZ 保存并退出 + * :q! or ZQ 强制退出,不保存 + * :saveas 文件另存为 + * :w 文件另存一份名为 的副本并继续编辑原文件 + +### 可视化模式 + + * 字符模式,在命令模式中按v键进入 + * 行模式,在命令模式中按V键进入 + * 块模式,在命令模式中按Ctrl+ v键进入 -- Gitee