1、引言
对于IT行业的从业者或学生而言,无论从事嵌入式开发、后端开发以及前端开发,Linux是无法绕开的操作系统。从实际开发和就业的角度,学Linux是从业的必备技能。我将对Linux的原理(操作系统的进程、线程、信号、通信等,文件系统,文件,动静态库)以及Linux开发所需要的计算机网络(主要TCP/IP模型)、MySQL(常规操作+部分核心原理(索引,事务等))进行博客撰写。
2、Linux的重要性
操作系统是一款进行软硬件管理的软件。操作系统对软硬件进行合理管理(手段),以达到为上层用户提供良好的、稳定的、安全的运行环境的目的。计算机本质上就是一个工具,它比较复杂,因而需要管理。
Linux版本
技术版本线:主版本.次版本.修正次数 ;2.6.32
中次版本偶数:稳定版本,奇数:测试版本
商业化版本线:CentOS、Ubuntu 、kail、红旗…
Linux是开源系统,有着丰富的开源社区和项目;在Linux上开发能够避免不必要的垃圾代码,降低开发成本。此外,也有很多顶级工程师,免费参与撰写系统,其理想在于开源、改变世界。理论上越新的商业化版本匹配的是越新的内核代码。
为什么开源?有什么好处?
Linux
操作系统3-5年不关机不会出故障,而Windoes
一般1-2月不关机就显示很卡;
Windows
的图形化界面对普通人很友好;
Linux
更安全、更稳定、效率更高,普遍被企业接收;
涉及到数据安全,Linux
有无后门一览无余,而Windows
由于是闭源很难发现。
开源 | 闭源 | |
---|---|---|
稳定性 | 较强 | 中等 |
安全行 | 开源修复比较快 | 修复速度比较慢 |
效率 | 较快 | 较低 |
人多了,将自己的代码暴露出去,自然有很多人帮忙指出问题并提供标准答案。
指令操作,所有平台都支持,只不过指令操作是Linux上专业程序员应该懂得。
3、基本指令
在学习基本指令前,需要了解几个知识。什么叫当前路径?即用户所处的路径。文件由下图组成:
文件的属性数据也是数据,因而文件 = 内容 + 属性
。
此外,/
是路径分割符。
绝对路径:麻烦,一般是在某些配置文件中,进行对某种文件 进行配置的时候采用;
相对路径:简单,一般学习、开发都能使用。
3.1 ls指令
语法: ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
-a //列出目录下的所有文件,包括以.开头的隐含文件。
-d //将目录象文件一样显示,而不是显示其下的文件。 如:ls -d 指定目录
-i //输出文件的i节点的索引信息。如ls -ai指定文件
-k //以k字节的形式文件的大小。如ls -aIk指定文件
-l //列出文件的详细信息
-n //用数字的UID,GID代替名称
-F //在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;
“=”表示套接字(sockets);
-r //对目录反向排序
-t //以时间排序
-s //在I文件名后输出该文件的大小
-R //列出所有子目录下的文件(递归)
-1 //一行只输出一个文件
一般只需掌握-l
和-a
的即够使用。
3.2 用户管理相关的命令
adduser name //新增用户
passwd name //用户密码设置
userdel name //删除用户
3.3 pwd
指令
当前用户所处的目录
3.4 mkdir
指令
3.5 touch
指令
在当前目录创建普通文件
3.6 cd
指令
Linux系统中,磁盘上的文件和目录被组成一棵树,每个节点都是目录或文件。
几乎所有的操作系统,管理文件的方式,基本都是采用多叉树的形式。(目录约束)
为什么我们可以“采用路径”的方式,进行定位文件?
例如:/home/bit/test.c
具有唯一性–>因为每一个节点,都只有一个父节点。
从根目录开始的叫绝对路径。
cd ~
:直接进入当前用户(whoami)的家目录。
cd -
:回到上一次所处的路径
注意:ctr + c
:终止程序运行。
通过yum install -y tree
来安装tree
,通过tree
来展示lesson107
下的文件:
3.7 stat
指令
上图,stat
指令只能查看文件的属性,具体如下:
-File:显示的文件名为test.c;
-Size:文件的大小;
-Blocks:文件test.c占用的数据块总数;
-IO Block:IO块的大小;
-Device:设备编号;
-Inode:Inode号;
-Links:链接数;
-Access:文件的权限;
任何一个文件,都会有三种时间,即ACM
- Access :表示文件被访问的时间。当文件内容被访问时,系统更新这个时间;
- Modify :表示文件内容被修改的时间。当文件中的内容被修改时,系统更新这个时间;
- Change:表示文件的状态时间。当文件的状态被修改时,系统更新这个时间,例如文件的链接数,大小,权限,Blocks数。
3.8 rm
指令
rm
删除普通文件test.c
。
3.9 redir
指令
redir
只能删除空目录,如上图的空目录test_05
。