Linux基础学习

Linux基础学习
1.初学者建议
注意:linux与java一样严格区分大小写.
由于linux中硬件以及软件都是以文件的形式存放.所以这里新增一块网卡.用eth0.
linux中不靠扩展名区分文件类型(没有扩展名概念),但是为了让使用者更容易区分文件类型以下几种类型都写有扩展名
Linux中所有的存储设备都必须挂载后才能使用,包括硬盘U盘和光盘(即计算机插入u盘光盘等必须要手动分配盘符才能使用.).
压缩包:.gz,.bz2,.tar.bz2,.tgz等
二进制软件包:.rpm
网页文件:.html,.php
脚本文件:.sh
配置文件:.conf
ifconfig eth0 192.168.64.128
配置完成:
注意这里虽然是生效了但是这个是临时生效,要想永久改变则需要修改配置文件.
这里修改后重启系统会丢失.
(1)使用命令提示按键:tab,例如说是ifconfig 输入if 按下tab就会提示以if开头的几个命令,例如ifconfig,ifcfg,ifdown,ifup等
(2)使用tab可以方便补充完整输入内容,例如ls an按下tab就会补充完整 ls anaconda-ks.cfg
(3)linux中所有的内容都是以文件形式保存,包括硬件.
光盘文件是/dev/sr0等
硬盘文件是/dev/sd[a-p]
(4)ctrl+c终止命令,ctrl+l(clear)清屏
2.初学者建议二 初
1.远程服务器只能重启,一般不允许关机.
2.重启时,应该关闭服务.
3.不要在服务器访问高峰运行高负载命令.
4.远程配置防火墙时不要把自己踢出服务器.
5.指定合理的密码规范并定期更新.
6.合理分配权限
7.定期备份重要数据和日志.
3.Linux基础命令 基 - 文件处理 文
3.1-文件查看命令 文
ls -lh:人性化显示文
件,
-:-表示这是一
个文件,d表示这是一个目录,l表示这是一个软连接. rw-r–r–: rw-:表示所有者拥有的权限 r–:表示所属组拥有的权限 r–:表示既不是所有者也不是所属组拥
有的权限. 一般权限分配是够用就行. ls下的命令可以跟随: -a:查看隐藏目录,-l:长格式显示,-d显示本地目录信息,-h:任性话显示,-i:查看目录的索引号.
3.2-目录处理命令 目
-p表示:可以递归创建多级目录.避免出现找不到父级目录报错.
cp命令中:-p是指的复制文件但是不做任何修改,即最后修改时间不动.
1.-r或者是-rp或-p都可以跟多个文件进行复制,应该是以最后一个/下面的目录为复制的目标目录.
2.命令行进行复制的时候可以复制的同时间改名称,例如:cp -r /tmp/Japan /root/Amarican:即将tmp下的Japan复制到了root下,并将目录的名称改成了Amarican。
mv:剪切,同样可以剪切多个,也可以剪切的同时改名:
mv /tmp/yum.log /root/Amarican/Japan/test.log
mv:改名,即在同目录下进行移动.
mv test.log yum.log
rm:删除文件在windows中有两次反悔的机会,而Linux中只有一次,所以一般无论删除什么,最好都先备份一下,再删除.日常业务数据清理的时候更是要先备份.如果发生误删除,经量少操作硬盘,及时找回.
rm -f:强制删除,没有再询问(没有后悔的机会).
rm -r:删除目录,如果目录下有很多子目录,则每次都会询问你是否要删除这个子目录.
rm -rf:删除这个目录,包括其中的子目录和子文件.
rm -rf /:删除所有文件,包括系统文件(删库跑路)
所以一般是指定删除路径后再输入删除属性-rf:
rm /root/Amarican/Japan -rf
3.3-文件处理命令 文
touch:触摸.
创建文件:touch /root/Amarican/xmllist.list
注意这里.list没有什么真实意义.
如果touch后不加绝对路径则是在本目录下创建文件.
linux下对文件名一般没有非法字符要求,除了"/“.
使用touch创建带有空格的文件名:touch “profile file”,如果没有加上”“则表示直接创建了profile和file两个文件.不建议创建文件名时带上空格,因为这样每次差查询的时候也需要加上”".
cat:显示文件内容,内容太长不宜用cat显示,加上-n表示number,显示行号,过长只会显示最后一页.
tac:cat倒过来写,同样显示也到过来显示.
more:表示分页展示,但是不能想上翻页.
less:也表示分页展示,向下翻页(空格)/f 翻下一页,enter 翻下一行,q/Q退出浏览,pageup翻到上一页,光标上键翻到上一行.less在浏览状态中也可以查找关键词输入:/关键词.用n/u找到下一个和上一个关键词位置.
tail -f:动态显示文件内容,例如展示服务器日志,如果有日志写入实时动态显示.
3.4 文件处理命令 文 :ln
软连接,类同windows快捷方式,箭头指向:->
硬连接,同步更新,保留源文件属性箭头指向:无,只能依靠i文件来判断.
4.Linux基础命令 基 - 权限处理 权
4.1权限管理 权 :chmod
权限数字的转换:562: r-xrw–w-:即用户有读和执行,所属组有读和写,其他人拥有写的权限(实际上是不可能这样的.).
-r:权限对于文件可以进行cat/tac/more/less/head/tail,对于目录可以ls
-w:对于文件可以,echo/vim/…,对于目录可以touch/mkdir/rmdir/rm
-x:对于文件可以sript command,对于目录可以cd
注意:对于一个文件是否有删除权限在linux中是判断对于这个文件的目录而言,当前用户是否有写权限.只要用户对当前文件的目录有写权限则可以删除此文件.
4.2权限管理 权 :
创建用户:useradd mylove,创建用户的密码:passwd mylove,再输入创建的密码mylove.
创建用户:useradd lifeng,创建用户的密码:passwd lifeng,再输入创建的密码lgf72257195.
修改lifeng用户下的lifeng.xml所有者为mylove,chown mylove lifeng.xml。注意此操作只能在root权限下.
创建所属组:groupadd lampbrother
改变lifeng.xml的所属组为lampbrother
注意创建文件或者目录的时候,文件的默认所有组就是这个创建者的缺省组,也就是它自己.
5.Linux基础命令 基 - 文件搜索 文
5.1 find命令命
find命令的选项很多,这里只展示常用的一些.
1.查询/etc下文件名叫init的文件:
find /etc -name init
2.查询/etc下文件名包含init的文件(这里使用通配符*,类似于sql中的%)
find /etc -name init
3.查询/etc下文件名以init开头[或者以init结尾]的文件名
find /etc -name init*[init]
4.查询/etc下文件名以init开头后跟随3个字符的(用?代替字符,相当于sql中的_)
find /etc -name init???
5.查询/etc下文件名以init开头的文件,不区分’init’的大小写(windows默认不区分大小写,linux中则需要区分)
find /etc -iname init
6.查询系统中大于100M的文件(注意这里需要换算,linux中是按照数据块来算的,一个数据块=0.5K,100M=1024
2100块)
find / -size +204800:这里不能写 find / -size +100
10242…
-a 表示两个条件同时满足,相当于&&
-o 表示两个条件满足一个即可,相当于||
例如在/etc下查找大于80M小于100M的文件/文件夹.
find /etc -size +163840 -a -204800
7.查询一个所有者为xxx的所有文件,这里以lifeng为例
find /home -user lifeng
8.查询以当前为几分钟内被修改过属性的文件和目录.
-amin :访问时间,a表示access,min表示分钟
-cmin:文件属性,c表示change,min表示分钟,分钟属性就是ls -l中看到的文件属性
-mmin:文件内容,m表示modify,min表示分钟.
find /etc -cmin -5:这里表示在/etc下查找5分钟内被修改过属性的文件和目录.-5表示小于5分钟内的,+5表示大于5分钟的.
9.指定文件类型查找-type
-type文件类型:f文件,d目录,l软连接文件.
例如在/etc下查找大于80M小于100M的文件
find /etc -size +163840 -a -size -204800 -type f
10.对查询的结果进行操作:注意最后的;不可省略,{}表示对查找的对象的集合.-exec后跟随的命令会直接执行而不会询问用户,而-ok会对每个查找的结果进行后面的命令时进行询问.
-exec/-ok 命令 {} ;
对/etc下init文件查找并显示文件详细信息
find /etc -name init -type f -exec ls -l ;
对/etc下带有init开头的文件进行删除
find /etc -name init
-type f -ok -rm {} ;
11.对i节点进行查询,例如说找出一个i节点为31531的文件并删除.
find . -inum 31531 -exec rm{} ;
查询所有i节点为654094的文件,查询即查询同分盘下一个文件的硬连接.
find / -inum 654094 -exec ls -l {} ;
5.2 locate命令命
先配置ip连接网络,然后yum install mlocate安装locate.
1.locate是在系统中建立了一个资料库,所以相比于find速度快很多,但是资料库更新是有时限的.可以使用updatedb命令来手动进行对资料库的更新.
2.locate对/tmp下的文件不会进行收录,所以在/tmp下的文件用locate都搜索不到.
3.locate查找不区分大小写:locate -i 文件名.
5.3 which命令命
这里的which可以查看命令的所在位置,同时也可以查看命令的别名,例如rm、cp都是别名,而ifconfig/usseradd都没有别名
5.4 whereis命令命
5.5 grep
5.6 man
这里同man相同的命令还有info,whatis命令.这里man date也可以查看到date的日期格式方便修改系统时间.
5.7 help
当使用man、which查看不到对应的帮助文档以及地址的时候,就可以先使用help查看一下命令是否为Shell内置命令.
6.Linux基础命令 基 - 用户管理命令 用
7.Linux基础命令 基 压缩压
7.1 gzip
gzip:压缩文件(不能压缩目录),注意执行命令后原文件会被删除。
gunzip:解压gzip压缩的文件。
gizp压缩比较常用.
7.2 tar
tar:在linux中十分常用的压缩命令.
7.3 zip/unzip
zip压缩文件是在linux和windows中通用的.其他还有可以通用的,一般在linux中压缩的可以在windows中解压,但是在windows中压缩的不一定可以在linux中解压.
7.4 bzip2/bunzip2
bzip2:压缩率非常高的压缩模式,一般使用在大文件下.使用bzip2压缩的文件会带有.bz2后缀.
在tar的帮助文档中我们可以看到tar -z表示以zip格式压缩,-j以bzip2格式压缩
tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
下面的参数-f是必须的
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
tar -cf all.tar .jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
tar -rf all.tar .gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
tar -xf all.tar
这条命令是解出all.tar包中所有文件,-t是解开的意思
压缩
tar -cvf jpg.tar .jpg //将目录里所有jpg文件打包成tar.jpg
tar -czf jpg.tar.gz .jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -cjf jpg.tar.bz2 .jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cZf jpg.tar.Z .jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.
rar a jpg.rar .jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip .jpg //zip格式的压缩,需要先下载zip for linux
解压
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
总结
1、
.tar 用 tar -xvf 解压
2、
.gz 用 gzip -d或者gunzip 解压
3、
.tar.gz和
.tgz 用 tar -xzf 解压
4、
.bz2 用 bzip2 -d或者用bunzip2 解压
5、
.tar.bz2用tar -xjf 解压
6、
.Z 用 uncompress 解压
7、
.tar.Z 用tar -xZf 解压
8、.rar 用 unrar e解压
9、
.zip 用 unzip 解压
8.Linux常用命令 常 -网络命令 网 .
8.1小插曲 小 ,配置配 ip以及删除 以 eth1
1.由于本机上用的CentOS6.5是从其他电脑上复制过来的,所以这里直接显示的是eth1,而实际上只有eth0这个配置文件.
解决办法就是:vi /etc/udev/rules.d/70-persistent-net.rules 删除所有eth0的信息,把eth1的信息改成eth0,
并且把文件里的mac地址添加到 ifcfg-eth0的HWADD中。
2.配置ip地址:https://www.cnblogs.com/blfshiye/p/5388359.html
1)编辑配置文件,加入改动下面内容

vi /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=static #启用静态IP地址
ONBOOT=yes #开启自己主动启用网络连接
IPADDR=192.168.21.129 #设置IP地址
NETMASK=255.255.255.0 #设置子网掩码
GATEWAY=192.168.21.2 #设置网关
DNS1=8.8.8.8 #设置主DNS
DNS2=8.8.4.4 #设置备DNS
IPV6INIT=no #禁止IPV6
:wq! #保存退出
2)改动完后运行下面命令

service ip6tables stop #停止IPV6服务

chkconfig ip6tables off #禁止IPV6开机启动

service network restart #重新启动网络连接

ifconfig #查看IP地址

3)自动去获取ip地址:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
HWADDR=00:0C:29:9D:02:AA
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=eth0
check_link_down(){ return 1; }
重启网络服务
service network restart
注意:
配置文件中的最后一项 check_link_down(){ return 1; },如果不配上就会在重启时报 “no link present Check cable” 错误。
配置文件中配置的值必须是小写。例如:如果BOOTPROTO=DHCP 自动获取ip功能将不会生效。
8.2 write
8.3 wall
8.4 ping
主要是看pakege lose:丢包率,丢包率越高,网络也就越差.
ping www.baidu.com -c 3 (windows中默认是3次,linux中不写-c无次数限制,按ctrl +c 强制结束)
8.5 ifconfig
8.6 mail
mail命令中,进入到邮件中可以使用d删除,例如删除第一封邮件则直接输入d 1;
mail邮件信息会存放在内存中,注意一旦系统重启启动则邮件内容不会再存在.
注意:系统会给root用户发送一些邮件,包括统计信息以及报错信息.如果收到对应的信息需要用心查看.
8.7 last
查看用户所有的登录信息,例如说查看最后一次是谁来重启服务器的.
8.7 lastlog
8.7 traceroute
8.7 netstat
注意这里的netstat -an的发起端口(即foreign是随机的),而local回应端口是固定的22。
8.7 setup
注入setup工具;本来是Red Halt开发的工具,这里引入,yum install setuptool
8.7 mount,挂载光盘 挂
注意这里文件夹下挂载一个光盘后无法再挂载其他,取消挂载(卸载)使用umount /dev/sr0.并且不能在cdrom下进行,否则报错dev/sr0正忙.
同样不能卸载两次,第二次卸载也会报错.
9.关机重启 关 .
9.1关机命令推荐 关 -shutdown
立即重启: shutdown -r now
shutdown -h 20:30 晚上8点关机
shutdown -c:取消设置的定时关机
在服务器上使用人数较多,硬盘使用率很高,这时如果突然关机或者断电很可能会导致硬盘损坏,甚至数据丢失.
所以在服务器重启之前一般需要将服务停止后再关机或者重启(服务器一般只重新启动,而不关机).
9.2 其他关机命令 其 halt/poweroff(相当于直接断电 相 )/init 0
9.3 其他重新启动命令 其 reboot/init6
9.4 init:系统运行级别 系
0.关机
1.单用户:相当于windows中的安全模式,只启动linux中的核心服务,其他附加服务都不启动,用于修复系统错误.
2.不包含NFC,NFC系统文件共享服务,很方便,但是有安全隐患.同时以2级别启动的时候不会包含网络服务,其他基本和3级别相同都是以命令行接受指令.
3.全用户模式,并包含NFC以及网络服务.
4.没有使用
5.标准的图形界面启动
6.重新启动
9.5修改系统级别和查询系统级别 修
这里注意,要是没有安装图形界面,而设置init 5,会报错,但是系统会认为你从级别3进入了级别5
9.6退出登录 退 logout
这个命令是防止自己使用的电脑登录后让别人使用,所以一般远程到服务器上后,使用完后一定要logout!以免他人删除了你的数据或者其他信息.
10.Vim编辑器 编 .
10.1 Vim编辑器基本命令 编
全文替换自定字符串: s 表示全文 , : s表示全文,: s表示全文,:s/old/new/c[g],这里g表示不询问是否执行而直接替换,c表示需要询问是否执行
同样:n1,n2s/old/new/g[c]:从n1行到n2行之间进行替换,同样c表示替换的时候进行询问。
:wq!,这个是当此文件只有读权限的时候,root/文件所有者可以使用:wq!进行强制修改保存。
10.2 Vim编辑器命令常用技巧 编
1.在vim中输入:r /etc/issue[导入的文件名称]:可以将对应的文件内容导入到当前光标之后.
2.在vim中输入:! ls /root[执行的命令]:可以在不退出vim编辑器执行命令.
3.将命令的执行结果导入到当前文件中,例如导入当前时间到文件中:r !date
4.自定义快捷键:例如说将一行注释掉需要先将光标移动到行首,并进入编辑模式写入#.这里可以直接设置一个快捷键实现.
:map [这里需要按ctrl+v+p或者ctrl+v再按ctrl+p],这里表示我们定义一个ctrl+p的快捷键.
:map p[按住了ctrl+v+p的这个p是会变色的] I#
5.注释多行的方法:即在行首加上#: (这里和正则表达式一样的^表示行首)
:n1,n2s/^/#/g
6.取消注释多行的方法,即取消行首的#:
:n1,n2s/^#//g
7.替换的时候转义符:,
:n1,n2s/^g
8.vim下自定义替换:例如将mymail输入的时候自动替换为1416149932@qq.com
:ab mymail 1416149932@qq.com
注意以上的设置都是在内存中报存的,我们如果需要永久保存需要在/home/userxxx下的.vimrc文件去添加对应的vim配置文件.
例如说vi /home/lifeng/.vimrc
输入map ^P I#
map ^B 0#
ab mymail 1416149932@qq.com
11.Linux中的安装包 中 .
11.1 RPM和源码包 和
11.2 RPM包管理 包 -rpm命令管理 命
这里RPM中依赖性相对而言比较麻烦,所以之后RPM采用了yum安装的方式,自动去找依赖包,依赖的服务器可以是光盘.
11.2 RPM包管理 包 -rpm安装升级以及卸载 安

  1. rpm包的管理
    介绍:
    一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,它生成具有RPM扩展名的文件,RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的
    Linux的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了
  2. rpm包的简单查询指令:
    查询已安装的rpm列表 rpm –qa | grep xx(q表示query,a表示查询所有,grep表示过滤)
    例如:查询Linux中是否安装有firefox
    rpm -qa | grep firefox
    rpm包名基本格式:
    一个rpm包名:firefox-45.0.1-1.el6.centos.x86_64.rpm
    名称:firefox
    版本号:45.0.1-1
    适用操作系统: el6.centos.x86_64 表示centos6.x的64位系统
    如果是i686、i386表示32位系统,noarch表示通用
    rpm包的其它查询指令:
    rpm -qa:查询所安装的所有rpm软件包
    rpm -qa | more :查询所安装的所有rpm软件包 并且分页显示
    rpm -qa | grep X [rpm -qa | grep firefox ] :查询是否安装有某个软件(火狐的软件)
    rpm -q 软件包名 :查询软件包是否安装 rpm -q firefox
    rpm -qi 软件包名 :查询软件包信息
    rpm -ql 软件包名 :查询软件包中的文件的安装位置
    rpm -qf 文件全路径名:查询文件所属的软件包 ,例如:rpm -qf /etc/passwd
  3. 卸载rpm包:
    基本语法 rpm -e RPM包的名称
    应用案例 :删除firefox 软件包
    rpm -e firefox
    细节讨论:
    (1) 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息
    如: $ rpm -e foo removing these packages would break dependencies:foo is needed by bar-1.0-1
    (2) 如果我们就是要删除 foo这个rpm 包,可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行 如:$ rpm -e --nodeps foo
  4. 安装rpm包
    基本语法: rpm -ivh RPM包全路径名称
    参数说明: i=install 安装 v=verbose 提示 h=hash 进度条
    应用实例: 安装firefox浏览器
    ① 先要找到安装包,需要先挂载上我们之前安装CentOS的iso文件,点击虚拟机设置使用ios文件,那么在系统中会多出一个光驱,打开命令行终端进入到/media/CentOS_6.8_final/package/
    (所有的rpm包都在这里)
    点击然后拷贝到/opt目录下
    cp firefox( rpm包的文件名) 需要拷贝到的目录 (可以输入rpm包名字的前几个字母然后使用Tab键补全)
    ② 安装
    切换到/opt目录下找到刚才拷贝的文件然后使用: rpm ivh + 火狐rpm软件安装包的名字就可以了
    11.3 RPM包查询 包 -rpm安装查询 安
    11.3.1 查询查 RPM包是否安装 包
    11.3.2 查询查 RPM包详细信息 包
    11.3.3 查询查 RPM包中文件安装位置 包
    11.3.4 查询系统文件属于那个 查 rpm包
    11.3.5 查询安装包所需要的依赖包 查
    11.4 RPM包校验与提取 包
    11.4.1 RPM包的校验 包
    11.4.2 RPM包的提取 包
    一般是用于误操作删除了安装文件,需要从rpm包中提取出来对应文件进行覆盖.
    rpm2cpio:即将rpm格式转为cpio格式后才能使用操作.
    这里的rpm2cpio包全名|\中的\表示后面命令还没有输入完毕,接上后面的
    cpio -idv .文件绝对路径(这里的.指的是当前目录,这里必须要指定这个.)
    11.4 RPM包-yum在线管理 在
    注意:在生产环境中RedHal t等linux软件公司,yum是需要收费的.CentOS不需要.然后是可以使用.iso文件来作为yum源.用于支持本地安装.
    11.4.1 yum在线管理 在 ,ip地址配置和网络 地 yum源管理 源
    11.4.2 yum命令命
    注意这里的yum -y -update 包名:这里可以不指定包名表示所有的软件都进行升级,这样很可能会导致
    系统也会跟随升级,由于系统升级需要配置核心文件,如果是远程操作很可能会导致无法开机使用.
    同样yum -y -remove 包名:会卸载包以及相关的依赖包,如果对于的依赖包有其他服务或者系统在使用则都会崩溃.所以搭建服务的原则是安装最少的软件,需要安装对应软件则再进行安装,尽量不进行卸载.
    11.4.3 光盘光 yum源搭建 源
    11.5 RPM包和源码包区别 包
    这里的service 命令相当于去扫描了/etc/rc/d/init.d/下的可执行文件.
    11.6 源码包安装过程 源
    1.直接安装./configure --prefix=/usr/local/apache
    2:提示缺少apr,下载http://apache.freelamp.com/apr/ ,编译安装完成apr之后,继续编译apache.
    3:编译( ./configure --prefix=/usr/local/apr-util –with-apr=/usr/local/apr)
    configure: error: APR-util not found. Please read the documentation
    4:缺少apr-util,下载编译apr-util之后,继续编译apache
    /configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/
    configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
    5:再次提示缺少pcre,下载之http://sourceforge.net/projects/pcre/ 编译 安装(我这里均安装在/usr/local目录里,例如./configure --prefix=/usr/local/pcre)
    ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
    6:然后就可以编译通过了。
    7:照例make ,make install,然后到/usr/local/apache/bin目录里,执 行./apachectl start,启动httpd服务,在浏览器中输入127.0.0.1进行测试,可 以出来网页,但是提示403 Forbidden,因为我的www目录默认在/usr/local/apache/htdocs目录,该目录是root权限的目录,web用户是无权限访问的,修改apache/conf/httpd.conf。把DocumentRoot 修改为 /var/www/html (可以在var下面新建这些目录) ,同时还需要修改至,保存,执行apachectl restart,即可
    8:apache在linux默认是支持ipv4/ipv6的,在浏览器中输入[::1],期待已久的网页出现啦…
    Enjoy It!

    附:
    1:在configure的时候,如果遇到缺少其他软件,可以先看一下help,例如本次安装过程中如果提示缺少apr,那么
    ./configure –help|grep apr
    2:我的apache的编译命令:
    ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/ --enable-so
    这里安装依赖一层层的太多了…受不了.
    11.7 脚本安装包 脚
    一般是以.sh结尾了shell脚本文件.执行文件则按照脚本提示一步步执行安装.
    12.用户管理 用
    12.1 用户配置文件 用
    12.1.1 用户信息文件 用 :/etc/passwd
    这里查看/etc/passwd: vi /etc/passwd.
    12.1.2 影子文件 影 /etc/shadow
    date -d “1970-01-01 16603 days”:2015年 06月 17日 星期三 00:00:00 CST
    echo ( ( (( (((date --date=“2020/06/22” +%s)/86400+1)):注意中间的空格不能省略:18435
    date -d “1970-01-01 18435 days”:2020年 06月 22日 星期一 00:00:00 CST
    shadow文件只有root能阅读和修改,为安全起见,不能将其信息暴露给他人,不然暴力破解也可以实现.
    新建用户的时候也可以不设置密码,但是只能本地登录.无法通过ssh远程登录.
    12.1.3 /etc/group
    这里由于不推荐启用组密码和组长所以就没有更多说明.
    我们手工添加这四个文件也能实现其用户的增删改.
    12.2用户管理相关文件 用
    在linux中将普通用户改为超级用户则将用户UID改为0,如像windows中将用户组改为0,
    依然不会生效称为超级用户.但是就算变为超级用户,它的home目录也不会改变,
    只是权限为root用户权限.
    var/spool/mail/用户名:这个应该是在用户创建的同时会创建,但是只有对应用户收到邮件的时候才会有对应的文件夹.
    12.3用户管理命令 用
    12.3.1 用户添加命令 用 useradd
    这里useradd -c和-G这里用户说明和用户附加组可以按照需要修改,其他选项不推荐修改。
    12.3.2 用户密码命令 用 passwd
    12.3.3 修改用户信息 修 usermod/chage
    12.3.4 删除和切换用户 删 userdel/su
    12.3.5 添加添 /修改修 /删除组以及将用户加入 删 /踢出组 踢 groupadd/groupmod/groupdel/gpasswd
    13.权限管理 权
    13.1 ACL讲解讲
    13.1.1 ACL-1 查看以及开启 查 acl功能功
    13.1.2 ACL-2 给用户 给 /组设置 组 acl权限权
    13.1.3 ACL-3 最大有效权限和删除 最 acl权限权
    13.1.4 ACL-3 默认默 acl权限和递归 权 acl权限权
    递归acl权限是指赋予目录下现在存在的所有的对象同目录权限.
    默认acl权限是指赋予目录下所有新建的对应同目录权限.
    这两个命令都只对目录有效.
    13.2 特殊权限 特
    13.2.1 SUID
    s(SUID 4)权限代表执行命令时候暂时获得执行程序的所有者身份.
    这里需要对可执行文件用户执行权限赋予SUID权限才有效,
    不然会发现权限显示为-rwSr,这里的S是大写的,并且后面有错误提示.
    特别是chmod n+s 文件名 命令的时候.
    此权限危险程度较高,不是特殊需求不要设置.
    13.2.2 SGID权限权
    这里SGID 2 可以设置可执行文件,以及目录.
    SGID也就是相当于执行文件的时候将普通用户的所属组暂时变为这个文件的所属组.
    13.2.3 SBIT权限权
    SBIT只能针对目录进行操作,并且普通用户对此目录是否有写和执行权限.
    SUID只能对可执行文件,SGID可以对可执行文件以及目录,SBIT只能对目录,三个特殊权限操作对象不一样.
    所以给对象赋予7755虽然可行但是没有意义.
    13.2.4 attr权限权 -chattr
    13.2.5 sudo权限权 -visudo
    类似于vim工具类命令不要使用sudo赋予给普通用户,不然会导致危险.
    14 文件管理系统 文
    14.1 Linux分区复习 分
    14.2 文件系统常用命令 文 df,du,fsck,dump2fs
    [root@localhost ~]# df <==这个命令可以叫出目前挂载的装置
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/hdc2 9920624 3822848 5585708 41% /
    /dev/hdc3 4956316 141376 4559108 4% /home
    /dev/hdc1 101086 11126 84741 12% /boot
    tmpfs 371332 0 371332 0% /dev/shm
    [root@localhost ~]# dumpe2fs /dev/hdc2
    dumpe2fs 1.39 (29-May-2006)
    Filesystem volume name: /1 <==这个是文件系统的名称(Label)
    Filesystem features: has_journal ext_attr resize_inode dir_index
    filetype needs_recovery sparse_super large_file
    Default mount options: user_xattr acl <==默认挂载的参数
    Filesystem state: clean <==这个文件系统是没问题的(clean)
    Errors behavior: Continue
    Filesystem OS type: Linux
    Inode count: 2560864 <==inode的总数
    Block count: 2560359 <==block的总数
    Free blocks: 1524760 <==还有多少个 block 可用
    Free inodes: 2411225 <==还有多少个 inode 可用
    First block: 0
    Block size: 4096 <==每个 block 的大小啦!
    Filesystem created: Fri Sep 5 01:49:20 2008
    Last mount time: Mon Sep 22 12:09:30 2008
    Last write time: Mon Sep 22 12:09:30 2008
    Last checked: Fri Sep 5 01:49:20 2008
    First inode: 11
    Inode size: 128 <==每个 inode 的大小
    Journal inode: 8 <==底下这三个与下一小节有关
    Journal backup: inode blocks
    Journal size: 128M
    Group 0: (Blocks 0-32767) <==第一个 data group 内容, 包含 block 的启始/结束号码
    Primary superblock at 0, Group descriptors at 1-1 <==超级区块在 0 号 block
    Reserved GDT blocks at 2-626
    Block bitmap at 627 (+627), Inode bitmap at 628 (+628)
    Inode table at 629-1641 (+629) <==inode table 所在的 block
    0 free blocks, 32405 free inodes, 2 directories <==所有 block 都用完了!
    Free blocks:
    Free inodes: 12-32416 <==剩余未使用的 inode 号码
    Group 1: (Blocks 32768-65535)
    #由于数据量非常的庞大,这里省略了一部分输出信息
    可以看到,使用 dumpe2fs 命令可以查询到非常多的信息,以上信息大致可分为 2 部分。前半部分显示的是超级块的信息,包括文件系统名称、已使用以及未使用的 inode 和 block 的数量、每个 block 和 inode 的大小,文件系统的挂载时间等。
    另外,Linux 文件系统(EXT 系列)在格式化的时候,会分为多个区块群组(block group),每 个区块群组都有独立的 inode/block/superblock 系统。此命令输出结果的后半部分,就是每个区块群组的详细信息(如 Group0、Group1)。
    14.3 文件系统常用命令挂载命令 文 :mount
    14.4 挂载光盘和 挂 u盘
    注意挂载后需要卸载后才将光盘和u盘取出.
    14.5 支持支 NTFS文件系统 文 -ntfs-3g
    14.6 fdisk分区过程 分
    14.7 fdisk自动挂载以及文件修复 自
    这里修复/etc/fstab文件的方法只有在对一般的分区挂载才有效,
    对根分区或者/boot分区则不会有提示,所以/etc/fstab文件的修改一定要注意.
    14.8 swap分区添加空间 分
    15.Shell基础基
    15.1 Shell定义定
    15.2 Shell脚本运行过程 脚 echo
    15.3 Shell Bash的基本功能 的
    15.3.1 历史命令 历 history与功能补全 与 tab键
    15.3.2 别名与快捷键 别
    15.3.3 输入与重定向 输
    15.3.4 逻辑符和管道符号 逻 ;/&&/||/|
    15.3.5 通配符和其他特殊符号 通
    15.4 Shell Bash的变量 的
    这里的定义范围:用户自定义变量(只能在本定义变量的shell中使用)<
    环境变量(可以在赋予的shell以及它的子shell中定义)<
    位置变量(基本全局使用)=预定义变量
    这里的用户自定义变量可以让用户随意修改;
    环境变量多数只能修改其值而不能修改其名可以新增环境变量(新增的看具体情况修改);
    位置变量和预定义变量则基本都不能修改名字,只能传参.
    15.4.1 用户自定义变量 用
    15.4.2 环境变量 环
    15.4.3 位置参数变量 位
    15.4.4 预定义变量 预
    15.5 Shell Bash的运算符 的
    15.5.1 数值运算与运算符 数
    15.5.2 变量测试与内容替换 变
    15.6 环境变量配置文件 环
    15.6.1 环境变量配置文件简介 环
    这里使用. 配置文件与使用source 配置文件都是将配置文件立即生效,而不用重启
    /etc/profile,/etc/profile.d/*.sh,/etc/bashrc是所有用户公用的环境变量
    /.bash_profile,/.bashrc是每个用户home目录下独有的环境变量配置文件
    15.6.2 环境变量配置文件的作用 环
    这里注意有需要登录过程的环境变量设置和不需要登录过程的环境变量设置.
    还有就是如果不写叠加则后面设置的同位置环境变量会覆盖前面设置的环境变量.
    15.6.3 其他配置文件和登录信息 其
    16 Shell编程编
    16.1 Shell基础正则表达式 基
    \ 转义符,将特殊字符进行转义,忽略其特殊意义
    a.b匹配a.b,但不能匹配ajb,.被转义为特殊意义
    匹配行首,awk中,则是匹配字符串的开始
    ^tux匹配以tux开头的行
    匹配行尾, a w k 中, 匹配行尾,awk中, 匹配行尾,awk中,则是匹配字符串的结尾
    tux$匹配以tux结尾的行
    .匹配除换行符\n之外的任意单个字符,awk则中可以
    ab.匹配abc或bad,不可匹配abcd或abde,只能匹配单字符
    [ ]匹配包含在[字符]之中的任意一个字符
    coo[kl]可以匹配cook或cool
    [^ ]匹配[^字符]之外的任意一个字符
    123[^45]不可以匹配1234或1235,1236、1237都可以
    [ - ]匹配[]中指定范围内的任意一个字符,要写成递增
    [0-9]可以匹配1、2或3等其中任意一个数字
    ?匹配之前的项1次或者0次
    colou?r可以匹配color或者colour,不能匹配colouur
    +匹配之前的项1次或者多次
    sa-6+匹配sa-6、sa-666,不能匹配sa-
    匹配之前的项0次或者多次
    co
    l匹配cl、col、cool、coool等
    ()匹配表达式,创建一个用于匹配的子串
    ma(tri)?匹配max或maxtrix
    { n }匹配之前的项n次,n是可以为0的正整数
    [0-9]{3}匹配任意一个三位数,可以扩展为[0-9][0-9][0-9]
    {n,}之前的项至少需要匹配n次
    [0-9]{2,}匹配任意一个两位数或更多位数
    {n,m}指定之前的项至少匹配n次,最多匹配m次,n<=m
    [0-9]{2,5}匹配从两位数到五位数之间的任意一个数字
    |交替匹配|两边的任意一项
    ab(c|d)匹配abc或abd
    16.2 Shell字符串截取命令 字
    16.2.1 cut命令命
    cut -d “”:局限性就是在于这里的分隔符必须是个单词符,不支持正则表达式啥子的.
    16.2.2 printf命令命
    16.2.3 awk命令基础 命
    16.2.3 sed命令命
    16.3 Shell字符串处理命令 字
    16.4 Shell条件判断 条
    16.5 Shell流程控制 流
    16.5.1 if条件控制语句 条
    16.5.2 case条件控制语句 条
    16.5.3 for循环语句 循
    16.5.4 while/until循环语句 循
    17 Linux服务管理 服
    查看服务是否启动 ps aux
    17.1 Linux RPM独立服务管理 独
    17.2 Linux中RPM基于基 xinetd服务管理 服
    17.3 Linux中源码包安装的服务管理 中
    17.4 Linux中服务管理总结以及常见服务说明 中
    18.Linux系统管理 系
    18.1 进程查看 进 ps aux/le pstree /top
    18.2 进程停止 进 kill/killall/pkill
    18.3 工作管理 工 &,ctrl+z,jobs
    18.4 系统其他信息查看 系 dmesg/uname/lsof…
    18.5 系统定时任务 系 cron/crontab
    19.日志介绍以及说明 日
    19.1 last/lastlog/ /var/log/message 的日志存储说明 的
    19.2 /etc/rsyslog.conf 日志存储格式说明 日
    19.3 /etc/logrotate.conf logrotate -v/-f 日志存储轮替以及查看轮替情况和强制执行轮替 日
  5. 启动管理 启
    20.1 CentOS6.X启动管理 启
    20.1.1 系统运行级别 系
    20.1.2 启动过程 启
    20.2 grub 系统启动引导 系
    20.2.1 Grub配置文件 配
    20.2.1 Grub加密与字符界面分辨率调整 加
    20.3 系统修复模式 系
  6. 备份与恢复 备
    21.1 备份的概述 备
    21.2 备份的命令 备 dump/restore
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿☞攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值