<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>02linux on ynhugo</title><link>https://ynhugo.github.io/tags/02linux/</link><description>Recent content in 02linux on ynhugo</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Thu, 16 Feb 2023 08:03:05 +0800</lastBuildDate><atom:link href="https://ynhugo.github.io/tags/02linux/index.xml" rel="self" type="application/rss+xml"/><item><title>02linux_01day</title><link>https://ynhugo.github.io/p/02linux_01day/</link><pubDate>Thu, 16 Feb 2023 08:03:05 +0800</pubDate><guid>https://ynhugo.github.io/p/02linux_01day/</guid><description>&#10;&lt;div id="outline-container-headline-1" class="outline-2"&gt;&#10;&lt;h2 id="headline-1"&gt;&#10;02linux_01day&#10;&lt;/h2&gt;&#10;&lt;div id="outline-text-headline-1" class="outline-text-2"&gt;&#10;&lt;p&gt;&#10;=================================&lt;br&gt;&#10;2022-7-11&lt;br&gt;&#10;=================================&lt;/p&gt;&#10;&lt;div id="outline-container-headline-2" class="outline-3"&gt;&#10;&lt;h3 id="headline-2"&gt;&#10;一.介绍&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-2" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 上课时间(课前阅读单词 | 随机抽取学生复述昨天讲过的内容)&#10; 09:00 - 12:00&#10; 13:30 - 17:30&#10; 18:30 - 20:30&#10;&#10; 周一 到 周五&#10; 节假日以及周六周日休息(周六有自习室)&#10;&#10; 课程安排&#10; 预科&#9;&#9;通过预科时间把大家的基础拉平&#10; --------------------------------&#10; Linux基础&#9;(环境安装\命令\软件安装\权限管理\用户管理\服务搭建)&#10; Linux下C语言&#9;(变量\运算符\分支语句\循环\跳转\数组\函数\指针\)&#10; (复合型数据类型\预处理\文件IO)&#10; 数据结构&#9;&#9;(链表\栈式存储结构\队列式存储结构\树存储结构\哈希表)&#10; ---------考试以及项目-------------&#9;&#10; APUE&#9;&#9;(标准IO\系统调用IO\信号\进程\线程\进程间通信)&#10; (网络套接字TCP/UDP)&#10; C++/QT&#9;&#9;()&#10; ---------考试以及项目-------------&#10; 智能终端&#9;&#9;单片机开发(裸板驱动)&#10; ---------------项目--------------&#10; 边缘计算&#9;&#9;高端芯片的开发(带操作系统的驱动)&#10; ---------------项目--------------&#10; 就业环节&#9;&#9;压力面试\压力笔试&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-3" class="outline-3"&gt;&#10;&lt;h3 id="headline-3"&gt;&#10;二.Linux环境的安装&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-3" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 环境的安装&#10; 1.双系统&#10; 准备&#10; 1)把笔记本的硬盘分出空白的空间(100G)&#10; 2)系统盘&#10; (光盘安装\U盘安装\网络安装)&#10; 2.虚拟机&#10; 准备&#10; 1)虚拟机软件(vmware\vboxs)&#10; 2)镜像(开源的镜像网站)&#10; 3.注意:无论是双系统的安装还是虚拟操作系统的安装,分区需要选择手动分区&#10; 例如:分了100G的空间&#10; 8192Mb&#9;&#9;&#9;交换空间&#10; 剩余的一半空间&#9;&#9;/home&#10; 剩余的所有空间&#9;&#9;/&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-4" class="outline-3"&gt;&#10;&lt;h3 id="headline-4"&gt;&#10;三.Linux的历史&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-4" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 在市面上的电子产品的万年历的功能&#10; 1.RTC的功能可以查找基准时间&#10; 1)1900年1月1日&#9;这一天是星期一&#10; 2)1970年1月1日&#9;计算机元年&#10; 3)2000年1月1日&#9;千禧年(千年虫)&#10; 2.计算机元年&#10; 在美国一家通讯公司,AT&amp;amp;T公司(马刺队)&#10; AT&amp;amp;T公司里面有个实验室叫做贝尔实验室&#10; 丹尼斯.里奇(C语言之父)用闲置的电脑写了一个游戏--太空旅行&#10; 丹尼斯.里奇和肯.汤姆逊使用BSPL语言(B语言)在机器上写通用程序&#10; 觉得B语言不好用,所以创立了C语言&#10; &#10; 丹尼斯.里奇和肯.汤姆逊写了系统,叫做UNIX&#10; &#10; 美国加州学院伯克利分院一个教授通过UNIX写了一个minix,用于教学&#10; 这个教授的学生林纳斯,写了Linux&#10;&#10; 3.可以在电脑上查询信息&#10; uname -a&#9;查询内核版本以及操作系统版本&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-5" class="outline-3"&gt;&#10;&lt;h3 id="headline-5"&gt;&#10;四.Linux系统的认知&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-5" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; windows&#9;&#9;&#9;Linux&#10; 500G&#10; C D E F&#9;&#9;&#9;/(根目录)&#10; 4棵树&#9;&#9;&#9;1棵树&#10; /(根目录)&#10; bin&#9;&#9;&#9;存放的是二进制的文件(命令)&#10; boot&#9;&#9;存放的是用来引导内核的文件&#10; dev&#9;&#9;&#9;存放的是各种设备文件&#10; etc&#9;&#9;&#9;存放的是配置文件&#10; home&#9;&#9;存放的是普通用户的家目录&#10; lib&#9;&#9;&#9;存放的是各种库文件(动态库和静态库)&#10; media&#9;&#9;用来挂载存储介质或者媒体介质的文件&#10; mnt&#9;&#9;&#9;系统默认可以使用的挂载的目录&#10; proc&#9;&#9;动态的目录(不能用于存储文件)&#10; (系统内核的信息\进程的信息\内存映射的信息)&#10; root&#9;&#9;超级用户的家目录&#10; sbin&#9;&#9;存放系统的二进制文件&#10; sys&#9;&#9;&#9;存放系统的文件&#10; usr&#9;&#9;&#9;存放的是应用程序\头文件&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-6" class="outline-3"&gt;&#10;&lt;h3 id="headline-6"&gt;&#10;五.终端的使用&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-6" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 1.终端的打开&#10; 1)通过鼠标右键-&amp;gt;打开终端&#10; 2)在Ubuntu左下角有显示应用程序-&amp;gt;全部-&amp;gt;终端&#10; 3)快捷键ctrl + alt + t&#10; 4)打开终端之后打开终端的标签页&#10; ctrl + shift+ t&#9;&#9;//打开标签页&#10; ctrl + pgup/pgdn&#9;//切换标签页&#10; 注意 : 有同学电脑的键盘上的pgup和pgdn和别的按键在一起&#10; 有可能在切换标签页的时候需要使用shift或者fn&#10; 2.终端提示符&#10; zack@zack-CSTG:~/桌面/2022-6-29_UEA/02linux$ &#10; 在@之前&#9;&#9;当前登陆这个终端的用户名&#10; @&#9;&#9;&#9;分割符号&#10; 在@之后,:之前&#9;主机名&#10; :&#9;&#9;&#9;分割符号&#10; 在:之后&#9;&#9;当前终端所在目录的路径&#10; 路径分为绝对路径和相对路径&#10; 绝对路径 : 从根目录出发.一层一层递进的目录就是绝对路径&#10; 相对路径 : 除了绝对路径都是相对路径&#10; 在路径中 ~ 指的是家目录的意思&#10; 每个用户都会有家目录&#10; root用户&#9;&#9;/root&#10; zack用户&#9;&#9;/home/zack&#10; tom用户&#9;&#9;/home/tom&#10; #或者$&#9;&#9;用户的身份识别&#10; #&#9;&#9;代表的是超级用户&#10; $&#9;&#9;代表的是普通用户&#10; 3.修改终端提示符的长度&#10; 1)需要修改配置文件&#10; 注意:&#10; 如果修改/etc/下边的配置文件,会影响所有用户&#10; 如果修改家目录下边的配置文件,会影响当前用户&#10; 2)把原有的配置文件拷贝一个备份&#10; cp ~/.bashrc ~/bashrctest&#10; 3)修改配置文件&#10; vim ~/.bashrc&#10; -------------------------&#10; 1&amp;gt;找到要修改的位置,大约在60行左右&#10; 2&amp;gt;PS1=&amp;#39;${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ &amp;#39;&#10; 3&amp;gt;把 \h\[\033[00m\]: 删掉&#9;&#9;代表不再显示主机名&#10; 4&amp;gt;把 \w 修改成 \W&#9;&#9;&#9;&#9;代表目录路径只显示最后一级&#10; 5&amp;gt;保存退出&#10; 6&amp;gt;sync&#9;&#9;&#9;&#9;&#9;&#9;代表同步一下信息&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-7" class="outline-3"&gt;&#10;&lt;h3 id="headline-7"&gt;&#10;六.命令&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-7" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 在Linux下一切皆文件,任何东西在Linux环境中都是以文件形式存在的&#10;&#10; 在终端提示符之后可以录入命令 或者 可执行文件 或者 程序&#10; 终端提示符&#9;命令&#10; 终端提示符&#9;命令 + 选项&#10; 终端提示符&#9;命令 + 参数&#10; 终端提示符&#9;命令 + 选项 + 参数&#10; 注意 : 命令 选项 参数之间需要用空格隔开&#10; 命令 --help&#9;可以查看命令的帮助手册&#10;&#10; cd&#9;&#9;(切换目录/改变目录/进入目录)&#10; 1.cd + 目录&#9;&#9;//可以切换到该目录中&#10; 如果目录不存在,会提示报错&#10; 2.cd + 路径&#9;&#9;//可以切换到该路径中&#10; 可以是绝对路径或者相对路径,但是必须是一个正确的路径&#10; 3.cd 直接回车&#9;&#9;//可以直接回到家目录&#10; 4.cd + ..&#9;&#9;//可以切换到上一级目录&#10; ls&#9;&#9;(显示当前目录下的文件名)&#10; 1.ls 直接回车&#9;&#9;//显示当前目录下的文件名&#10; 2.ls + 文件名&#9;&#9;//显示当前目录下该文件的文件名&#10; 3.ls + 目录名&#9;&#9;//显示该目录下的文件名&#10; 4.ls + -a&#9;&#9;//显示所有文件包括隐藏文件&#10; //在Linux环境下以.开头的文件都是隐藏文件&#10; //任何目录都有来两个默认的隐藏文件&#10; //. 代表当前目录&#9;.. 代表上一级目录&#10; 5.ls + -i&#9;&#9;//显示文件inode号&#10; //文件是存储在硬盘中的,在Linux文件系统中&#10; //是通过inode号来管理文件的&#10; //在硬盘的同一分区中,文件inode号不会重复&#10; 6.ls + -l&#9;&#9;//使用较长格式显示文件信息&#10;-rw-r--r-- 1 zack zack 8980 7月 9 15:51 examples.desktop&#10;drwxr-xr-x 2 zack zack 4096 7月 9 16:26 公共的&#10; part.1&#9;&#9;&#9;文件的类型(在Linux环境中一共有7种文件类型)&#10; -&#9;&#9;普通文件&#10; d&#9;&#9;目录文件&#10; c&#9;&#9;字符设备文件&#10; b&#9;&#9;块设备文件&#10; p&#9;&#9;管道文件&#10; s&#9;&#9;网络套接字文件&#10; l&#9;&#9;链接文件(符号链接文件)&#10; part.2&#9;&#9;&#9;文件的权限(分为基本权限和特殊权限)&#10; rw-&#9;&#9;&#9;r--&#9;&#9;&#9;r--&#10; 文件所属者&#9;文件所属组&#9;其他用户&#10; 字符表示&#9;&#9;数字表示&#9;&#9;含义&#10; r&#9;&#9;&#9;4&#9;&#9;&#9;可读&#10; w&#9;&#9;&#9;2&#9;&#9;&#9;可写&#10; x&#9;&#9;&#9;1&#9;&#9;&#9;可执行&#10; -&#9;&#9;&#9;0&#9;&#9;&#9;该处无权限&#10; part.3&#9;&#9;&#9;文件链接数&#10; part.4&#9;&#9;&#9;文件所属者&#10; part.5&#9;&#9;&#9;文件所属组&#10; part.6&#9;&#9;&#9;文件的字节数&#10; part.7&#9;&#9;&#9;文件最后修改时间&#10; part.8&#9;&#9;&#9;文件名&#10; pwd&#9;&#9;(可以显示当前目录所在的绝对路径)&#10; touch&#9;(创建普通文件)&#10; 1.touch + 文件名&#9;&#9;&#9;//创建以文件名命名的普通文件&#10; 如果文件名已经存在,不会修改文件内容,只会修改文件最后修改时间&#10; 如果加已存在的目录名,不会修改文件内容,只会修改文件最后修改时间&#10; 2.touch + 文件名 + 文件名&#9;//可以创建多个文件&#10; 注意 : 文件名与文件名之间用空格隔开&#10; 3.touch + {1..20}.c&#9;&#9;//可以创建1.c ... 20.c&#10; touch + {a..z}.c&#9;//可以创建a.c ... z.c&#10; touch + {A..Z}.c&#9;//可以创建A.c ... Z.c&#10; 4.touch + 路径/文件&#9;&#9;//在该路径下创建新的文件&#10; 注意 : 路径可以是相对路径或者绝对路径,但是必须是正确的路径&#10; mkdir&#9;(创建目录文件)&#10; 1.mkdir + 目录名&#9;&#9;&#9;&#9;//创建以目录名命名的目录&#10; 注意 : 不能加已有的目录名,会报错&#10; 2.mkdir + 目录名 + 目录名&#9;&#9;//创建多个目录&#10; 注意 : 目录名与目录名之间用空格隔开&#10; 3.mkdir + {a..z}dir&#9;&#9;&#9;//创建adir ... zdir&#10; 4.mkdir + 路径/目录名&#9;&#9;&#9;//可以在该路径下创建目录文件&#10; 注意 : 可以是绝对路径或者相对路径,但是必须是正确的路径&#10; rm&#9;&#9;(删除文件)&#10; 1.rm + 文件名&#9;&#9;&#9;&#9;//删除文件(普通文件)&#10; 2.rm + -r + 目录名&#9;&#9;//删除目录文件&#10; -r&#9;代表递归的操作&#10; 3.rm *.c&#9;&#9;&#9;&#9;//删除当前目录下所有以.c结尾的文件&#10; rm file*&#9;&#9;&#9;//删除当前目录下以file开头的文件&#10; rm -r dir*&#9;&#9;&#9;//删除当前目录下以dir开头的文件&#10; 4.rm + 路径/目录名&#9;&#9;//删除该目录下的该文件&#10; 注意 : 路径可以是绝对路径或者相对路径,但是必须是正确的路径&#10; 注意 : 在根目录中千万不要执行 sudo rm -rf *&#10; cat&#9;&#9;(查看普通文件的文件内容)&#10; 1.cat + 普通文件的文件名&#10; 2.cat + 路经/普通文件的文件名&#10; 注意 : 路径可以是绝对路径或者相对路径,但是必须是正确的路径&#10; ----------------------------&#10; cat&#9;&#9;把所有的文件内容打印输出到终端中&#10; less&#9;从文件的起始位置开始显示,可以通过鼠标滚轮或者键盘上下键翻阅&#10; 按q退出&#10; more&#9;从文件的起始位置开始显示(显示百分比)&#10; s向下翻阅&#9;&#9;b向上翻阅&#9;&#9;q退出&#10; head&#9;默认查看文件的前10行&#10; tail&#9;默认查看文件的末尾10行&#10; ----------------------------&#10; cp&#9;&#9;（拷贝文件）&#10; 1.cp + 源文件名 + 目标文件名&#9;//把源文件的文件内容拷贝到目标文件中&#10; 如果目标文件名已存在,源文件的文件内容会覆盖目标文件的文件内容&#10; 如果目标文件名不存在,会新建以目标文件名命名的文件,&#10; 然后把源文件的文件内容会覆盖目标文件的文件内容&#10; 2.cp + 源文件名 + 目录名&#9;&#9;//会把源文件拷贝到目录中&#10; 3.cp + -r + 源目录 + 目标目录&#9;//会把源目录拷贝到目标目录中&#10; 如果目标目录已存在,会把源目录拷贝到目标目录内&#10; 如果目标目录不存在,会新建目标目录,并且把源目录内的文件拷贝到目标目录中&#10; &#10; mv&#9;&#9;(剪切文件\移动文件\改名字)&#10; 1.mv + 源文件名 + 目标文件名&#9;//剪切文件内容&#10; 如果目标文件名不存在,就是把源文件改名字&#10; 如果目标文件名已存在,也是把源文件改名字,不过会替代掉重名的文件&#10; 注意 : mv在操作目录文件时不需要加 -r 的操作&#10;&#10; tar&#9;&#9;(压缩与解压缩)&#10; 1.tar cvf 最终生成的压缩包的名字.tar 要压缩的文件&#9;&#9;//用来压缩的&#10; 2.tar xvf 压缩包的名字.tar&#9;&#9;//会把压缩包默认解压缩到当前目录下&#10; 3.tar xvf 压缩包的名字.tar -C 路径&#10; //会把压缩包解压缩到指定目录中&#10;--------------------------------&#10;作业 : &#10;1.把今天讲过的内容完完整整的复习一遍&#10;2.抽时间自己安装一遍虚拟操作系统&#10;3.查找ls加什么选项可以查看目录名&#10;--------------------------------&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>02linux_02day</title><link>https://ynhugo.github.io/p/02linux_02day/</link><pubDate>Thu, 16 Feb 2023 08:03:05 +0800</pubDate><guid>https://ynhugo.github.io/p/02linux_02day/</guid><description>&#10;&lt;div id="outline-container-headline-1" class="outline-2"&gt;&#10;&lt;h2 id="headline-1"&gt;&#10;02linux_02day&#10;&lt;/h2&gt;&#10;&lt;div id="outline-text-headline-1" class="outline-text-2"&gt;&#10;&lt;p&gt;&#10;=================================&lt;br&gt;&#10;2022-7-12&lt;br&gt;&#10;=================================&lt;/p&gt;&#10;&lt;div id="outline-container-headline-2" class="outline-3"&gt;&#10;&lt;h3 id="headline-2"&gt;&#10;一.温故知新&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-2" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 1.介绍&#10; 2.课程安排&#10; 3.Ubuntu的Linux操作系统&#10; 4.介绍Linux由来&#10; 5.介绍Linux系统的根目录&#10; 6.终端的使用&#10; 7.常用的命令&#10; cd ls(-a\-i\-l) pwd touch mkdir &#10; cat(less more head tail)&#10; cp mv rm tar&#10;drwxr-xr-x 14 root root 4096 9月 16 2021 var&#10;lrwxrwxrwx 1 root root 30 7月 11 08:56 vmlinuz -&amp;gt; boot/vmlinuz-5.4.0-121-generic&#10; part.1&#9;&#9;文件类型(7种文件类型)&#10; -&#9;普通文件&#10; d&#9;目录文件&#10; c&#9;字符设备文件&#10; b&#9;块设备文件&#10; p&#9;管道文件&#10; s&#9;网络套接字文件&#10; l&#9;链接文件(符号链接文件)&#10; part.2&#9;&#9;文件权限&#10; rwx&#9;&#9;&#9;r--&#9;&#9;&#9;-wx&#10; 文件所属者&#9;文件所属组&#9;其他用户&#10; 7&#9;&#9;&#9;4&#9;&#9;&#9;3&#10; r&#9;4&#9;可读&#10; w&#9;2&#9;可写&#10; x&#9;1&#9;可执行&#10; -&#9;0&#9;该处无权限&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-3" class="outline-3"&gt;&#10;&lt;h3 id="headline-3"&gt;&#10;二.命令的补充&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-3" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 在Linux环境中有两种链接文件(硬链接 和 符号链接)&#10; ln&#9;&#9;(创建链接文件&amp;lt;既可以创建硬链接,也可以创建符号链接&amp;gt;)&#10; 1.ln + 源文件名 + 目标文件名&#9;&#9;//创建了硬链接文件&#10; -------------------------------------------------&#10; 源文件和目标文件共用同一个文件inode号&#10; 任意修改一个文件的文件内容,另外的一个文件也会发生改变&#10; 移动或者删除源文件对于硬链接文件不会有影响&#10; 会改变文件的硬链接数&#10; -------------------------------------------------&#10; 2.ln + -s + 源文件名 + 目标文件名&#9;//创建符号链接文件&#10; -------------------------------------------------&#10; 符号链接文件类似于windows环境下的快捷方式&#10; 源文件和符号链接文件使用文件inode号不同&#10; 任意修改一个文件的文件内容,另外的一个文件也会发生改变&#10; 移动或者删除源文件对于符号链接文件会有影响&#10; -------------------------------------------------&#10; 3.总结&#10; 硬链接&#10; 创建方式 : ln 源文件 目标文件&#10; 其实硬链接就是一个文件拥有多个文件名&#10; 源文件和硬链接文件可以在相同目录中也可以在不同目录中&#10; 注意:&#10; 1)修改源文件或者硬链接文件,对于另外一个文件也会发生修改&#10; 2)移动或者删除源文件或硬链接文件,对于另外一个文件没有影响&#10; 3)硬链接文件不占用存储空间&#10; 4)不能对于目录文件进行创建硬链接文件&#10; (即便是超级用户也不行,在Linux环境中目录是有硬链接的)&#10; (但是是系统默认创建出来的,用户是创建不了的)&#10; (. 就是当前目录的硬链接, .. 就是上一级目录的硬链接)&#10; 5)硬链接文件不能跨系统分区或者文件系统&#10; 符号链接&#10; 创建方式 : ln -s 源文件 目标文件&#10; 符号链接文件类似于windows环境下的快捷方式&#10; 符号链接文件内部保存的是源文件的文件名或者路径&#10; 注意 : &#10; 1)符号链接文件会占用存储空间,保存的是链接的文件的文件名或者路径&#10; 2)符号链接文件是一个独立的文件,它的存在不依赖于源文件&#10; 3)如果移动 重命名 删除源文件,对于符号链接文件会有影响&#10; 虽然受影响,但是链接关系依然存在&#10; &#10; find&#9;&#9;(查找文件)&#10; 1.find -name 文件名&#9;&#9;//通过文件名查找文件&#10; &#10; grep&#9;&#9;(检索文件内容&amp;lt;针对文件内容进行过滤&amp;gt;)&#10; 1.grep &amp;#39;过滤的内容&amp;#39; 过滤文件的文件名&#9;//从该文件中过滤相关的内容&#10; 2.grep &amp;#39;^root&amp;#39; 过滤文件的文件名&#9;//从该文件中过滤相关的内容&#10; //^代表查找过滤的内容出现在行首&#10; 3.grep &amp;#39;bash$&amp;#39; 过滤文件的文件名&#9;//从该文件中过滤相关的内容&#10; //$代表查找过滤的内容出现在行尾&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-4" class="outline-3"&gt;&#10;&lt;h3 id="headline-4"&gt;&#10;三.帮助手册&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-4" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 1.命令 --help&#9;&#9;&#9;&#9;//可以查阅命令的帮助手册&#10; 2.如果查找函数可以使用man手册&#9;//有困难,找男人&#10; 1)man 要查找的内容&#9;&#9;&#9;//默认是从第一本man手册开始查找&#10; 2)man man&#9;&#9;&#9;&#9;//可以查阅如何使用man手册&#10; 1 可执行程序或 shell 命令&#10; 2 系统调用(内核提供的函数)&#10; 3 库调用(程序库中的函数)&#10; 4 特殊文件(通常位于 /dev)&#10; 5 文件格式和规范，如 /etc/passwd&#10; 6 游戏&#10; 7 杂项(包括宏包和规范，如 man(7)，groff(7))&#10; 8 系统管理命令(通常只针对 root 用户)&#10; 9 内核例程 [非标准&#10; 3)man 数字 查找的内容&#9;&#9;//可以指定打开某一本手册&#10; man 3 printf&#10; man 3 sleep&#10; 4)man -f 查找的内容&#9;&#9;//把man手册中所有有关查找的内容列出&#10; ------------------------&#10; 在man手册中,按 q 可以退出man手册&#10; 在man手册中,查找关键字可以用 /查找的关键字&#10; 按 n 从上往下查找,按 N 从下往上查找&#10; ------------------------&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-5" class="outline-3"&gt;&#10;&lt;h3 id="headline-5"&gt;&#10;四.Linux环境中软件的安装&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-5" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 注意 : &#10; 1.在安装软件时,需要访问/etc /sys /usr /var...目录&#10; 有些目录普通用户没有权限访问,所以在安装软件时需要加 sudo&#10; 提升用户权限&#10; 2.在使用sudo时,需要在终端中录入密码,在终端中录入密码是取消回现的&#10; 1.从软件源安装软件(必须可以链接外网)&#10; 前提准备:需要更换软件源&#10; 显示应用程序-&amp;gt;软件和更新-&amp;gt;下载自-&amp;gt;其他站点-&amp;gt;腾讯/阿里/华为/清华&#10; 在安装软件时可以先更新软件源 : &#10; sudo apt-get update&#10; sudo apt-get upgrade&#10; 可以加入 -y 的选项&#9;&#9;默认选择yes&#10; sudo apt-get install 安装软件的名字 -y&#10; ------------------------&#10; 可以做的实验,可以安装&#10; sl&#10; ifconfig&#10; fbset&#10; ------------------------&#10; sudo apt-get autoremove 要卸载的东西&#10; 删除已安装的软件包,不会删除依赖的软件包,会保留配置文件&#10; 注意:慎用(容易把图形化界面搞崩溃)&#10; sudo apt-get remove 要卸载的东西&#10; 删除已安装的软件包,不会删除依赖的软件包,会保留配置文件&#10; sudo apt-get purge&#10; 删除已安装的软件包,也会删除依赖的软件包&#10; sudo apt clean&#10; 会把/var/cache/apt/archives目录中的所有.deb的包&#10; 清除掉&#10; 2.从官网下载官方的软件包进行安装&#10; (Ubuntu-&amp;gt;从官网上下载.deb结尾的软件包)&#10; (Red Hat-&amp;gt;从官网上下载.rpm结尾的软件包)&#10; sudo dpkg -i xxxxx.deb&#9;&#9;//安装软件&#10; sudo dpkg -l 软件名&#9;&#9;&#9;//确定软件包的名字&#10; sudo dpkg -r 软件名&#9;&#9;&#9;//删除软件&#10; sudo dpkg -p 软件名&#9;&#9;&#9;//清除信息&#10; ------------------------&#10; 可以做的实验,可以安装&#10; VNC Viewer&#10; WPS&#10; 百度网盘&#10; 网易云音乐&#10; 向日葵&#10; 腾讯会议&#10; 星际译王&#10; ------------------------&#10; QQ&#9;&#9;&#9;&#9;不推荐&#10; 搜狗输入法&#9;&#9;不推荐&#10; ------------------------&#10; 3.从官网下载源码包进行安装&#10; 1)从官方网站下载源码包(一般来说就是tar包)&#10; 2)把源码包进行解压缩(tar -xvf)&#10; 3)./configure&#9;&#9;//检查编译环境是否缺少需要的库&#10; 4)make -j4&#9;&#9;&#9;//编译源码(-j4调动所有硬件资源)&#10; 5)sudo make install&#9;//安装软件&#10; ------------------------&#10; 可以做的实验,可以安装&#10; MPlayer&#10; ------------------------&#10;--------------------------------&#10;作业 : &#10;1.把今天讲过的内容完完整整的复习一遍&#10;2.尝试使用其他的查找方法,查找文件&#10;--------------------------------&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>02linux_03day</title><link>https://ynhugo.github.io/p/02linux_03day/</link><pubDate>Thu, 16 Feb 2023 08:03:05 +0800</pubDate><guid>https://ynhugo.github.io/p/02linux_03day/</guid><description>&#10;&lt;div id="outline-container-headline-1" class="outline-2"&gt;&#10;&lt;h2 id="headline-1"&gt;&#10;02linux_03day&#10;&lt;/h2&gt;&#10;&lt;div id="outline-text-headline-1" class="outline-text-2"&gt;&#10;&lt;p&gt;&#10;=================================&lt;br&gt;&#10;2022-7-13&lt;br&gt;&#10;=================================&lt;/p&gt;&#10;&lt;div id="outline-container-headline-2" class="outline-3"&gt;&#10;&lt;h3 id="headline-2"&gt;&#10;一.温故知新&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-2" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 命令的补充&#10; ln&#9;&#9;&#9;&#9;&#9;&#9;//用来创建链接文件&#10; ln 源文件 目标文件&#9;&#9;&#9;//创建的是硬链接文件&#10; ln -s 源文件 目标文件&#9;&#9;//创建的是符号链接文件&#10;&#10; find&#9;&#9;&#9;&#9;&#9;//查找文件&#10;&#10; grep&#9;&#9;&#9;&#9;&#9;//检索文件内容&#10;&#10; man手册的使用&#10;&#10; Ubuntu系统软件的安装&#10; 1.sudo apt-get install&#10; 2.从官网下载软件包,进行安装&#10; sudo dpkg -i&#10; 3.从官网下载源码包,进行安装&#10; ./config&#10; make -j4&#10; make install&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-3" class="outline-3"&gt;&#10;&lt;h3 id="headline-3"&gt;&#10;二.编辑器和编译器&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-3" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 1.编辑器(编写程序)&#10; vi vim gedit emacs&#10; vim : 是vi编辑器的高级版本&#10; 注意 :&#10; 1.vim后边需要加文件名&#10; 2.vim除了可以打开文件以外也可以创建文件&#10; 3.保存退出,不要直接关闭终端,否则会生成交换文件&#10; vim 文件名&#10; |&#10; 按iIoOaA&#9;&#9;V&#9;按 :&#10;编辑模式(插入)&amp;lt;-----命令模式-----&amp;gt;命令行模式(底行)&#10; -----&amp;gt;&#9;&#9;&amp;lt;-----&#10; 按 esc&#9;&#9;&#9;删除 :&#10; 1)在命令模式下的操作&#10; 1&amp;gt;光标的定位&#10; h(向左) j(向下) k(向上) l(向右)&#10; gg&#9;&#9;&#9;光标回到首行&#10; G&#9;&#9;&#9;光标回到末行&#10; 23G&#9;&#9;&#9;光标定位到第23行&#10; /要找的内容&#9;光标直接定位到出现要找的内容的位置&#10; (n向下查找 N向上查找)&#10; 2&amp;gt;文本的编辑&#10; yy&#9;&#9;&#9;复制(把光标所在行的内容进行复制)&#10; p&#9;&#9;&#9;粘贴(把复制的内容粘贴到光标所在行的下面)&#10; P&#9;&#9;&#9;粘贴(把复制的内容粘贴到光标所在行的上面)&#10; dd&#9;&#9;&#9;剪切/删除(把光标所在行的内容进行剪切)&#10; 3yy&#9;&#9;&#9;复制3行内容&#10; 3dd&#9;&#9;&#9;剪切/删除3行内容&#10; 3p&#9;&#9;&#9;粘贴3次(粘贴到光标所在行的下面)&#10; 3P&#9;&#9;&#9;粘贴3次(粘贴到光标所在行的上面)&#10; ygg&#9;&#9;&#9;从首行到光标所在行进行复制&#10; yG&#9;&#9;&#9;从光标所在行到末行进行复制&#10; x&#9;&#9;&#9;删除光标所在位置的内容&#10; D&#9;&#9;&#9;从光标所在位置到行末进行删除&#10; u&#9;&#9;&#9;撤销(undo)&#10; ctrl + r&#9;重做(redo)&#10; r&#9;&#9;&#9;替换(只能替换一个字符)&#10; 3&amp;gt;模式的切换&#10; iIoOaA&#9;&#9;进入编辑模式(插入模式)&#10; :&#9;&#9;&#9;进入命令行模式(底行模式)&#10; v&#9;&#9;&#9;进入可视模式&#10; --------------------------------&#10; 调整代码格式&#10; a.&#9;进入到可视模式中&#10; b.&#9;把需要调整格式的代码通过上下键选中&#10; c.&#9;按 = 进行调整&#10; 注意 : 让张老师调代码,先把代码格式调整好了&#10; --------------------------------&#10; V&#9;&#9;&#9;进入可视行模式&#10; ctrl+v&#9;&#9;进入可视块模式&#10; --------------------------------&#10; 块插入&#10; a.ctrl + v进入到可视块模式&#10; b.通过上下键选择要插入的块&#10; c.进入编辑模式(I在选择的块前插入A在选择的块后插入)&#10; d.录入要插入的内容&#10; e.按两下 esc&#10; 块删除&#10; a.ctrl + v进入到可视块模式&#10; b.通过上下键选择要删除的块&#10; c.按 d 进行删除&#10; 块替换&#10; a.ctrl + v进入到可视块模式&#10; b.通过上下键选择要替换的块&#10; c.按 r 进入替换的操作&#10; d.录入要替换的字符&#10; --------------------------------&#10; R&#9;&#9;&#9;进入替换模式&#10; 2)在编辑模式下的操作&#10; 1&amp;gt;文本补齐的功能&#10; ctrl + p&#10; 3)在命令行模式下的操作&#10; 1&amp;gt;保存退出&#10; :w&#9;&#9;&#9;保存&#10; :q&#9;&#9;&#9;退出&#10; :wq&#9;&#9;&#9;保存并且退出&#10; :q!&#9;&#9;&#9;强制退出&#10; :wqa&#9;&#9;保存所有文件,退出所有文件&#10; 2&amp;gt;查找和替换&#10; :3,7 s/root/zack/&#9;&#10; 把3-7行第一次出现的root替换成zack&#10; :3,7 s/root/zack/g&#10; 把3-7行出现的所有的root替换成zack&#10; g&#9;代表的是全局的意思&#10; :% s/root/zack/g&#10; 把全文出现的所有的root替换成zack&#10; %&#9;代表的是全文的意思&#10; 4)修改vim的配置文件&#10; vim /etc/vim/vimrc&#9;&#9;会影响所有用户&#10; vim ~/.vimrc&#9;&#9;&#9;会影响当前用户&#10; 可以从网上找各种vim的配置方法&#10; 5)使用vim打开多个文件&#10; 注意 : 不要用vim一次性打开多个文件,否则vim会崩溃&#10; vim -O 多个文件&#9;&#9;//以纵向的标签栏打开多个文件&#10; vim -o 多个文件&#9;&#9;//以横向的标签栏打开多个文件&#10; 可以使用ctrl + w(两下)切换文件&#10; vim -p 多个文件&#9;&#9;//以标签页的形式打开多个文件&#9;&#10; 可以使用ctrl + alt + pgup/pgdn切换文件&#10; 2.编译器&#10; 在X86环境中有gcc编译器和cc编译器&#10; gcc编译器依赖于cc编译器&#10; 在ARM环境中需要使用交叉编译工具链 : arm-linux-gcc&#10; X86环境和ARM环境会有大端格式和小端格式的区分&#10; --------------------------------------------&#10; 设计一套程序,测试当前环境是大端格式和小端格式&#10; --------------------------------------------&#10; &#10; gcc .c文件&#10; 1.编译之后什么都没有提示,代表程序没有语法错误,会生成可执行文件&#10; 2.编译之后报出警告,代表程序有点问题,但是不是致命的错误,&#10; 也会生成可执行文件&#10; 3.编译之后报出错误,代表程序有致命的问题,不会生成可执行文件&#10; 默认生成的可执行文件的名字是a.out&#10; 以 ./a.out 的方式执行可执行文件&#10; gcc hello.c -o hello&#9;//可以指定生成的可执行文件的文件名&#10; gcc -Wall hello.c&#9;&#9;//可以列出所有警告&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-4" class="outline-3"&gt;&#10;&lt;h3 id="headline-4"&gt;&#10;三.用户管理&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-4" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 1.用户的分类&#10; 功能上区分 : 超级用户 和 普通用户&#10; 超级用户是在安装Linux操作系统时自动创建的用户&#10; 普通用户是由超级用户或者普通用户创建出来的&#10; 范围上区分 : 本地用户 和 网络用户&#10; 创建在本地计算机上的用户是本地用户&#10; 创建在远端服务器上的用户是网络用户&#10; 2.用户创建的描述&#10; 注意 : 虽然都是Linux操作系统,但是不同公司有不同区别&#10; 当创建用户时,伴随着会创建一系列的东西&#10; 1)系统会为新创建的用户分配一个唯一的编号,叫做UID&#10; 2)系统会为新创建的用户,创建一个同名的组,&#10; 并且分配一个唯一的编号,叫做GID&#10; 3)系统会把新创建的用户加入到同名的组中,这个组也叫做这个用户的主组&#10; 4)系统会在/home/目录中创建一个同名的目录,作为新用户的家目录使用&#10; 5)系统会把/etc/skel目录中的文件拷贝到新用户的家目录中,&#10; 作为基础的配置文件进行使用&#10; 6)系统会把新用户的信息记录到/etc/passwd文件中&#10; 查看/etc/passwd文件&#10; 注意:&#10; 1&amp;gt;/etc/passwd文件中每一行就是一个用户的信息&#10; 2&amp;gt;/etc/passwd文件中每个信息通过 : 分割&#10; root:x:0:0:root:/root:/bin/bash&#10; 1&amp;gt;root&#9;&#9;代表的是用户名&#10; 2&amp;gt;x&#9;&#9;&#9;代表的是密码(密码移到了/etc/shadow文件)&#10; 3&amp;gt;0&#9;&#9;&#9;代表的是UID&#10; ----------------------&#10; UID : 0&#9;&#9;&#9;是超级用户&#10; UID : 1 - 499&#9;是系统用户&#10; UID : &amp;gt;= 500&#9;是普通用户&#10; ----------------------&#10; 4&amp;gt;0&#9;&#9;&#9;代表的是GID&#10; 5&amp;gt;root&#9;&#9;代表对于该用户的描述&#10; 6&amp;gt;/root&#9;&#9;代表该用户的家目录&#10; 7&amp;gt;/bin/bash&#9;代表该用户登陆Linux终端时使用的命令解释器&#10; 7)系统会把用户的密码记录到/etc/shadow文件中&#9;&#9;&#9;&#10; 查看/etc/shadow文件&#10;zack:$6$1bVyc6zY$GrJ/9j8jngCDD54QkuDEgZqQJnlWV.MG2ngEFvHkQ dLlkC7AINt6jsm74f8FZvFRuWK5zcz1kf29/LnzakCkd/:19182:0:9999 9:7:::&#10; 1&amp;gt;zack&#9;&#9;代表的是用户名&#10; 2&amp;gt;$6$&#9;&#9;代表的是加密之后的密码&#10; 3&amp;gt;19182&#9;&#9;上次更改密码的日期(从1970-1-1开始算)&#10; 4&amp;gt;0&#9;&#9;&#9;最短的密码期限(按天算,0代表无最短期限)&#10; 5&amp;gt;99999&#9;&#9;最长的密码期限(按天算)&#10; 6&amp;gt;7&#9;&#9;&#9;密码的警告期限&#10; 8)系统会把新用户的组的信息记录到/etc/group文件中&#10; 3.用户的创建&#10; sudo useradd 用户名&#9;&#9;&#9;//创建用户(用户名不能重复)&#10; sudo passwd 用户名&#9;&#9;&#9;//修改用户的密码&#10; sudo su 用户名&#9;&#9;&#9;&#9;//切换用户&#10; ctrl + d&#9;&#9;&#9;&#9;&#9;//结束当前终端用户的登陆&#10; sudo userdel 用户名&#9;&#9;&#9;//删除用户(只删除用户)&#10; sudo userdel -r 用户名//除了删除用户,伴随着会删除创建的东西&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-5" class="outline-3"&gt;&#10;&lt;h3 id="headline-5"&gt;&#10;四.文件权限的管理&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-5" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 1.文件权限的介绍&#10; 在Linux操作系统中用户访问的任何文件都是有权限的&#10; 权限可以分为基本权限和特殊权限&#10; 1)基本权限&#10; rwx&#9;&#9;&#9;&#9;rw-&#9;&#9;&#9;&#9;r--&#10; 文件所属者的权限&#9;文件所属组的权限&#9;其他用户的权限&#10;符号&#9;数字&#9;含义&#9;&#9;对于普通文件的影响&#9;&#9;对于目录文件的影响&#10;r&#9;4&#9;可读&#9;&#9;是否可以读取文件内容&#9;是否可以列出目录的子文件&#10;w&#9;2&#9;可写&#9;&#9;是否可以修改文件内容&#9;是否可以创建或删除子文件&#10;x&#9;1&#9;可执行&#9;是否可以执行文件内容&#9;是否可以访问目录内容&#10; 2)修改文件的权限&#10; sudo chmod 权限 文件名&#9;&#9;//修改文件的权限&#10; //由于权限的表示方法有符号表示和数字表示,所以本身修改权限的方法有很多&#10; //如果修改目录的权限想要影响子文件或者子目录,需要加-R&#10; sudo chmod -R 权限 文件名&#10; 1&amp;gt;使用符号表示法&#10; rwx&#9;&#9;&#9;&#9;rw-&#9;&#9;&#9;&#9;r--&#10; 文件所属者的权限&#9;文件所属组的权限&#9;其他用户的权限&#10; u&#9;&#9;&#9;&#9;g&#9;&#9;&#9;&#9;o&#10; u&#9;表示文件所属者的权限&#10; g&#9;表示文件所属组的权限&#10; o&#9;表示其他用户的权限&#10; a&#9;表示所有用户的权限&#10; u+r &#10; sudo chmod g-w 文件名&#10; o=x&#10; 2&amp;gt;使用数字表示法&#10; 数字表示法也叫做八进制表示法&#10; sudo chmod 456 test&#10; //test的文件所属者是r--&#10; //test的文件所属组是r-x&#10; //test的其他用户是rw-&#10; 3)修改文件的属主和属组&#10; sudo chown 名字 文件&#9;&#9;//用来修改文件的属主&#10; sudo chown .名字 文件&#9;&#9;//用来修改文件的属组&#10; sudo chown 名字.名字 文件&#9;&#10; //既修改文件的属主也修改文件的属组&#10;==============================================&#10;实验&#10;1.创建用户&#9;&#9;&#9;sudo useradd tom&#10;2.修改用户密码&#9;&#9;&#9;sudo passwd tom&#10;3.创建家目录&#9;&#9;&#9;sudo mkdir /home/tom&#10; (tom目录创建之后本来属于root用户)&#10;4.拷贝模板配置文件&#9;&#9;sudo cp /etc/skel/.* /home/tom&#10;5.修改家目录的属主属组&#9;sudo chown -R tom.tom /home/tom&#10;6.修改命令解释器&#9;&#9;sudo vim /etc/passwd&#10; 把tom用户的命令解释器修改成/bin/bash&#10; 保存退出&#10;7.切换用户-&amp;gt;做实验&#10;==============================================&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>02linux_04day</title><link>https://ynhugo.github.io/p/02linux_04day/</link><pubDate>Thu, 16 Feb 2023 08:03:05 +0800</pubDate><guid>https://ynhugo.github.io/p/02linux_04day/</guid><description>&#10;&lt;div id="outline-container-headline-1" class="outline-2"&gt;&#10;&lt;h2 id="headline-1"&gt;&#10;02linux_04day&#10;&lt;/h2&gt;&#10;&lt;div id="outline-text-headline-1" class="outline-text-2"&gt;&#10;&lt;p&gt;&#10;=================================&lt;br&gt;&#10;2022-7-14&lt;br&gt;&#10;=================================&lt;/p&gt;&#10;&lt;div id="outline-container-headline-2" class="outline-3"&gt;&#10;&lt;h3 id="headline-2"&gt;&#10;一.温故知新&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-2" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 1.编辑器&#10; vim&#10; 命令模式&#10; 光标的定位&#10; h j k l gg G 3G /string(n N)&#10; 文本的编辑&#10; yy p P dd u ctrl+r r x D&#10; 模式的切换&#10; iIoOaA&#10; :&#10; v&#10; V&#10; ctrl + v&#10; 编辑模式&#10; 文本的补齐&#10; ctrl + p&#10; 命令行模式&#10; w q wq q! wqa &#10; 3,6 s/srcname/destname/&#10; g %&#10; 可视模式&#10; 代码格式的调整&#10; 可视行模式&#10; 可视块模式&#10; 块插入&#10; 块删除&#10; 块替换&#10; 替换模式&#10; 2.编译器&#10; gcc-&amp;gt;cc&#10; a.out&#10; gcc hello.c -o hello&#10; gcc -Wall&#10; 3.用户管理&#10; sudo useradd 用户名&#10; sudo passwd 用户名&#10; sudo userdel 用户名&#10; -r&#10; 4.权限管理&#10; 基本权限和特殊权限&#10;符号&#9;数字&#9;含义&#9;&#9;对于普通文件的影响&#9;&#9;&#9;对于目录文件的影响&#10;r&#9;4&#9;可读&#9;&#9;是否可以读取文件内容&#9;&#9;是否可以列出子文件&#10;w&#9;2&#9;可写&#9;&#9;是否可以修改文件内容&#9;&#9;是否可以创建或删除子文件&#10;x&#9;1&#9;可执行&#9;是否可以执行文件内容&#9;&#9;是否可以访问该目录&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-3" class="outline-3"&gt;&#10;&lt;h3 id="headline-3"&gt;&#10;二.文件的特殊权限&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-3" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 无论是suid sgid 还是 sticky,影响的都是可执行的权限&#10; 所以加入特殊的权限将来会出现在 x 的位置&#10; suid&#9;u+s&#9;&#9;4&#10; sudo chmod u+s 文件名&#10; 如果文件本身的user权限中有x权限,那么u+s之后,s是小写的&#10; 如果文件本身的user权限中没有x权限,那么u+s之后,S是大写的&#10; 一般来说只会在可执行命令中加入u+s的权限&#10; 特性 : 拥有suid权限的命令,任何用户在使用这个命令时,&#10; 都会拥有这个命令的所有者的权限来执行&#10; (简单来说就是在执行命令时,以命令所有者的权限来运行)&#10; sgid&#9;g+s&#9;&#9;2&#10; sudo chmod g+s 文件名&#10; 如果文件本身的group权限中有x权限,那么g+s之后,s是小写的&#10; 如果文件本身的group权限中没有x权限,那么g+s之后,S是大写的&#10; 一般来说只会在目录文件中加入g+s的权限&#10; 特性 : 拥有sgid权限的目录,任何用户在该目录下创建的文件&#10; 都会继承该目录的属组&#10; (无论是普通用户还是超级用户,在g+s的目录下创建文件都会修改属组)&#10; sticky&#9;o+t&#9;&#9;1&#10; sudo chmod o+t 文件名&#10; 如果文件本身的other权限中有x权限,那么o+t之后,t是小写的&#10; 如果文件本身的other权限中没有x权限,那么o+t之后,T是大写的&#10; 一般来说只会在目录文件中加入o+t的权限&#10; 特性 : 拥有sticky权限的目录,当其他用户想要删除文件时,&#10; 只能删除自己创建的文件&#10; (当超级用户进入到o+t权限的目录中,可以删除所有文件)&#10; 没有特殊权限&#9;&#9;0&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-4" class="outline-3"&gt;&#10;&lt;h3 id="headline-4"&gt;&#10;三.削减权限umask&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-4" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 当创建文件时,本身文件的权限过大,需要通过umask的值削减文件的权限&#10; 在终端中录入 umask 可以查看当前umask值&#10; 也可以修改umask数值 : umask 0022&#10; 修改的umask的数值越大,创建的文件的权限越小&#10; 在Linux系统中,默认创建的普通文件的权限是0666,&#10; 0666 - 0002 = 0664(rw-rw-r--)&#10; 在Linux系统中,默认创建的目录文件的权限是0777,&#10; 0777 - 0002 = 0775(rwxrwxr-x)&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-5" class="outline-3"&gt;&#10;&lt;h3 id="headline-5"&gt;&#10;四.进程的简介&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-5" class="outline-text-3"&gt;&#10;&lt;pre class="example"&gt;&#10; 其实用户在操作系统中做的任何的操作都需要有进程的支持&#10; 进程 : 其实是一个程序运行时的一个过程&#10; 一个进程可以创建出多个子进程的&#10; 主进程 : 父进程&#10; 创建出的进程 : 子进程&#10; 可以调用函数 : fork()&#10; 僵尸进程 : 当父进程创建出子进程,子进程去工作,当子进程做完任务之后&#10; 父进程没有给子进程收尸,子进程会变成僵尸进程&#10; 孤儿进程 : 当父进程创建出子进程,子进程去工作,如果父进程提前结束了&#10; 没有人管理子进程,子进程会变成孤儿进程&#10;&#10;程序运行-----&amp;gt;主进程-----&amp;gt;父进程--&amp;gt;等待子进程结束-收尸-&amp;gt;程序结束&#10; |&#9;&#9;&#9;&#9;&#9;&#9;|&#10; fork()&#9;&#9;&#9;&#9;&#9;|&#10; |&#9;&#9;&#9;&#9;&#9;&#9;|&#10; 子进程----&amp;gt;做工作-----&amp;gt;结束(仆街)&#10;&#10; ps&#9;&#9;//可以查看进程&#10; ps -aux&#9;//查看所有进程信息&#10; 当系统启动之后首先会创建一个进程PID为1叫做初始进程(init)&#10;USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND&#10; USER&#9;&#9;运行该进程的用户&#10; PID&#9;&#9;&#9;进程ID号&#10; %CPU&#9;&#9;CPU的占用百分比&#10; %MEM&#9;&#9;内存的占用百分比&#10; VSZ&#9;&#9;&#9;占用虚拟内存&#10; RSS&#9;&#9;&#9;占用实际内存&#10; TTY&#9;&#9;&#9;进程运行的终端&#10; STAT&#9;&#9;进程的状态&#10; R&#9;&#9;运行状态&#10; s&#9;&#9;进程组,下面会有子进程&#10; S&#9;&#9;睡眠状态(可以中断)&#10; D&#9;&#9;睡眠状态(不可中断)&#10; Z&#9;&#9;僵尸状态&#10; X&#9;&#9;死掉的进程&#10; ...&#10; START&#9;&#9;启动的时间&#10; TIME&#9;&#9;占用CPU的时间&#10; COMMAND&#9;&#9;进程名&#10; &#10;============================================&#10;./a.out&#10;&#10;int max(int a, int b)&#10;{&#10; return a &amp;gt; b ? a : b;&#10;}&#10;&#10;int add(int a, int b)&#10;{&#10; return a + b;&#10;}&#10;&#10;int main(void)&#10;{&#10; add(13, 7);&#10; max(13, 7);&#10;&#10; return 0;&#10;}&#10;&#10; return 0;&#9;函数正常运行&#10; &amp;gt; 0&#9;&#9;&#9;函数有异常&#10; &amp;lt; 0&#9;&#9;&#9;函数有错误&#10;&#10;一个进程会有虚拟内存4Gb,实际上只占用了实际内存的4Kb&#10;----------------------------&#10;面试题&#10; 1.C语言的程序会把内存分为几个区?&#10; 5大区&#10; (栈区 堆区 常量区 全局区 代码区)&#10; char *p = &amp;#34;Hello World!&amp;#34;;&#10; static&#10;----------------------------&#10;&#10; 1Gb&#9;&#9;Kernel(内核)&#10; ----------------------&#10; 3Gb&#9;&#9;环境变量/命令行参数&#10; 栈区(从上往下分配)&#10; 空白空间&#10; 堆区(从下往上分配)&#10; 常量区(.RO&amp;lt;只读&amp;gt;)&#10; 全局区(.bss .data)&#10; 代码区(.text)&#10;================================&#10;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;</description></item></channel></rss>