diff --git "a/\351\231\266\345\256\227\350\261\252/\347\254\224\350\256\260/20240515-\345\210\235\350\247\201Linux.md" "b/\351\231\266\345\256\227\350\261\252/\347\254\224\350\256\260/20240515-\345\210\235\350\247\201Linux.md" new file mode 100644 index 0000000000000000000000000000000000000000..6dfd0d8b164e2e2deebab9c38588f46f7f5b545a --- /dev/null +++ "b/\351\231\266\345\256\227\350\261\252/\347\254\224\350\256\260/20240515-\345\210\235\350\247\201Linux.md" @@ -0,0 +1,177 @@ +# Linux + +## 《Linux发展史》 + +#### Linux操作系统的发展历程可以追溯到20世纪90年代初,当时一个年轻的芬兰大学生林纳斯·托瓦兹怀揣着创建一个属于自己的操作系统的梦想…… + +### 萌芽阶段(1991年) + +#### 1991年4月,当时就读于赫尔辛基大学的林纳斯·托瓦兹开始着手编写一个可以在Intel 386 CPU上运行的操作系统内核。他最初将这个项目命名为"Freax"。几个月后的10月5日,林纳斯在国际计算机新闻组(comp.os.minix)上发布了0.02版的内核源代码,邀请其他爱好者参与改进。这标志着Linux系统的正式开端 + +### 命名为Linux(1991|1994年) + +#### 受到广泛关注后,托瓦兹决定将操作系统内核改名为"Linux",这个名字由"Linus"和"Unix"两个单词组合而成,寓意对Unix开源理念的继承。1993年,第一个基于Linux内核的操作系统发行版Slackware问世,Linux生态系统由此诞生 + +### 内核快速发展(1994|2003年) + +#### 在接下来的几年里,Linux内核进入了快速发展时期。1994年3月发布了首个正式版本1.0,标志着Linux系统基本功能的成熟。2003年12月,里程碑式的2.6版本发布,大幅提高了可靠性、安全性和性能。与此同时,各式Linux发行版如Debian、Red Hat、SUSE等也如雨后春笋般涌现 + +### 商业化进程(2003年至今) + +#### 进入21世纪后,Linux的商业化应用逐渐加速。一些主要的科技公司开始大规模采用Linux系统,如谷歌、IBM、亚马逊、甲骨文等。红帽、SUSE则成为最具影响力的Linux商业发行版供应商 + +#### 2005年,开源办公套件OpenOffice的推出,标志着Linux生态系统日臻成熟和完善。越来越多的企业选择在服务器、云计算等领域部署Linux + +### 智能设备时代(2007年至今) + +#### 伴随着移动互联网和物联网的兴起,Linux开始大量运行在智能手机、平板电脑、机顶盒等智能终端设备上。谷歌的Android系统就是基于Linux内核开发的移动操作系统 + +#### 如今,Linux无处不在,从个人桌面、服务器到云计算集群,再到智能手机、物联网产品等,它已经成为现代计算机系统中不可或缺的核心。作为开源界的旗舰,Linux被誉为"改变世界的运动",它体现了人类合作精神和追求自由的理念 + +## Linux与Windows区别 + +### 开源与封闭源代码 + +#### Linux是一款开源的操作系统,源代码是公开并且允许修改的,任何人都可以查看、修改和再次发布。而Windows是微软公司的封闭源代码产品,代码对外界保密,只有微软内部人员可以修改 + +### 软件许可和收费模式 + +#### 大多数Linux发行版是免费使用的,只需支付少量费用购买技术支持服务。而Windows则需要付费购买正版许可证。企业用户通常需要为Windows系统和附加软件支付高额费用 + +### 系统稳定性和安全性 + +#### 由于开源的特性,Linux系统代码可以被广大开发者持续审查和完善,因此普遍被认为比Windows更加稳定和安全。而Windows由于是闭源项目,存在被黑客发现漏洞利用的风险 + +### 用户界面和使用体验 + +#### Windows系统以图形用户界面著称,对于普通家庭用户而言使用较为直观友好。Linux桌面环境有多种选择,如Gnome、KDE等,界面风格各有特色,但相对来说对新手不太友好 + +### 软件生态和兼容性 + +#### Windows拥有非常丰富的第三方软件生态,几乎所有主流软件都提供Windows版本。而Linux虽然有大量优秀软件,但主流办公和娱乐软件支持相对较少。另外,大多数游戏也只提供Windows版本 + +### 系统更新和维护 + +#### Windows采用集中式发布和更新,每几年推出一个全新版本。而Linux发行版则更新频繁灵活,可随时升级到最新版本内核和软件包 + +### 文件系统格式 + +#### Windows使用NTFS等自身格式,而Linux支持NTFS、EXT、XFS等多种文件系统格式 + +### 定制和开发者友好 + +#### Linux具有良好的可定制性和开发者友好特性。开发者可以自由修改内核、程序,并发布自有发行版。而Windows系统相对封闭,普通用户很难深度定制 + +## Debian版本Linux的优势 + +### 纯粹的开源精神 + +#### Debian由Debian项目组织开发和维护,是一个完全社区驱动的非营利性发行版。它坚持开源的理念,所有软件均为自由软件,代码完全开放。这确保了Debian不受商业利益的影响,保持了高度的中立性和透明度 + +### 优秀的软件包管理系统 + +#### Debian拥有成熟且强大的APT软件包管理系统,可以轻松搜索、安装、升级和卸载软件包。它的软件仓库包罗万象,提供超过5.9万个软件包,涵盖方方面面。APT的依赖关系解决能力出色,可以自动处理软件依赖,大大简化了管理工作 + +### 系统稳定可靠 + +#### Debian对每一个发行版进行了长达2|3年的代码审查和测试,确保了系统的稳定性和可靠性。它采用滚动发布模式,可以持续获得最新的安全更新,而无需频繁重装系统。对于服务器环境尤为理想 + +### 良好的安全性 + +#### Debian有专门的安全团队定期审计系统,及时修复安全漏洞并发布安全公告。它还提供非常全面的访问控制和授权管理功能,满足各种安全需求 + +### 可定制灵活性佳 + +#### Debian提供多种桌面环境可选,如GNOME、KDE、Xfce等,满足不同用户的使用习惯。此外,Debian还允许用户自由定制内核,并且内置了大量实用工具,非常适合发烧友和开发人员使用 + +### 坚如磐石的社区支持 + +#### 作为最古老的Linux发行版之一,Debian拥有活跃且庞大的用户社区,在技术支持、文档资料、第三方软件等方面都有很好的生态。足迹遍布全球,在专业领域享有极高声誉 + +### 持续创新 + +#### 尽管古老,但Debian从未停止创新步伐。它不断吸收新技术和架构,如现在已经全面支持Arm64等新硬件架构。同时基于Debian的诸多衍生发行版也保持了它的持续活 力 + +## 如何安装一个Linux系统 + +| 1、软件:VMware Workstation Pro、FinalShell +| 2、磁盘映像:debian|12.5.0|amd64|netinst(ISO) + +### 将Debian安装进VM + +1. 创建一个空白虚拟机。 +2. 配置好硬件参数。 +3. 修改CD|ROM,选择ISO文件路径并安装。 +4. 启动虚拟机。 +5. 在选择语言时,选择简体中文,可以将配置的界面都中文显示。 +6. 遇到选镜像站点时,选mirror.lzu.edu.cn 兰州大学的站点。 +7. 软件安装时,只保留最后的标准工具,其它都不选。 + +###### 要实现SSH连接我们要在大便中下载SSH工具 + +```js +apt|get update // 将软件库更新到最新,得到最新可用的软件列表 +apt|get install ssh //安装ssh +apt|get install vim |y // 安装vim +vim /etc/ssh/sshd_config +``` + +###### 进入配置后即可更改 + +```js +// 默认是命令模式,按i进入编辑模式 +Port 22 // 开启端口22 +PermitRootLogin yes // 允许root登录 +PasswordAuthentication yes // 使用密码验证的模式 +PermitEmptyPasswords no // 禁用空密码 + +// 需要重启ssh让配置生效,两种方法 +systemctl restart ssh +/etc/init.d/ssh restart +IP add show //查看IP地址 + +// 保存时,按ESC,退回命令模式,按shift+: ,输入qw! +``` + +### 打开FinalShell配置好IP,登录时用户名更改为root输入密码即可实现SSH远程登录 + +常见的VIM按键 + +|按键|解释| +|-|-| +|i | 进入插入模式 (Insert mode)| +|Esc | 退出插入模式,回到普通模式 (Normal mode)| +|h | 向左移动光标| +|j | 向下移动光标| +|k | 向上移动光标| +|l | 向右移动光标| +|0 (^) | 移动光标到当前行首| +|$ | 移动光标到当前行尾| +|gg | 移动光标到文件头部| +|G | 移动光标到文件尾部| +|x | 删除光标所在位置的字符| +|dw | 删除一个单词| +|dd | 删除一整行| +|u | 撤销最近的操作| +|Ctrl+r | 重做最近撤销的操作| +|yy | 复制一整行| +|p | 粘贴| +|/pattern | 查找pattern| +|n | 查找下一个| +|N | 查找上一个| +|:%s/old/new/g | 将文件中所有old替换为new| +|:%s/old/new/gc | 确认每次替换| +|v | 进入可视模式| +|V | 进入可视行模式| +|Ctrl+v | 进入可视块模式| +|:e filename | 打开文件| +|:w | 保存文件| +|:q | 退出vim| +|:q! | 强制退出不保存| +|:wq | 保存并退出| +|:sp filename | 水平分割窗口打开新文件| +|:vsp filename |垂直分割窗口打开新文件| +|Ctrl+w |切换窗口| +|:syntax on |开启语法高亮| +|set nu |显示行号| +|% |在匹配的括号间移动| diff --git "a/\351\231\266\345\256\227\350\261\252/\347\254\224\350\256\260/20240516-Linux\346\226\207\344\273\266\345\210\206\347\261\273.md" "b/\351\231\266\345\256\227\350\261\252/\347\254\224\350\256\260/20240516-Linux\346\226\207\344\273\266\345\210\206\347\261\273.md" new file mode 100644 index 0000000000000000000000000000000000000000..04b638b4544acf9fa43906d71952a32ec4ce8379 --- /dev/null +++ "b/\351\231\266\345\256\227\350\261\252/\347\254\224\350\256\260/20240516-Linux\346\226\207\344\273\266\345\210\206\347\261\273.md" @@ -0,0 +1,117 @@ +# Linux文件分类 + +## 文件常用命令 + +```js +ls(英文全拼:list files): 列出目录及文件名 +cd(英文全拼:change directory):切换目录 +pwd(英文全拼:print work directory):显示目前的目录 +mkdir(英文全拼:make directory):创建一个新的目录 +rmdir(英文全拼:remove directory):删除一个空的目录 +cp(英文全拼:copy file): 复制文件或目录 +rm(英文全拼:remove): 删除文件或目录 +mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称 +``` + +### /bin + +bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。 + +### /boot + +这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。 + +### /dev + +dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。 + +### /etc + +etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。 + +### /home + +用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。 + +### /lib + +lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。 + +### /lost+found + +这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 + +### /media + +linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。 + +### /mnt + +系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。 + +### /opt + +opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 + +### /proc + +proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 +这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器: + +```js +echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all +``` + +### /root + +该目录为系统管理员,也称作超级权限者的用户主目录。 + +### /sbin + +s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。 + +### /selinux + + 这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。 + +### /srv + + 该目录存放一些服务启动之后需要提取的数据。 + +### /sys + +这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。 + +sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。 + +该文件系统是内核设备树的一个直观反映。 + +当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。 + +### /tmp + +tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。 + +### /usr + + usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。 + +### /usr/bin + +系统用户使用的应用程序。 + +### /usr/sbin + +超级用户使用的比较高级的管理程序和系统守护程序。 + +### /usr/src + +内核源代码默认的放置目录。 + +### /var + +var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 + +### /run + +是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。 diff --git "a/\351\231\266\345\256\227\350\261\252/\347\254\224\350\256\260/20240518-Debian\346\226\207\344\273\266\347\232\204\345\216\213\347\274\251\346\211\223\345\214\205\345\217\212\350\247\243\345\216\213\347\274\251.md" "b/\351\231\266\345\256\227\350\261\252/\347\254\224\350\256\260/20240518-Debian\346\226\207\344\273\266\347\232\204\345\216\213\347\274\251\346\211\223\345\214\205\345\217\212\350\247\243\345\216\213\347\274\251.md" new file mode 100644 index 0000000000000000000000000000000000000000..cf9dd64e228c89e43d8a2f182cf2b98b20e095c2 --- /dev/null +++ "b/\351\231\266\345\256\227\350\261\252/\347\254\224\350\256\260/20240518-Debian\346\226\207\344\273\266\347\232\204\345\216\213\347\274\251\346\211\223\345\214\205\345\217\212\350\247\243\345\216\213\347\274\251.md" @@ -0,0 +1,137 @@ +# Debian文件的压缩、打包、解压缩 + +### 明确需求:压缩?打包?解压缩? + +## 1、Debian用户模式的设置 + +```js +//在root模式下输入 +adduser username //将 "username" 替换为您想要创建的新用户名 +//输入pswd +//给予用户权限(root模式下) +visudo //打开sudoers文件以进行编辑 + +username ALL=(ALL:ALL) ALL //将 "username" 替换为要授予权限的实际用户名。此规则将授予该用户名以sudo权限,允许其以管理员身份运行所有命令。 +//下载sudo + +apt update//更新软件包列表 +apt install sudo//安装 sudo + +``` + +## 创建文件 + +```js +mkdir Dir1 //创建一个名为Dir1的文件夹 +mkdir -p /Dir1/Dir2/Dir3/Dir4/Dir5 //即可创建一个多文件嵌套的文件夹目录 +``` + +## 文件夹的压缩 + +```js +//tar压缩 +tar -cvf archive.tar file1 file2 folder1//打开终端,并使用以下命令将文件/文件夹压缩为.tar文件,将 "archive.tar" 替换为您要创建的.tar文件的文件名。将 "file1"、"file2" 替换为要压缩的具体文件名,将 "folder1" 替换为要压缩的文件夹名。 + +//如果要压缩整个文件夹及其内容 +tar -cvf archive.tar folder//将 "archive.tar" 替换为您要创建的.tar文件的文件名,将 "folder" 替换为要压缩的文件夹名。 + +//zip压缩 +zip -r myfolder.zip myfolder +//-r:递归地打包文件夹中的所有文件和子文件夹。 +//myfolder.zip:生成的 ZIP 文件的名称。 +//myfolder:要打包的文件夹。 +unzip -l myfolder.zip //查看 ZIP 文件的内容 +``` + +报错提示:ZiP压缩 + +```js +zip -r 中国.zip 中国 提示:zip error: Nothing to do! (try: zip -r 中国.zip . -i 中国) +//使用非了 ASCII 字符(如中文)不要用中文!!!!!!!!!! + +zip warning: zip file empty +文件夹名称错误:指定的文件夹不存在或名称不正确。 +文件夹路径错误:指定的路径不正确,导致没有找到文件夹。 +文件夹为空:文件夹中没有任何文件或子文件夹。 +``` + +###### debian怎么寻找自己压缩的文件? + +```js +//使用 find 命令 +find /path/to/search -name "*.zip" +find ~ -name "中国.zip" +//使用 locate 命令 +locate "*.zip" + +``` + +#### ZIP错误案例 + +```js +root@hecs-361560:/# zip -r 中国.zip 中国 +updating: 中国/中国.zip (stored 0%) +updating: 中国/安徽省/ (stored 0%) +updating: 中国/安徽省/马鞍山市/ (stored 0%) +updating: 中国/安徽省/马鞍山市/雨山区/ (stored 0%) +updating: 中国/安徽省/马鞍山市/雨山区/钟鼎悦城/ (stored 0%) +updating: 中国/安徽省/马鞍山市/雨山区/钟鼎悦城/陶宗豪/ (stored 0%) +updating: 中国/安徽省/马鞍山市/雨山区/钟鼎悦城/陶宗豪/2244310524陶宗豪.txt (deflated 45%) +adding: 中国/ (stored 0%) +====================================== +zip -r 中国.zip 中国 命令实际上是成功的。它显示了压缩过程中的详细信息,包括每个文件和文件夹的更新状态。输出中的 (stored 0%) 和 (deflated 45%) 表示文件和文件夹的压缩比率。 + 解释输出 +- updating: 中国/中国.zip (stored 0%): 这是一个潜在的问题。你正在将 中国.zip 文件包含在压缩过程中,这可能是因为你在相同的目录下运行了 zip 命令,这是一个常见的陷阱。 +- (stored 0%): 表示这些文件夹由于没有实际内容所以没有被压缩。 +- (deflated 45%): 表示文件 2244310524陶宗豪.txt 被压缩了45%。 + + +解决方法 +为了避免将压缩文件本身包含在压缩过程中,你可以在运行 zip 命令之前将压缩文件名排除在外 +zip -r 中国.zip 中国 -x 中国.zip +-x 中国.zip:排除 中国.zip 文件。 +目录结构 +/root/ +└── 中国/ + ├── 安徽省/ + │ └── 马鞍山市/ + │ └── 雨山区/ + │ └── 钟鼎悦城/ + │ └── 陶宗豪/ + │ └── 2244310524陶宗豪.txt + +zip -r 中国.zip 中国 -x 中国.zip +这样可以确保不将新创建的 中国.zip 文件包含在压缩过程中 +unzip -l 中国.zip//检查 ZIP 文件的内容 +``` + +## 怎么将压缩后的文件夹导出?Zip、tar都可 + +```js +使用 HTTP/HTTPS将文件上传到自己的网站上后通过浏览器下载。 +将文件复制(移动)到 Web 服务器的目录: +cp /path/to/中国.zip /var/www/html/ + +zip +通过浏览器访问: +//http://your_server_ip/中国.zip + +tar +找到并进入art文件所在的文件夹 +sudo mv 中国.tar /var/www/ //借用root权限将tar移动到www下 + +``` + +登录自己的域名 [点我试试看](91c13.top/中国.tar) + +## zip tar解压缩 + +```js +tar +找到并进入art文件所在的文件夹 +sudo tar -xvf "中国.tar" //借用root权力解压缩 + +ZIP解压 +unzip your_file.zip//将 "your_file.zip" 替换为您要解压缩的.zip文件的实际文件名。 + +``` diff --git "a/\351\231\266\345\256\227\350\261\252/\347\273\203\344\271\240/\347\214\252\345\244\264\350\277\230\347\234\213.txt" "b/\351\231\266\345\256\227\350\261\252/\347\273\203\344\271\240/\347\214\252\345\244\264\350\277\230\347\234\213.txt" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391