Linux 学习
GNU起源,以及和Linux的关系:
在Unix逐渐收费和商业闭源时期,一些群众模仿Unix的界面和使用方式,从头做一个开源的版本这个计划就是GNU,在GNU计划中 诞生了GCC编译器和Emacs编辑器 。
后来人们在GNU计划下做了很多项目,基本实现了当初的目标。但是GNU系统缺少操作系统的内核,一直没有完成。后来一位叫Linus的大神横空出世,开发了Linux系统内核,与之前的GNU双剑合璧,Linux操作系统也由此而来,随后衍生出两大派系debian和redhat
两大系列 | 主要版本 | 包名 | 管理工具 | 处理单个软件包 | 装包例子 |
---|---|---|---|---|---|
debian | Ubuntu,Debian | .deb | apt-get,apt | dpkg | apt install nm |
redhat | CentOS,Redhat,Fedora | .rpm | yum | rpm | yum -y instl nm |
Linux系统启动过程:
-
内核引导 :打开电源bios开机自检,操作系统接管硬件后
首先读入/boot目录下的内核文件。
-
运行init: 系统所有进程的起点,首先读取/etc/inittab; 按照运行级别运行【Linux系统有0-6个运行级别】见下文:
-
系统初始化: 执行init配置文件中的si::sysinit/ etc/rc.d/ rc.sysinit,它是bash shell的脚本,作用就是完成系统初始化的工作。
-
建立终端:rc执行完毕后,返回init,这时基本系统环境都已经设置好了,各种daemon线程都已经启动了,init接下来会打开6个终端,以便用户登录系统。【tty1~6】
-
用户登录系统:三种登录方式1、命令行2、ssh登录3、图形界面登录。(命令行和图形界面的切换方式:ctrl+alt+F1-6,按ctrl+alt+F7换回图形界面形式)
Linux系统有7个运行级别(runlevel):
- 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
- 运行级别2:多用户状态(没有NFS)
- 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台,登陆后进入图形GUI模式
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
文件管理:
根目录下常见的一级目录:
boot:启动,包含kernel。 root:超级管理员目录
bin:里面是二进制文件,包含命令。sbin:超级管理员的命令
run:里面是运行时文件。 tmp: 里面是临时文件
home:包含所有的Linux用户,用户之间的文件不共享。
**etc:**配置文件
文件类型:
-: 普通文件,比如二进制文件,可执行文件,.txt文件等。
d: 目录文件
**l:**链接文件,软硬链接
**b:**块设备文件,比如硬盘
c: 字符设备文件,比如键盘,鼠标 p:pipe管道文件。 s:socket文件。
常见命令:
ls -l / 长格式查看root ; cd: change dir
mkdir -p :创建多级目录时将parent也创建出来。自动创建父级目录。
cp:用法: cp [‘一个或多个’文件或目录] [目标文件或目录] -参数
复制,一次复制多层级目录时 :-r
ifconfig: 显示或设置网络设备。
软件装卸:apt-get install ··; apt-get remove··; apt-get purge··;apt-get update;apt-get upgrade ;apt-cache search package
更改用户名:
usermod -l 【新名】 【旧名】 在root权限下
如果被进程占用可以: kill -9 【进程号或者进程名】
查看更换结果:cat /etc/passwd
awk文本编辑器:
像使用Java代码一样的强大–
awk -F “:” ‘BEGIN{print “name,shell”}{print $1 “\t|” }END{print “打印结束”}’ /etc/passwd
- -F:是让用户输入分割符 如果不用-F 默认以空格分隔字符
- $ 【数字】 : 打印分割后的第几个字符,如果写0意味着全部打印。
awk '/root/ {print $0}' /etc/passwd
打印 与root相关的所有信息
内置变量:菜鸟编程中详细罗列, 其中:NF 来浏览记录的域的个数,NR已读的记录数。