一、Linux基础及安装
-
LINUX是在UNIX基础上开发,具有UNIX全部功能。
-
**Linux特点:**开放性、多用户、多任务、出色的稳定性、良好的用户界面、设备独立性、丰富的网络功能、安全性、可移植性
-
Linux由4个主要部分组成:内核、Shell、文件系统、应用程序
-
**内核:**硬件方面:控制硬件设备、管理内存、通过接口、处理基本I/O;软件方面:管理文件系统、为程序分配内存和CPU时间。
-
**Shell:**系统的用户界面、命令解释器、编程语言。
-
文件系统:/为根目录 目前流行的文件系统:ext2、ext3、fat等
-
**应用程序:**应用程序的程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。
-
Linux是多用户系统,用户分为根用户(系统管理员)和普通用户两大类
-
文本界面下注销
$ logout $ ctrl+d $ exit
-
Linux的运行级别
0-关机(千万不要把initdefault 设置为0)
1-单用户模式
2-多用户模式,但是没有NFS
3-完全多用户模式
4-没有用到
5-X11
6-重启(千万不要把initdefault设置为6) -
Linux的基本命令:
-
passwd #更改用户密码
--help
man #显示系统稳定中的man也内容 info # 超文本系统 who #用于查看当前登录到系统的用户信息 uname #显示正在使用的Linux系统信息 date #显示或设置系统时间 cal #在屏幕上输出日历信息 echo #用于回显输入内容 clear #清除shell窗口中的内容 su #用户进入到系统后,切换到其他用户,使用su命令
-
-
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
-
ping命令的运用
1、在“开始”——“运行”中输入“cmd”进入XP的命令提示符模式。
2、输入命令:ping 127.0.0.1观察结果
得到回复的数量: TTL值是:
3、先在网上邻居查看本机IP,如192.168.1.61然后ping 本机IP观察结果。
得到回复的数量: TTL值是:
4、ping 本局域网的其它IP,如192.168.1.62,观察结果
得到回复的数量: TTL值是:
5、ping我校的默认DNS服务器58.20.127.238
得到回复的数量: TTL值是: 说明经过了几个路由:
6、ping www.baidu.com
百度网服务器的IP地址是: TTL值是: 说明经过了几个路由:
7、ping www.csdn.net
百度网服务器的IP地址是: TTL值是: 说明经过了几个路由:
8、输入ping 192.168.1.62 –t 观察结果:
9、输入ping 192.168.1.62–l 3000 观察结果:
10、输入ping 192.168.1.62–n 10 观察结果:
小结:ping命令的主要用途是:
ipconfig命令的运用
1、输入命令 ipconfig 可以得到本机的下列信息:
1)本机的IP地址是:
2)本机的子网掩码是:
3)本机网卡的物理地址是:
4)本机的默认网关是:
2、输入ipconfig /all,观察结果。
3、输入Ipconfig/release观察结果
4、输入IPconfig/renew观察结果
-
Linux系统在中国用户使用最多的版本是CentOS
-
VMware虚拟网络中的网络模式 桥接 网络地址转换 NAT
二、文件系统
-
Linux文件系统采用的是树形结构
-
Linux支持多种文件系统
-
Linux文件系统提供丰富的文件和目录操作命令
-
/bin: 存放二进制可执行命令目录 /home: 用户主目录的基点目录,默认情况每个用户主目录都设在该目录下,如默认情况下用户user01的主目录是/home/user01;AHE /lib:存放标准程序设计库目录,又叫动态链接共享库目录目录中文件类似windows里的dll文件; /etc: 存放系统管理和配置文件目录 /dev: 存放设备特殊文件目录,如声卡文件、磁盘文件等 /usr: 最庞大的目录,存放应用程序和文件目录/proc: 虚拟目录,是系统内存的映射,可直接访问这个目录来获取系统信息; /root: 系统管理员的主目录 /var: 存放系统产生的经常变化文件目录,例如打印机、邮件、新闻等假脱机目录、日志文件、格式化后的手册页以及一些应用程序的数据文件等等; /tmp: 存放公用临时文件目录
-
EXT文件系统
- 高可用性
- 数据的完整性
- 文件系统的速度
- 数据转换
- 多种日志模式 ext3有三种日志模式
-
文件类型
- 普通文件
- 目录文件
- 设备文件
- 符号链接文件
-
路径
- 绝对路径
- 相对路径
-
文件操作命令
cat #显示文件命令 more # 该命令显示文本文件的内容,一次显示一屏,满屏后 停下来 less #与more命令相似,分屏显示文件的内容less命令允许用户向前 (PageUp)或向后(PageDown)浏览文件。在less命令提示符下按q键退出。 head #用于查看一个文本文件的开头部分,行数由参数值决定,默认值是10 tail #用于查看一个文本文件的末尾部分,行数由参数值决定,默认值是10 grep #grep家族包括grep、egrep和fgrep。egrep是grep的扩展,可使用扩展的字符串模式进行搜索,fgrep就是fixed grep或fast grep,把所有字母看作单词,不识别正则表达式。如果没有指定文件名,grep命令会搜索标准输 sort #排序 uniq #检查及删除文本文件中重复出现的行 comm #对两个已经排好序的文件进行比较 diff #比较文本文件,并找出他们的不同 cp #复制 rm #删除 mv #移动 wc #套件字节数、字数、行数 find # 查找符合条件的文件和目录 bzip2 # .bz2的压缩程序,并删除原始的文件 gzip # .gz的压缩程序,并且删除原始的文件 tar # 解开备份文件内的文件 cd # 切换目录 pwd # 显示当前目录 ls # 列出目录内容 mkdir # 创建目录 rmdir # 删除目录 chmod [mode] 文件或目录名 #修改文件权限 hgrp[选项]...所属组 文件或目录#改变指定文件所属的用户组 ln #链接文件命令
三、Vim编辑器
-
Linux系统提供了如ed、ex、vi和emacs等编辑器按功能可以将编辑器分为两大类:
行编辑器 (ed、ex)
全屏幕编辑器 (vi、emacs)
vi属于全屏幕编辑器,是Linux系统的第一个全屏幕交互式的编辑程序。 -
vim编辑器没有菜单,只有命令,提供三种基本的工作方式:
- 命令模式
- 插入模式
- 末行模式
-
进入vim
$vim $vim filename $vim +n filename $vim +/pattern filename
-
退出vim
命令模式下 连续按两下大写Z 末行模式下 :q :wq :q!
-
移动光标
HJKL 左下上右
-
文本删除
-
文本的复制与粘贴
-
文本的移动
-
文本的查找与替换
-
重复与取消
-
vim中执行shell命令
-
文件的读写
四、系统管理基础
-
系统启动
-
系统运行
- 系统运行级别:
- 0:系统停机状态,默认运行级别不能设为0,否则不能正常启动
- 1:单用户工作状态,root权限,用于系统维护,禁止远程登录
- 2:多用户状态(没有NFS支持)
- 3:完全的多用户状态(有NFS)
- 4:系统未使用,保留
- 5:多用户模式,X11控制台,登录后进入GUI模式
- 6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
- 运行级别切换
- 查看运行级别 $ runlevel
- 进入其他运行级别 $init N
- 系统关闭 shutdown
- 系统运行级别:
-
用户管理
-
Linux系统用户三种类型:超级用户、普通用户、特殊用户
-
用户管理方法
(1) 通过GUI方式管理(2) 通过修改用户管理相关配置文件管理
(3) 通过系统管理命令管理
-
-
设备管理
- Linux系统中设备分为:字符设备、块设备、网络设备
- 磁盘和分区管理命令
- fdisk 创建、删除、更改分区
- mkfs 格式化
- fsck 修复
- df 检查文件系统的磁盘空间占用
- du 统计目录所占磁盘空间的大小
- quota 显示磁盘已使用的空间与限制
- 存储设备的挂载与卸载
- 挂载设备 mount
- 卸载设备 umount
- 设备自动挂接
-
进程管理
-
系统进程和用户进程
- ps 进程查看
- top 显示系统当前的进程和其他状况
- renice 在命令执行时调整其优先权
- wait 对一个进程的等待
- sleep 将进程挂起一段时间
- at 实现指定时刻执行指定的命令序列
- cron 按一定时间自动完成任务调度
- corntab 用于安装、删除或者列出用于驱动cron后台进程的表格
- kill 中断一个前台进程
-
日志管理
- Linux有三个主要的日志子系统:连接时间日志子系统、进程统计日志子系统、错误日志子系统。
五、网络管理及应用
六、shell编程
- 通配符 * 代表任意字符串 ?代表单个字符 []代表指定的一个字符范围
- 引号 单引号作为普通字符出现 双引号特殊字符保留特殊功能 反引号被shell解释为命令
- 注释符 #
- 别名 alias cdir=‘cd /home/user/dir’ 取消别名 unalias
- 命令历史 history
- 重复执行命令历史中指定的命令 !+命令编号
- shell脚本执行方式
- 为脚本文件加上可执行权限,然后在命令行直接输入shell脚本文件名执行
- sh shell脚本名
- .shell脚本名
#!/bin/bash
#this script is to test shell running
date
cd /home/user/dir
echo"The working directory is:"
pwd
#end
-
shell变量
-
用户自定义变量
var=hello echo $var hello var="hello world" echo $var hello world var=1+2 echo $var 1+2
-
清除变量
unset var
-
-
环境变量
- 查看环境变量 env
-
特殊变量
**$#😗*表示传递给脚本的实际参数个数
**$ : ∗ ∗ 当前 s h e l l 脚本的进程号。 ∗ ∗ :**当前shell脚本的进程号。 ** :∗∗当前shell脚本的进程号。∗∗*😗*位置参数的值,各个参数之间用环境变量IFS中定义
的字符分隔开。
**$@😗*也表示位置参数的值,它不使用IFS环境变量,所以当IFS为空时,参数值不会结合在一起。** ! : ∗ ∗ 上一个后台命令的进程号。 ∗ ∗ !:** 上一个后台命令的进程号。 ** !:∗∗上一个后台命令的进程号。∗∗?😗*执行最后一条命令的退出状态
七、 C编程
-
首先选择编辑器 VIM
-
然后选择编译器 GCC
-
选择调试器 GDB
-
利用程序维护工具进行程序维护 make
-
预处理-编译-汇编-链接
-
.c-.i-.s-.o
-
编写程序将a、b、c三个字符压入堆栈,然后依次从堆栈中弹出三个字符并打印在屏幕上。
/* stack.c */ char stack[512]; int top = -1; void push(char c) { stack[++top] = c; } char pop(void) { return stack[top--]; } int is_empty(void) { return top == -1; } /* main.c */ #include <stdio.h> void push(char); char pop(void); int is_empty(void); int main(void) { push('a'); push('b'); push('c'); while(!is_empty()) putchar(pop()); putchar('\n'); return 0; }
将两个文件编译链接成可执行文件main并运行
- gcc main.c stack.c -o main
- ./main
- 输出 cba
- gcc -c stack.c
- gcc -c main.c
- gcc -o main mian.o stack.o
- ./main
- 输出 cba
-
程序中的错误分为三类:编译时错误、运行时错误、逻辑错误和语义错误
-
程序调试工具 gdb