一、OS(operating system)概述
1.1 完成的OS包含2部分:Kernel + Application
1.2 狭义上的OS指的是Kernel
1.3 OS的接口分类:
GUI:Graphic User Interface GNome:c,gtk开发环境 KDE:c++,qt开发环境 XFCE:轻量级桌面 CLI:Command Line Interface 命令行接口使用的shell类型:bash,zsh,sh,csh,tcsh,ksh...
二、操作系统功能
驱动程序 进程管理 安全 网络功能 内存管理 文件系统 ......
三、 API与ABI接口
应用程序 | |<libcall> libraries | |<syscall> (operate system) kernel | | hardware API: Application Program Interface 程序员面对的编程接口 POSIX: Portable Operating System , 可移植操作系统 ABI: Application Binary Interface , 程序应用者面对运行程序的接口 GNU: 源码需要编译成为二进制格式 ; gcc,glibc,vi,linux都是源码格式.
四、Linux发行版:数百种之多
Linux Distribution Timeline Debian: ubuntu: mint: knopix: Slackware: S.u.S.u: SLES:企业版 OpenSUSE: RedHat: RedHat Enterprise Linux:RHEL CentOS:Community ENTerprise OS Fedora Core:每6个月发行一个版本 Gentoo ArchLinux 软件程序版本号:major.minor.release linux kernel: www.kernel.org 0.99,1.0,2.0,2.2,2.4,2.6,3.0,4.0
五、CPU主要架构:
X86 X64 m68000(m68k) arm ultrasparc power:IBM-aix powerpc(ppc) alpha:hp-ux
六、开源协议概述
Stallman : GNU
GPL : General Public License LGPL : Lesser GPL FSF : Free Software Foundation BSD : 1.如果二次发布的产品中包含源代码,则在源代码中必须带有原来的代码中的BSD协定; 2.如果二次发布的产品是二进制格式的库或程序,则需要在发布的文档或版权声明中说明包含原来的代码中的BSD协定; 3.不可以用开源代码的作者或组织,以及原来的产品的名字做市场推广; Apache : ASF : Apache Software Foundation
七、程序管理与程序包管理器:
1、程序组成部分:二进制文件;配置文件;库文件;帮助文件; PS : 二进制文件、库文件:可执行文件,其中二进制文件可单独执行;库文件不能独立执行,只能被调用时执行. 配置文件、帮助文件:可被查看其内容的文件 2、程序包管理器: 程序的组成文件打包成一个或有限的几个文件; 安装; 卸载; 查询; eg. Debian : dpkg, apt-get RedHat : rpm, yum, dnf S.U.S.E : rpm, zypper ArchLinux : Gentoo : LFS : Linux From Scratch Kali :
八、centos镜像站点:
http://mirrors.aliyun.com http://mirrors.163.com http://mirrors.sohu.com
九、Linux用户界面:
GUI: 图形界面 GNome KDE CLI: 命令行接口 [root@localhost ~]# COMMAND root : 当前登录用户 localhost: 非完整格式的当前主机的主机名。完整格式为:localhost.localdomain ~ : 用户当前所在的目录(current directory),也称为工作目录(working directory) # : root用户的命令提示符,拥有最高权限,能执行所有操作,prompt $ : 普通用户的命令提示符;普通用户不具有管理权限,不能执行系统管理类操作 bash, zsh, sh, csh, tcsh, ksh 查看系统当前使用的shell类型: [root@localhost ~]# echo $SHELL /bin/bash [root@localhost ~]#
Linux查看IP地址:
centos 7 : [root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:91:1e:d0 brd ff:ff:ff:ff:ff:ff inet 192.168.206.128/24 brd 192.168.206.255 scope global dynamic ens33 valid_lft 1638sec preferred_lft 1638sec inet6 fe80::4f33:4130:8b88:c382/64 scope link valid_lft forever preferred_lft forever [root@localhost ~]# 或者使用下面命令,查出的信息跟上面一样。 ~]# ip addr ~]# ip addr list ~]# ip addr show ~]# ip a ~]# ifconfig (centos 7 需要安装 net-tools 工具: yum -y install net-tools) centos 6: ~]# ifconfig
linux关闭防火墙:
centos 7: ~]# systemctl disable firewalld.service ~]# systemctl stop firewalld.service centos 6 : ~]# service iptables stop ~]# chkconfig iptables off
关机命令:centos 7: ~]# systemctl poweroff
重启命令:centos 7: ~]# systemctl reboot
十、Linux的终端设备: terminal
物理终端: console 系统装完后,直接用鼠键+显示器接入,进行操作的那个界面,也叫控制台 虚拟终端: tty 默认有6个虚拟终端,按组合键进行切换 Ctrl+Alt+F[1-6] 图形终端: centos 6 : Ctrl+Alt+F7 centos 7 : 在哪个虚拟终端上启动图形界面,图形终端即位于哪个虚拟终端(当前虚拟终端切换为图形终端) 串行终端: ttys 系统不需要使用图形界面的情况下,可以不需要显卡。主板上的任何一个串口基于特定的速率进行字符交换. 伪终端 : pts 通过SSH远程连接系统的操作界面;在图形界面上启动的CLI窗口.
十一、Linux哲学思想:
Stallman : 自由学习和修改、自由使用、自由分发、自由创建衍生版;
1. 一切皆文件,吧几乎所有资源抽象为文件形式。包括硬件设备、通信接口;
对文件的操作: open() , read() , write() , close() , delete() , create() 物理终端: /dev/console 虚拟终端: /dev/tty# [1,6] 串行终端: /dev/ttys# 伪终端 : /dev/pts/# 查看当前操作界面的终端类型、终端序号: [root@localhost ~]# tty /dev/pts/0 [root@localhost ~]# 启动设备后,在其上关联一个用户接口程序,即可实现与用户交互。 查看接口程序: ~]# echo $SHELL
2. 由众多功能单一的程序组成: 一个程序只做一件事,并且做好;组合小程序完成复杂任务;
3. 尽量避免跟用户交互;
目标:易于以编程的方式实现自动化任务;
4. 使用文本文件保存配置信息;
十二、命令的语法通用格式:
# COMMAND OPTIONS ARGUMENTS 1、COMMAND: 发起一个命令:请求内核将某个二进制程序运行为一个进程; 程序运行为进程; 命令的二进制静态转为动态,有生命周期; 命令本身是一个可执行的程序文件,是二进制格式文件,有可能会调用共享库文件; 多数系统程序文件存放在: /bin , /sbin , /usr/bin , /usr/sbin , /usr/local/bin , /usr/local/sbin 普通命令 : /bin , /usr/bin , /usr/local/bin 管理命令 : /sbin , /usr/sbin , /usr/local/sbin 共享库: 大多数存放在:/lib , /lib64 , /usr/lib , /usr/lib64 , /usr/local/lib , /usr/local/lib64 32bits的库:/lib , /usr/lib , /usr/local/lib 64bits的库:/lib64 , /usr/lib64 , /usr/local/lib64 命令必须遵循特定格式规范:ELF格式(Linux) [root@localhost ~]# file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=3d705971a4c4544545cb78fd890d27bf792af6d4, stripped [root@localhost ~]# 命令: ~]# file /bin/ls 查看文件内容格式的类型 命令分为两类: 内置命令:builtin , 由shell程序自带的命令;没有可执行文件;PATH路径中没有内置命令; 外部命令:独立的可执行程序文件,文件名即命令名;有可执行文件;放选择性在PATH路径中; shell程序是独特的程序,负责解析用户提供的命令; 环境变量: PATH: 从哪些路径去查找用户键入的命令字符串所对应的命令文件; 查找系统当前的PATH路径: [root@localhost ~]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/nginx/sbin/:/root/bin 查找次序:自左而右 查看命令类型(内置命令/外部命令): type COMMAND [root@localhost ~]# type cd cd is a shell builtin [root@localhost ~]# [root@localhost ~]# type tree tree is /usr/bin/tree 2、OPTIONS: 指定命令的运行特性; 选项有两种表现形式; 短选项:- 有些命令没有短选项; 如果同一命令同时使用多个短选项,多数可合并; ~]# ls -l -d /var ~]# ls -ld /var 长选项:-- 长选项不能合并; PS:有些选项可以带参数,称为选项参数; 3、ARGUMENTS: 命令的作用对象,命令对什么生效; 不同的命令,参数不一样; 有些命令可同时带多个参数,多个之间以空白字符分隔; ~]# ls -ld /var /etc /usr
十三、获取命令的使用帮助:
1、内部命令: help COMMAND ~]# help type 2、外部命令: <1> 命令自带简要格式的使用帮助; # COMMAND --help <2> 使用手册;manual 大多数手册放置位置:/usr/share/man 并非每个COMMAND在所有章节下都有手册 压缩格式的文件,有章节之分: man1 , man2,... 1: 用户命令 2: 系统调用 3: C库调用 4: 设备文件及特殊文件 5: 文件格式(配置文件格式) 6: 游戏使用帮助 7: 杂项 8: 管理工具及守护进程 # man COMMAND man手册章节结构: SECTION: NAME : 命令的功能性说明 SYSNOPSIS : 语法格式 DISCRIPTION : 描述 OPTIONS : 选项 EXAMPLES : 使用示例 AUTHOR : 作者 BUGS : 报告程序BUG的方式 SEE ALSO : 参考 ... ... SYNOPSIS: [] : 可选内容 <> : 必须提供的内容 ... : 同类内容可出现多个 查看COMMAND的man手册在第几章节: whatis COMMAND [root@localhost ~]# whatis passwd sslpasswd (1ssl) - compute password hashes passwd (1) - update user's authentication tokens [root@localhost ~]# whatis 命令执行过程式查询数据库进行的; 手动更新数据库: ~]# makewhatis (centos 6) ~]# mandb (centos 7) man命令打开手册后的操作方法: 翻屏: 空格键:向文件尾翻一屏 b : 向文件首部翻一屏 Ctrl + d : 向文件尾部翻半屏 Ctrl + u : 向文件首部翻半屏 回车键 : 向文件尾部翻一行 k : 向文件首部翻一行 G : 跳转至最后一行 #G : 跳转至指定行 1G : 跳转至文件首部 文件内容搜索: /keywords 从文件首部向文件尾部依次查找,不区分大小写 ?keywords 从文件尾部向文件首部依次查找 n : 与查找命令方向相同 N : 与查找命令方向相反 q : quit, 退出 man 选项: -M /PATH/TO/SOMEDIR : 到指定目录下查找命令手册并打开; <3> info COMMAND 获取命令的在线文档,并不是每个命令都有; <4> 很多应用程序会自带帮助文档: /usr/share/doc/APP-VERSION README : 程序的相关信息 INSTALL : 安装帮助 CHANGES : 版本迭代时的改动信息 <5> 主流Linux发行版官方文档 <6> 程序的官方文档 <7> google keyword filetype : pdf keyword site:domain.tld <8> 书籍的出版社 O'Reiley Wrox 机械工业、电子工业、人邮、清华大学、水利水电