1、Linux基础知识讲解linuxunix19731979X86架构可以使用1984谭宁邦教授的X86架构的Minix自由软件GNU计划Bash工作环境+gcc编译程序工具1984图形接口GUI19881991*Linux是是linus Torvalds 于于1991年年在在Intel 386上上由由minix改造改造并并带带GUI界面的,界面的,使用使用bash、gcc等自由等自由软件工具软件工具开发而来。开发而来。Linux系统安装-光盘安装1.启动pc,开机按下del按键2.进入bios,调整光盘启动为第一启动级别3.保存退出4.装入Centos 6.x i386的DVD在光盘中,重启电脑
2、Linux下载地址:https:/www.centos.org/download/安装图解:http:/ 由第一行开始显示文件内容tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!nl 显示的时候,顺道输出行号!more 一页一页的显示文件内容less 与 more 类似,但是比 more 更好的是,他可以往前翻页!head 只看头几行tail 只看尾巴几行chmod修改文件权限mv:移动文件登录用户名主机名标识符:#管理员,普通用户当前目录Linux基础-文件/目录管理文件-windows中文件目录:windows中的文件夹Linux基础-用户/用户组管理Linux系统是一
3、个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统创建修改修改删除useraddusermoduserdelpasswd(改密码)创建修改修改删除groupaddgroupmodgroupdelLinux基础-磁盘管理查看当前磁盘配额添加磁盘划分区管理磁盘 df:列出文件系统的整体磁盘使用量du:检查磁盘空间使用量mount:查询系统中已经挂载的设备mkdir/mnt/cdrom:建立挂载点 mount t iso9660/dev/cdrom /mnt/cdrom:挂载光盘fdisk/dev/hdc:进入磁盘划分程序mk
4、fs t ext3 /dev/hdc6:格式化分区 Linux基础-网路配置DEVICE=eth0#网卡设备名称网卡设备名称ONBOOT=yes#启动时是否激活启动时是否激活 yes|noBOOTPROTO=static#协议类型协议类型 dhcp bootp noneIPADDR=192.168.1.90#网络网络IP地址地址NETMASK=255.255.255.0#网络子网地址网络子网地址GATEWAY=192.168.1.1#网关地址网关地址BROADCAST=192.168.1.255#广播地址广播地址HWADDR=00:0C:29:FE:1A:09#网卡网卡MAC地址地址TYPE=
5、Ethernet#网卡类型为以太网网卡类型为以太网DEVICE=eth0ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.1.90NETMASK=255.255.255.0GATEWAY=192.168.1.1BROADCAST=192.168.1.255HWADDR=00:0C:29:FE:1A:09TYPE=Ethernet#vi/etc/sysconfig/network-scripts/ifcfg-eth0#service network restart#ifconfig Linux基础-vim、vi编辑所有的 Unix Like 系统都会内建 vi 文
6、书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器命令模式(命令模式(Command mode),输入模式(输入模式(Insert mode)和底线命令模式底线命令模式i 切换到输入模式,以输入字符。x 删除当前光标所在处的字符。:切换到底线命令模式,以在最底一行输入命令方向键方向键,在文本中移动光标 HOME/END,移动光标到行首/行尾 Page Up/Page Down,上/下翻页ESC;退出输入模式,切换到命令模式q 退出程序w 保存文件Linux基础-yum软件安装1.首先备份/etc/yum.repos.d/CentOS-Base.repo#mv/
7、etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup2.下载对应版本repo文件,放入/etc/yum.repos.d/3.运行以下命令生成缓存#yum clean all(清除下载的安装包)#yum makecache(生成本地缓存)配置配置163 yum源源网易(网易(163)yum源是国内最好的源是国内最好的yum源之一源之一,无论是速度还是软件版本,都非常的,无论是速度还是软件版本,都非常的不错不错,将将yum源设置为源设置为163 yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版
8、,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法本无法找到找到repo下载地址:CentOS5:http:/ yum.repos.d#ls /此路径下事先有配置文件的模板rhel-source.reporootlocalhost yum.repos.d#cp rhel-source.repo rhel6.repo/配置文件必须以.repo结尾rootlocalhost yum.repos.d#vim rhel6.reporhel-6 /中括号里内容要求唯一,但不要出现特殊字符name=Red Hat Enterprise Linux 6 /此为描述信息,可以看情况填写baseur
9、l=file:/media/此项为yum软件仓库位置,指向光盘挂载点enabled=1 /此项为是否开启,1为开启0为不开启gpgcheck=1 /此项为是否检查签名,1为监测0为不检测gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release /签名认证信息的路径谢谢!Shell 编程一个用C语言编写的程序,Shell是一种命令语言,也是一种程序设计语言一个应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就
10、可以了Shell 种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)Bourne Again Shell(/bin/bash)C Shell(/usr/bin/csh)K Shell(/usr/bin/ksh)Shell for Root(/sbin/sh)Bash是大部分linux默认的shell,且免费方便编写一个shell脚本(text.sh)打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用 php 写 shell 脚本,扩展名就
11、用 php 好了#!/bin/bash#标注使用/bin/bash作为执行命令解释器echo“hello world!”#直接输出hello word!chmod+x./text.sh#使脚本具有执行权限./text.sh#执行脚本vim编辑脚本text.sh执行脚本 text.sh直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有/bin,/sbin,/usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用./test.sh 告诉系统说,就在当前目录找。She
12、ll变量变量赋值your_name=“”#给变量赋值,变量名和等号之间不能有空格for fire in ls/etc#将/etc下目录的文件名循环出来使用一个定义过的变量,只要在变量名前面加美元符号即可your_name=“llz”echo$your_nameecho$your_name变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界your_name=tom echo$your_name your_name=alibaba echo$your_name 这样写是合法的,但注意,第二次赋值的时候不能写$your_name=alibaba,使用变量的时候才加美元符(
13、$)readonly myUrl#只读变量,运行脚本后结果如下:删除变量 unset,unset 命令不能删除只读变量变量类型1)局部变量局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。2)环境变量环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。3)shell变量变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行Shell字符串字符串可以用单
14、引号,也可以用双引号,也可以不用引号 单引号字符串的限制:单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;单引号字串中不能出现单引号(对单引号使用转义符后也不行)。双引号的优点:双引号里可以有变量 双引号里可以出现转义字符pkstring=abcdecho$#string#输出 4string=runoob is a great site echo$string:1:4#输出 unoo string=runoob is a great company echo expr index$string is#输出 8 Shell 数组bash支持一维数组(不支持多维数组),并且没有限定
15、数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。数组名=(值1 值2.值n)定义数组array_name=(value0 value1 value2 value3)array_name=(value0 value1 value2 value3)array_name0=value0 array_name1=value1 array_namen=valuen$数组名下标 读取数组#取得数组元素的个数 length=$#array_name#或者 length=$#array_name*#取得数组单个元素的长度 len
16、gthn=$#array_namen echo$var%/*:#、#表示从左边开始删除。一个#表示从左边删除到第一个指定的字符;两个#表示从左边删除到最后一个指定的字符。%、%表示从右边开始删除。一个%表示从右边删除到第一个指定的字符;两个%表示从左边删除到最后一个指定的字符。删除包括了指定的字符本身echo$var%/*从左边第几个字符开始,及字符的个数从左边第几个字符开始,及字符的个数 echo$var:0:5 Shell 传递参数我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此
17、类推实例实例以下实例我们向脚本传递三个参数,并分别输出,其中$0 为执行的文件名:#!/bin/bash#author:菜鸟教程#url: echo Shell 传递参数实例!;echo 执行的文件名:$0;echo 第一个参数为:$1;echo 第二个参数为:$2;echo 第三个参数为:$3;为脚本设置可执行权限,并执行脚本,输出结果如下所示:$chmod+x test.sh$./test.sh 1 2 3 Shell 传递参数实例!执行的文件名:./test.sh 第一个参数为:1 第二个参数为:2 第三个参数为:3 Shell 运算符Shell 和其他编程语言一样,支持多种运算符,包括
18、:算数运算符关系运算符布尔运算符字符串运算符文件测试运算符运算符;http:/ 命令http:/ 函数 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式如下:function funname()action;return int;Shell 文件包含和其他语言一样,Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。Shell 文件包含的语法格式如下:.filename#注意点号(.)和文件名中间有一空格或source filename创建两个 shell 脚本文件。test1.sh 代码如下:#!/bin/bash#author:菜鸟教程#url:url=http:/test2.sh 代码如下:#!/bin/bash#author:菜鸟教程#url:#使用.号来引用test1.sh 文件./test1.sh#或者使用以下包含文件代码#source./test1.shecho 菜鸟教程官网地址:$url