0%

学习Shell命令行总结

了解linux系统内核

内核的主要作用

  • 系统内存管理
  • 软件程序管理
  • 硬件设备管理
  • 文件系统管理

什么是虚拟内存
内核通过硬盘上的存储空间来实现虚拟内存,这块区域称为交换空间(swap space)。
平常使用的都是阿里云,发现阿里云把swap的空间为0。查看官方文档后发现如果使用普通云盘,不建议使用
swap分区,原因是因为开启SWAP可能会因频繁换页操作,导致IO性能下降,如果内存足够的情况下,建议关闭
swap 分区。

软件程序管理
Linux操作系统将运行中的程序称为进程。进程可以在前台运行,将输出显示在屏幕上,也可以在后台运行。
内核创建第一个进程称为init进程,来启动系统上其他进程,并将其加载到虚拟内存中。

一些Linux发行版使用一个表来管理在系统开机时要自动启动的进程。在Linux系统上,这个表通常位于/etc/inittab中。
另外一些系统则采用/etc/init.d目录,将开机时启动或停止某个应用的脚本放在这个目录下。

Linux 操作系统的init系统采用了运行级。运行级决定了init进程运行/etc/inittab文件或者/etc/rcX.d目录中定义好
的某些特定类型的进程。Linux操作系统有5个启动运行级。(但是在使用centos7的时候发现有7个运行级别0-6)

CentOS系统有7个运行级别(runlevel)

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

不过在centos7中使用Systemd 取代init,init 是串行的,启动速度比较慢。

硬件设备管理
内核的另外一个作用就是管理硬件设备。如果使用硬件,都需要在内核代码中加入其驱动程序代码。在Linux中有两种方法插入设备驱动

  • 编译进内核的设备驱动代码
  • 可插入内核的设备驱动代码(这种方式比较方便,利于维护)

文件系统管理
Linux 内核通过支持通过不同类型的文件系统从硬盘中读写数据。这样可以支持多种文件系统,需要内核在编译时就加入可能用到的文件系统的
支持。

Shell 的种类
在Linux系统上,通常由好几种Linux Shell 可用。不同的Shell有不同的特性,有些利于创建脚本,有些利于管理进程。

  • ash 一种运行在内存受限环境中的简单轻量级shell,与bash shell完全兼容
  • korn 一种与Bourne shell 兼容的编程shell,支持如关联数组和浮点运算等一些高级的编程特性
  • tcsh 一种将C 语言中的一些元素引入到shell脚本中的shell
  • zsh 一种结合了bash、tcsh和korn的特性,同时提供高级编程特性、共享历史文件和主体话提示符的高级shell。在Mac 下面使用zsh 还是非常方便的。

Linux 图形化桌面 基本上用不到,就略过了。

文件路径

  • 相对路径
  • 绝对路劲
    pwd 命令查询当前所在的目录
    ls -F 显示出文件夹和普通文件
    ls -F -R -R 递归文件夹

文件拷贝
copy -R 拷贝整个目录和文件

链接文件

  • 符号链接
  • 硬链接
    ln -s
    ln

2018年07月11日11:20:39(更新)

环境变量

  • 全局变量
  • 局部变量