diff --git "a/38\351\237\251\345\275\254/Notes/5.18.md.txt" "b/38\351\237\251\345\275\254/Notes/5.18.md.txt" deleted file mode 100644 index 24fb201c57f6736878daf52a472f797b9c43bd55..0000000000000000000000000000000000000000 --- "a/38\351\237\251\345\275\254/Notes/5.18.md.txt" +++ /dev/null @@ -1,35 +0,0 @@ -Linux的几个原则 - -* 严格区分大小写 -* 一切根源就是/ -* 写命令的时候不要漏掉空格 -* 有严格的权限之分 - - - -Debian Linux目录结构简介 - -* bin 常规执行文件的储存位置,普通用户 -* boot 包含引导程序和内核文件 -* dev 包含设备文件 -* etc 存放系统配置文件 -* home 普通用户的家目录所在地 -* lib 存放系统库的文件 -* media 用于挂载可移动介质的挂载点 -* mnt 用于手动挂载临时文件系统的挂载点 -* opt 可选的第三方软件包的安装目录 -* proc 虚拟文件系统 提供有关系统和运行程序的信息 -* run 运行临时文件的目录 -* sbin 存放系统管理员的系统管理命令 -* srv 存放服务的数据目录 -* sys 包含虚拟文件系统,如文件系统相关的信息和统计数据 -* tmp 临时文件目录 -* usr 包含大部分用户安装的程序和文件 - - - - - - - -#### 未完待续 \ No newline at end of file diff --git "a/38\351\237\251\345\275\254/Notes/5.18\346\226\207\344\273\266\347\233\256\345\275\225\347\273\223\346\236\204.md" "b/38\351\237\251\345\275\254/Notes/5.18\346\226\207\344\273\266\347\233\256\345\275\225\347\273\223\346\236\204.md" new file mode 100644 index 0000000000000000000000000000000000000000..11749161cbc60aec948fc4caa6d1e80b29ab3146 --- /dev/null +++ "b/38\351\237\251\345\275\254/Notes/5.18\346\226\207\344\273\266\347\233\256\345\275\225\347\273\223\346\236\204.md" @@ -0,0 +1,248 @@ +Linux的几个原则 + +* 严格区分大小写 +* 一切根源就是/ +* 写命令的时候不要漏掉空格 +* 有严格的权限之分 + + + +Debian Linux目录结构简介 + +* bin 常规执行文件的储存位置,普通用户 +* boot 包含引导程序和内核文件 +* dev 包含设备文件 +* etc 存放系统配置文件 +* home 普通用户的家目录所在地 +* lib 存放系统库的文件 +* media 用于挂载可移动介质的挂载点 +* mnt 用于手动挂载临时文件系统的挂载点 +* opt 可选的第三方软件包的安装目录 +* proc 虚拟文件系统 提供有关系统和运行程序的信息 +* run 运行临时文件的目录 +* sbin 存放系统管理员的系统管理命令 +* srv 存放服务的数据目录 +* sys 包含虚拟文件系统,如文件系统相关的信息和统计数据 +* tmp 临时文件目录 +* usr 包含大部分用户安装的程序和文件 + + + +# Linux文件系统目录结构 + + + +`目录是Linux文件系统的根目录,包含了整个文件系统的基础结构。` + +## 常用的几个 + +### /bin + +`/bin` 目录是“binary”的缩写,存放着系统启动时需要的最基本的命令。这些命令通常是所有用户都需要的,因此放在这个目录下。它包含一些最常用的命令,如 `ls`、`cp`、`mv` 等,用于列出目录内容、复制文件、移动文件等常见操作。程序的成品目录。===》源码--》编译得到二进制的成品 + +#### 示例 + +```bash +/bin/ls # 列出当前目录内容 +/bin/cp # 复制文件 +/bin/mv # 移动文件 +``` + +------ + +### /dev + +`/dev` 目录包含了设备文件,这些文件用于与系统中的硬件设备进行通信。在Linux中,一切皆文件,因此硬件设备也被抽象为文件的形式存在于 `/dev` 目录中。 + +```bash +/dev/sda # 硬盘设备文件 +/dev/ttyUSB0 # USB 串行设备文件 +``` + +### /etc + +`/etc` 目录存放系统的配置文件。这些配置文件包括各种应用程序、服务以及系统本身的配置信息,如网络配置、软件包管理器配置等。 + +#### 示例 + +```bash +/etc/network/interfaces # 网络接口配置文件 +/etc/apt/sources.list # APT 软件源配置文件 +/etc/nginx/nginx.conf # nginx软件配置文件 +/etc/ssh/sshd_config # sshd服务端配置文件 +``` + +### /home + +`/home` 用户的家目录,每个用户都有一个以其用户名命名的目录。每个用户都有一个独立的家目录,用于存放其个人文件和设置。 + +#### 示例 + +```bash +/home/user1/ # 用户1的家目录 +/home/user2/ # 用户2的家目录 +``` + +### + + + +## 了解 + +#### 示例 + +### /boot + +`/boot` 目录包含了引导加载程序以及内核文件。在系统启动时,计算机首先加载引导加载程序,然后引导加载程序再加载内核文件,从而启动操作系统。 + +#### 示例 + +```bash +/boot/grub/ # 存放 GRUB 引导加载程序相关文件 +/boot/vmlinuz-5.10.0-10-amd64 # Linux 内核文件 +``` + +### /lib + +`/lib` 目录存放着系统所需的共享库文件,这些库文件为系统运行时所必需的。在系统启动过程中,引导加载程序会加载这些共享库,以便其他程序能够正常运行。 + +#### 示例 + +```bash +/lib/x86_64-linux-gnu/libc.so.6 # C标准库 +/lib/x86_64-linux-gnu/libm.so.6 # 数学库 +``` + +### /media + +`/media` 目录是用于挂载可移动介质的挂载点。当插入可移动介质(如USB闪存驱动器、光盘等)时,系统会将其挂载到此目录下,用户可以通过该目录访问其内容。 + +#### 示例 + +```bash +/media/usb/ # 挂载 USB 闪存驱动器 +/media/cdrom/ # 挂载光盘 +``` + +### /mnt + +`/mnt` 目录是用于手动挂载临时文件系统的挂载点。通常情况下,可移动介质等临时挂载的文件系统会被挂载到 `/media` 目录下,而 `/mnt` 目录则用于手动挂载其他临时文件系统,如远程文件系统等。 + +#### 示例 + +```bash +/mnt/remote_fs/ # 手动挂载远程文件系统 +``` + +### /opt + +`/opt` 目录是可选的第三方软件包的安装目录。一些软件包可能选择将其安装到 `/opt` 目录下,而不是 `/usr` 目录下,以便更好地管理。 + +#### 示例 + +```bash +/opt/google/chrome/ # Google Chrome 浏览器安装目录 +``` + +### /proc + +`/proc` 目录是一个虚拟文件系统,它提供了有关系统和运行进程的信息。在 `/proc` 目录下,每个运行的进程都有一个对应的子目录,其中包含了有关该进程的详细信息。 + +#### 示例 + +```bash +/proc/cpuinfo # CPU 信息 +/proc/meminfo # 内存信息 +``` + +### /root + +`/root` 目录是root用户的家目录。与普通用户的家目录类似,root用户也有一个独立的家目录,用于存放其个人文件和设置。 + +#### 示例 + +```bash +/root/ # root 用户的家目录 +``` + +### /run + +`/run` 目录是一个运行时临时文件目录,用于存放系统启动过程中产生的临时文件以及运行时需要的其他临时文件。 + +#### 示例 + +```bash +/run/user/1000/ # 用户1000的运行时临时文件目录 +``` + +### /sbin + +`/sbin` 目录存放着系统管理员需要的系统管理命令。与 `/bin` 目录类似,但 `/sbin` 目录中的命令通常只能由系统管理员或具有管理员权限的用户执行。 + +#### 示例 + +```bash +/sbin/reboot # 重启系统命令 +/sbin/ifconfig # 配置网络接口命令 +``` + +### /srv + +`/srv` 目录存放着服务的数据目录。一些服务可能会将其数据文件存放在 `/srv` 目录下,以便更好地管理和组织。 + +#### 示例 + +```bash +/srv/www/ # Web 服务器数据目录 +``` + +### /sys + +`/sys` 目录包含了一个虚拟文件系统,用于提供关于系统硬件设备的信息以及与这些设备的交互接口。与 `/proc` 目录类似,但 `/sys` 目录提供的信息更加详细和底层。 + +#### 示例 + +```bash +/sys/class/net/eth0/ # 网络接口 eth0 的相关信息 +``` + +### /tmp + +`/tmp` 目录是一个临时文件目录,用于存放临时文件。该目录中的文件通常在系统重启后会被删除,因此适合存放一些临时性的数据。 + +#### 示例 + +```bash +/tmp/tmpfile.txt # 临时文件 +``` + +### /usr + +`/usr` 目录包含了大部分用户安装的程序和文件。该目录下包含了各种应用程序、库文件、帮助文档等,是系统中最常用的目录之一。 + +#### 示例 + +```bash +/usr/bin/ # 用户可执行文件目录 +/usr/lib/ # 库文件目录 +/usr/share/doc/ # 文档目录 +``` + +### /var + +`/var` 目录包含了经常变化的文件,如日志文件、缓存文件、临时文件等。这些文件通常是由系统或运行中的服务产生的,因此需要定期清理和管理。 + +#### 示例 + +```bash +/var/log/syslog # 系统日志文件 +/var/cache/apt/archives/ # APT 软件包缓存目录 +``` + +------ + +### /lost+found + +- 当文件系统被fsck(文件系统一致性检查工具)修复时,找到的孤立的文件片段会被存放在这里。 + +总的来说,Debian Linux的目录结构与通用的Linux文件系统目录结构基本相同,但可能会有一些特定于Debian的细微差异。 \ No newline at end of file diff --git "a/38\351\237\251\345\275\254/Notes/5.21\346\226\260\345\273\272\347\224\250\346\210\267\344\273\245\345\217\212\345\270\270\350\247\204\345\221\275\344\273\244.md" "b/38\351\237\251\345\275\254/Notes/5.21\346\226\260\345\273\272\347\224\250\346\210\267\344\273\245\345\217\212\345\270\270\350\247\204\345\221\275\344\273\244.md" new file mode 100644 index 0000000000000000000000000000000000000000..b566d8208f015625534e242dc93348ef21a302b3 --- /dev/null +++ "b/38\351\237\251\345\275\254/Notes/5.21\346\226\260\345\273\272\347\224\250\346\210\267\344\273\245\345\217\212\345\270\270\350\247\204\345\221\275\344\273\244.md" @@ -0,0 +1,58 @@ +#### 新建用户和设置密码 + +* sudo useradd 用户名 -m -s /bin/bash -m生成家目录 -s /bin/bash 设置* bash为新用户的shell + +* sudo password 用户名 + +#### 建立好用户后 + +* su 要切换的用户名——————su命令切换到新用户 + +#### 使用命令,在自己的家目录,以以下层次依次建立文件夹 + +* mkdir 文件夹名,新建文件夹,如果要连同父级目录一起创建就加上-p这个选项 + +`-p的效果是,有则忽略无则创建,而不报错` + + + +#### vim的三种模式 + + * 普通模式:不能编辑,默认的模式,可直接接收按钮指令 + + * 编辑模式:在普通指定下i,进行文字的相关编辑,按ESC退回到普通模式 + + * 命令行模式:通过命令执行保存(write) ,退出(quit),强制执行(!) + + 1. 在普通模式,在英文输入法的状态下,按下Shift+:号,进入命令行模式(末行模式) + 2. 如何退出命令行模式,也是ESC + + + +#### 编辑器 ———— 1.vim 2.nano默认编辑器 + +在bash中,按一次tab自动识别文件的唯一性,只有一个,就自动显示,或者将共同部分显示 + +如果不太一样,不确定唯一性,就要按两次tab,会显示所有可选项 + + + +1. 打包 tar -cvf 打包后的名 要打包的文件或目录(可以多个),显示过程 +2. 解包 tar -xvf 要解包的文件名 +3. 压缩 gzip 压缩文件 +4. 解压 gunzip 解压缩 +5. tar和gzip一起使用 + 1. tar -cvzf 打包并压缩 + 2. tar -xzvf 解压并解包 +6. && 可以连接多个命令的执行 + + + +#### 使用命令将这个压缩包下载到本地电脑【不能用shell里自带的下载功能】 + +1. scp要在本地执行 + 1. 下载:scp 用户名@主机IP:/要下载的具体文件路径 本地电脑的目录 + 2. 上传:scp 本地电脑文件的路径 用户名@主机IP:/要上传到的文件目录 +2. sftp 也可以实现 ,用法类似SSH + 1. 操作都要进入对应的目录,不管是远程还是本地 + 2. get是下载,put是上传,后面直接用文件名 \ No newline at end of file diff --git "a/38\351\237\251\345\275\254/Notes/5.22\346\226\207\344\273\266\345\244\271\347\256\241\350\267\257.md" "b/38\351\237\251\345\275\254/Notes/5.22\346\226\207\344\273\266\345\244\271\347\256\241\350\267\257.md" new file mode 100644 index 0000000000000000000000000000000000000000..09027406443d3642bdee45486a85fd36c90746e6 --- /dev/null +++ "b/38\351\237\251\345\275\254/Notes/5.22\346\226\207\344\273\266\345\244\271\347\256\241\350\267\257.md" @@ -0,0 +1,127 @@ +l:left_luggage:l:leaves:l:label:l:lebanon:l:jack_o_lantern:l:last_quarter_moon_with_face::poultry_leg::maple_leaf::level_slider::kick_scooter: + +### *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 `以不同颜色区分不同类型的文件,例如蓝色表示目录、绿色表示可执行文件等` + + + +### ***cd**:改变当前目录。* + +- 进入某个目录:`cd 目录名` +- 返回上二级目录:`cd ../../` +- 返回家目录:`cd ~` 或者 `cd ` (啥也不跟): /home/用户名 +- 返回上次所在目录:`cd -` + + + +### ***pwd**:显示当前工作目录的绝对路径* + +​ pwd # 显示当前工作目录的绝对路径 + +​ dir1 = $(pwd) # 将当前工作目录路径保存到变量中(在Shell脚本中常用) +​ echo $dir1 + + + +### ***mkdir**:创建新目录* + +#场景:在当前位置创建一个新的目录 + +​ * mkdir 目录名 # 创建一个新目录 + + * mkdir 路径/目录名 # 在指定路径下创建目录 + +#场景:在创建目录的同时,如果父目录不存在,则一并创建父目录 + +​ * mkdir -p 父目录/新目录 # 创建多个目录,包括父目录(如果不存在) + +#场景:创建一个具有特定权限的目录,可以用于设置目录的读写执行权限。 + +​ * mkdir -m 权限模式 目录名 # 创建具有特定权限的目录 + +#场景:需要一个文件夹 + +​ * mkdir -p /tmp/新目录 # 创建临时目录,不长期保留,与用户文件隔离,避免暴露用户 + + + +### ***rmdir**:删除空目录* + + + +### ***rm**:删除文件或目录。* + +* 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 # 隐藏目录 +* rmir 目录名 # 仅删除空的目录。 +* rm -r 目录名 # 递归地删除目录及其子目录和文件,删除前会询问是否删除。 +* rm -rf 目录名 # 递归地强制删除目录及其子目录和文件,不会进行询问。 +* rm -rfv 目录名 # 除了递归强制删除外,还会显示删除的详细步骤。 +* rm -d 目录名 # 只删除空目录(与 rmdir 命令类似)。 + +### ***cp**:复制文件或目录* `cp` 是 Linux 和 Unix 系统中用于复制文件或目录的命令 + +- 复制文件:`cp 源文件 目标文件` +- 复制文件到目录: cp 源文件 目标目录 +- 复制目录:`cp -r 源目录 目标目录` +- 批量复制文件:cp *.txt +- 强制复制:cp -f 文件 `使用 `-f` 或 `--force` 选项可以强制复制,即使目标文件已存在也不提示,直接覆盖。` +- 仅当源文件较新时复制:cp -u 文件 `使用 `-u` 选项可以仅当源文件比目标文件新时才进行复制` +- 显示复制进度:cp -v +- 保留文件属性::cp -p `使用 `-p` 选项可以保留原文件的属性(如时间戳、权限等)` +- 交互式复制:cp -i ` 使用 `-i` 选项,在覆盖已存在的文件前会提示用户确认` + + + +### ***mv**:移动文件或目录,也可用于重命名文件或目录* + +- 移动文件或目录:`mv 源目录/文件 目标目录` + +- 重命名文件或目录:`mv 原文件名 新文件名` + +- 使用通配符移动多个文件 `mv *.txt 文件名` + + + + + +### ***touch**:创建空文件或者更改文件访问和修改时间* + +`touch 文件名` + + + +### ***chmod**:修改文件或目录权限* + +`chmod 权限值 文件名` + + + +### ***chgrp**:改变文件或目录的所属组* + +`chgrp 组名 文件名` \ No newline at end of file