linux个人笔记

1,解压

tar-xvzfphp-5.2.13.tar.gz

2.编译

cdphp-5.2.13

./configure--prefix=/usr/local/php--with-config-file-path=/usr/local/php/conf--

with-apxs2=/usr/local/apache/bin/apxs

说明:

--prefix=/usr/local/php安装路径

--with-config-file-path=/usr/local/php/conf/指定php配置文件存放路径,待安装完毕后

,要把php.ini复制到该路径内.

--with-apxs2=/usr/local/apache/bin/apxs指定apache中DSO模块的位置

3,安装

make

makeinstall

4.cpconf/php.ini-dist/usr/local/php/conf/php.ini

至此,php安装完毕,下面是修改apache相关配置来和php协作.

1.修改apache配置文件,寻找含有#AddTypeapplication的行,在其下面加入一行,注意前面没有#号。

AddTypeapplication/x-httpd-php.php

2.重启apache

/usr/local/apache/bin/apachectlstop

/usr/local/apache/bin/apachectlstart

3.在相应的目录下编写php文件,并修改php文件属性为755,如:

chmod755test.php

Linux操作系统学习线路图如果你正在学习Linux操作系统,不知从哪里入手,可以参考下面给出的9点

建议,还有一点是本人附加的,Linux程序工程师非常吃香,以后肯定是个火红职业。不管怎样,只要

努力的学,后果很美好。

统文件

文件扩展名说明

.conf  一种配置文件。配置文件有时也使用.cfg

.lock  锁(lock)文件;用来判定程序或设备是否正在被使用

.rpm  RedHat用来安装软件的软件包管理器文件

脚本文件

文件扩展名说明

.c  C程序语言的源码文件

.cpp  C++程序语言的源码文件

.h  C或C++程序语言的头文件

.o  程序的对象文件

.so  库文件

.sh  shell脚本

.java  Java程序源代码文件

.lcss  Java程序源代码编译后的中间代码文件

1.掌握至少50个以上的常用命令。

比如:安装和登录命令:login、shutdown、halt、reboot、mount、umount、chsh

文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln

系统管理相关命令:df、top、free、quota、at、lp、adduser、groupaddkill、crontab、

tar、unzip、gunzip、last

网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rloginrcp、finger

、mail、nslookup

系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo、pswho

2.熟悉Gnome/KDE等X-windows桌面环境操作。

3.掌握.tgz、.rpm等软件包的常用安装方法。

4.学习添加外设,安装设备驱动程序(比如网卡)。

5.熟悉Grub/Lilo引导其及简单的修复操作。

6.熟悉Linux文件系统和目录结构。

7.掌握vi,gcc,gdb等常用编辑器,编译器,调试器。

8.理解shell别名、管道、I/O重定向、输入和输出以及shell脚本编程。

9.学习Linux环境下的组网。

权限不够chmod777文件或目录

访问xpsmb://ip

wget网上下载

/要查找的字符向下vim工具查找

?要查找的字符向上

蓝色表示目录;

绿色表示可执行文件;

红色表示压缩文件;

浅蓝色表示链接文件;

灰色表示其它文件;

红色闪烁表示链接的文件有问题了;

黄色是设备文件,包括block,char,fifo。

查询当前Linux版本:uname-a

重启apache,servicehttpdrestart

vim下跳到第几行

:数字

显示行号:setnu

如果要取消行号,使用:setnonu

用户主目录:/root,/home/username

用户可执行程序目录:/bin,/usr/bin,/usr/local/bin

系统可执行程序:/sbin,/usr/sbin,/usr/local/sbin

挂载点:/media,/mnt

常用的配置文件目录:/etc

临时文件目录:/tmp

内核及引导目录:/boot

服务器目录:/var

系统信息目录:/proc,/sys

共享库目录:/lib,/usr/lib,/usr/local/lib

[roo@localhost~]#

user:root主机名:rhel5目录:/root

如果我想切换会我的家目录有什么方法?

总结下

cd回当前用户家目录

cd~也是回当前用户家目录

cd-回上一次所在的目录

还有两种方法

cd/root使用绝对路径

cdroot使用相对路径

.代表当前目录

..代表上一级目录

vi或vim是Linux最基本的文本编辑工具

ls-a显示所有文件包括隐藏文件

ls-l以长列表方式显示文件

LINUX里只要文件名前有一个点的就是隐藏文件

-rw-------

drwxr-xr-x

-rw-r--r--

在linux中,所有东西都被当成文件。

文件权限前的第一个字母用来标识文件类型:

-:一般文件

d:目录文件

b:块设备文件

c:字符设备文件

l:链接文件

p:人工管道

234位代表文件所有者的权限。

567位代表文件所属组的权限。

8910代表其他用户的权限。

r是读的意思

W是写的意思

X是执行的意思

硬连接就像一个文件有多个文件名,

软连接就是产生一个新文件,这个文件指向另一个文件的位置,

硬连接必须在同一文件系统中,而软连接可以跨文件系统.

ls-l/root看不到/root目录的长列表,你在文件名那里找不到/root

我们需要加一个d参数,ls-ld/root

注意,在打命令和目录的时候,你们一定要用TAB键来补全,这样比较轻松,也能检查命令是否正确。

如果不能补全就证明你的命令有问题

用命令补全,TAB,他会自动加上最后那个/符号,证明这是个目录,如果后面没有/的话,这个可能是

目录,也可能是文件

由于linux中的文件名中没有扩展名,所以可能需要用file来查看文件类型

touch创建文件

file来查看文件类型

将所有的C语言程式拷贝至Finished子目录中:

cp*.cFinished

Kernel系统内核用于在计算机启动时载入基本内存、管理基本输入输出、管理进程初始化和进程的调

度。

Shell系统的命令解释器,翻译成中文也就叫壳,外壳的意思,就是最表面的,用于操作系统与用户的

通信

想知道你们系统中有哪些shell,可以用这个命令:cat/etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/bin/tcsh

/bin/csh

/bin/ksh

这是我系统中的所有的shell,不过我们一般使用的是第二种,bash

一个用户使用什么shell可以在/etc/passwd中查看

用户可以用set或env查询当前的环境变量

常用的预定义变量:

HOME:当前用户的主目录

PATH:当前用户的可执行文件搜索路径

LANG:程序应该使用的默认语言

PS1:行提示符

可以用echo$变量名字来查看变量

echo$PATH这是可执行程序的搜索路径

命令进入图形

修改文件就可以开机自动到XWINDOS

/etc.inittabid:3:initdefault:把3该5就可以了

用户变量是用户在编写shell过程中,可以在shell程序内任意使用和修改的变量。(以字母或下划线开

头,通常字母是大写母)

赋值:变量名=变量值

获取变量值${变量名}

例:VAR=hellorhce;赋值

echo${VAR};显示变量值

也可以使用printf来产生各种格式的输出

read从标准输入读取数据来为var1这个变量赋值

-p输出提示字符

read-p"Enterafilename:"FILE

[root@localhost~]#read-p"Enterafilename:"FILE

Enterafilename:nihao

[root@localhost~]#echo$FILE

nihao

使用!来调用过往指令:

!l:重复执行上一条以l为首的指令

!c:重复执行上一条以c为首的指令

!!:重复执行上一条指令

!number:重复执行上一条在history表中记录号码为number的指令

!23

!-number:重复执行前第number条指令

!$:表示获得前面命令行中的最后一项内容

命令行输出——“”将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,则转义

命令行输出——‘’将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,不转义

以上跟php语法一样

执行引用符——``引用命令的执行结果

``是Tab键上面那个键

[root@localhost~]#echo"Thistimeis:date"

Thistimeis:date

[root@localhost~]#echo"Thistimeis:`date`"

Thistimeis:TueNov421:11:55CST2008

[root@localhost~]#VAR=$[2*5]

[root@localhost~]#echo$VAR

10

脱逸符——\

用于取消命令行中字符的特殊含义

用于表示一行未结束

命令行结束符——;

用于在一行内分隔两个独立命令,表示一行已结束,作用相当于回车键

[root@localhost~]#pwd;ls-l

子shell激活——()

在小括号内的命令行表示激活一个子shell后在子shell中运行

&&:当前一条指令执行成功时再执行后一条指令

||:当前一条指令执行失败时再执行后一条指令

键入alias可以查询当前alias列表。

用户可以alias来为一条命令取一个简单的别名

用户也可以用unalias来取消一条别名记录

我们可以把很长的命令或者参数,用一个别名来表示,方便我们输入

这种方法是临时的,如果使你的更改永久生效,需要把他写入一个配置文件

vim.bashrc

.bashrc文件内容aliasrm='rm-1'aliascp='cp-1'

.o,是目标文件,相当于windows中的.obj文件

.so为共享库,是sharedobject,用于动态连接的,和dll差不多

.a为静态库,是好多个.o合在一起,用于静态连接

cat是concatenate的缩写,所以它的作用其实是连接文件

比如我要看install.log的内容就可以使用catinstall.log

More文件名

当一个文件的内容超过一屏后,我们可以用more这个指令来逐屏察看文件内容。

使用方法,more文件名,然后使用空格键,他会一页一页的往下翻,使用回车键,他会一行一行的往下翻.

按b可以往上翻页.

如果会vim的会员可以使用v,他会在当前一页进入vi编辑模式。

Less文件名

less在more的基础上,更可以逐行察看,前后翻页。

他相对与more来说,他的优势是可以一行一行的看。而more是一页一页的查看,个人感觉两个命令功

能差不多。

还有less这个命令都可以输入/关键字进行搜索

递归拷贝就是如果那个目录里面还有目录,都会一层一层的全部拷贝

cp-r333333.bk备份

mv是move的缩写,可以用来将一个文件移动到另一个位置

当目标文件名与源文件名不一致时,mv就起到了rename的作用

rm是remove的缩写,可以用来删除一个文件。如果你是删除目录的话,也要使用-r,递归删除

rm-r333不提示rm-ir333提示rmdir333删除目录提示

如果是目录,需要递归删除。大家发现了吗?不使用-i他也会提示问你是否删除

使用cat和重导向把/etc/passwd>passwd复制到用户主目录

这个命令可以代替cp使用,而且通常使用这个命令比较多,要求大家掌握

wc用来统计一个文件的行数(-l)、词数(-w)、字符数(-c)并送到标准输出。

做统计的时候很方便????????????

grep用来从一个文件中找出匹配指定关键字的那一行,并送到标准输出,结合管道,我们通常用它来过

滤搜索结果.

catpasswd|greproot通常可以使用这种方法,查找passwd文件里和root有关系

grep支持用扩展的正则表达式来进一步定义关键字,具体如下:

.替代任何一个单一字符

.*替代零个或任意个字符

[abc]替代a、b或c

[^abc]替代除了a、b、c以外的字符

a*替代空、a、aa、aaa、乃至更多个a

a?替代一个或零个单独的a

a+替代a、aa、aaa乃至更多个a

a\{n\}替代重复了n次的a

^a替代以a为首的行

a$替代以a为尾的行

head显示文件开头部分内容,默认显示十行参数--lines或者–n指明显示行数

tail显示文件结尾部分内容,参数-f显示文件的即时更新,用于监视日志文件这个命令很常用了

tail-f命令一般用来监控日志文件

sort用来按各种需要重新排列文本,一般运用在一个管道之后如:ls-a|grepbash|sort

默认情况下sort按照字母顺序排列文本。

-n按照数字排序

-r反向排序

-u将重复的行去除

diff用于比较两个文件之间的区别

difffile1file2

1,2c1,36字母(a、d、和c)之前的行号(n1,n2)是针对file1的,其后面的行号(n3,n4)是

针对file2的

字母a,b,c分别表示附加、删除和修改操作

uniq用于去除文本中重复的行。-u参数可以只显示那些没有被重复过的行。-d显示有被重复过的行。

cut可以根据一个指定的标记(默认是tab)来为文本划分列,然后将此列显示

把PASSWD的第一列显示出来,导入到file文件里

cut-f1-d:/etc/passwd>file进入file文件查看

这个命令在以后的服务器架设中很有用处的,一定要记住,-d后面跟的是分割符号-f后面是第几行

然后重定向

我们查看passwd文件,看他的规律,都是用:分分隔的,所以-d后面是:,然后用户是第一列,所以

我们用-f1,passwd最后一个标签是该用户默认使用的shell.

paste将几份文集那按照列的方式拼接。默认情况下,新文件的列分隔符是tab,也可以用-d参数指定分

隔符

流编辑器sed(StreamEditor)

sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“

模式空间”(patternspace),

接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样

不断重复,直到文件末尾。

文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件

使用>>让系统将一次键盘的全部输入,先送入虚拟的‘当前文档’,然后一次性输入

需要一对字母、符号或字符串作为起始终结标识符

可以选择任意符号作为起始终结标识符

使用>改变数据输出目标

使用>进行输出重定向,文件的原内容会被覆盖

使用>>可以将输出追加入文件

catfile1>file2

拷贝file1到file2

catfile*>file

将数个小文件合并成一个文件

网卡配置

网卡设备名字:eth0,eth1,…

eth0代表第一块网卡

配置命令:

system-config-network

system-config-network-tui

system-config-network-gui

上面三个命令都可以配置网卡,第一个要求有图形界面的才能

修改配置文件来完成网卡配置

网卡设备配置结果存放在:/etc/sysconfig/network-scripts/ifcfg-ethX

大家记住这个路径

新的网络配置生效:servicenetworkrestart

查看网卡的配置情况ifconfig网卡名字如:ifconfigeth0

如果有inetaddr的话,那就ping自己看能不能通。如果没有inetaddr,那证明你的配置没有成功,

有ip,但是不能ping通其他主机的IP地址话就证明的的网络不能到达,或者WINDOWS防火墙不允许ICMP

包通过。

禁用某个网卡ifdown网卡名

激活某个网卡ifup网卡名

网络的其他配置vim/etc/sysconfig/network文件该文件用来指定服务器上的网络配置信息

mesg命令设定是否允许其他用户用write命令给自己发送信息。如果允许别人给自己发送信息,输入命

令:

#mesgy

否则,输入:

#mesgn

如果mesg后不带所有参数,则显示当前的状态是y还是n

wall命令是对所有在线的用户进行广播的

write:命令的功能是向系统中某一个用户发送信息。

write用户帐号[终端名称]

所谓的用户帐号,我想大家都应该知道,就是你登录Linux系统的用户名,(如root或/home目录下的用

户名)。但注意,这里要的不是你的帐号,而是对方的帐号。

终端名称,就是系统发配给你的一个终端号,要知道,一台机子同一个用户(如root),能有多个用户

在用,能多个人用root用户名登录在远程操作Linux系统,所以不得不给每个人(终端)分配一个号来差

别。你能还不知道这个东西是什么,那么输入ps命令吧,一切就明白了

DNS客户端配置/etc/resolv.conf这是DNS的配置文件

nameserver就是DNS服务器在后面就可以跟DNS服务器的IP,你可以在这个文件里定义多个DNS,解析

顺序是从上至下。

每行只能写一个哈,这个要记住

下面就是网关,LINUX网关分全局和局部

vim/etc/sysconfig/network

network这个配置文件里设置的网关就是全局的,对所有网卡都有效。要在GATEWAY这指定,添加或修

改这行就可以了

硬链接

硬链接文件完全等同于原文件,原文件名和连接文件名都指向相同的物理地址。不可以跨文件系统,也

不可以建立目录的硬链接。文件在磁盘中只有一个拷贝,节省硬盘空间;由于删除文件时要删除唯一

的索引连接时才能成功,因此可以防止不必要的误删除。

passwd文件

vim/etc/passwd

michael:x:500:500:michael:/home/michael:/bin/bash

用户名:密码:UID:GID:用户描述:用户主目录:用户登录Shell

shadow文件

vim/etc/shadow

mysql:!!:14530:0:99999:7:::

用户名:密码:自1970/1/1起,密码被修改的天数:两次修改口令间隔最少的天数:密码过期最多多少

天:口令过期之后多少天禁用此用户:

用户过期日期(距1970/1/1的天数):保留字段

新建useraddredhat

在passwd和shadow文件查看

usermod-c描述内容redhat修改用户描述即家目录前那个

usermod-d/home/rehat修改家目录原来是/home/rehat

usermod-e时间redhat设置用户密码过期时间格式20080808

usermod-e7redhat

usermod-e8redhat

usermod-lredhatredhat修改登录名

usermod-g用户组redhat改变用户gid

usermod-G用户组redhat将用户添加人一个新组

usermod-snologinredhat改变用户的登陆shell在/etc/shells查看

usermod-Lredhat锁住密码,使账号不能用

usermod-Uredhat解锁加锁在shadow文件中密码那行的第一个字符多了个!这就是加

锁的标志,MD5加密也有个!

cat/etc/group查看用户组

groupadd添加一个组

groupdel删除一个已存在的组

groupmod-n新组名原组名

gpasswd-a用户名用户组,将一个用户添加入一个组

who查看当前在线的用户

who:查询当前在线的用户

w:查询当前在线用户的详细信息

groups:查询用户所属的组

id:显示当前用户信息

finger:查询用户信息

last:列出最近的用户登录

lastlog:列出每一个用户的最近登录情况

系统默认权限

文件的基数为:666

文件夹的基数为:777

useradd名创建用户

userdel名删除用户

passwd用户名修改用户密码

chmod文件权限文件名字

只有root用户可以用chown来改变文件的拥有者。

chmod后可以用三个数字来表示用户权限

第一位代表文件拥有者权限

第二位代表文件所属组成员权限

第三位代表其他用户权限

一个文件权限分成U,G,O三部分。每部分又分为R,W,X三种权限。那么我们用三组数字来表示,三种

用户的权限。

4(读)

2(写)

1(执行)

用数字表示,比如777

如果是7,就证明他有那三种权限,如果是5就证明那个位置的用户只有4和1的权限,也就是没有2,写

的权限。

文件的拥有者与root用户,可以用chgrp来改变文件所属的组

语法:chgrp组名文件名

一般普通用户的用户ID与组ID的值大于等于500,而系统用户ID与组ID小于500

我们创建一个用户的时候,会自动创建用户主目录,会分配UID,还有密码策略,是在/etc/login.defs

文件规定的

login.defs此文件是新建用户的配置文件

MAIL_DIR/var/spool/mail意思是建立用户的时候同时也在规定这个目录建立邮件目录

PASS_MAX_DAYS99999密码有效期

PASS_MIN_DAYS0密码最小更改时间,单位是天。为0,就是没有限制

PASS_MIN_LEN5密码的最小长度

PASS_WARN_AGE7密码过期前几天提醒用户,默认是7天

UID_MIN新建用户的最小UID是500

UID_MAX新建用户的最大UID是60000

GID_MIN

GID_MAX

CREATE_HOMEyes是否给新建用户建立家目录

UMASK077给用户建立家目录的权限掩码

USERGROUPS_ENAByes在建立一个用户的时候也建立相应的组

MD5_CRYPT_ENAByes使用MD5或DES加密的密码?红帽默认使用的MD5

目录的初始权限是777

文件的初始权限是666

然后用初始权限减去权限掩码得到的就是新建文件或者目录的权限

可以用umask命令查看当前用户的权限掩码

普通用户的掩码是002

root的掩码是0022

新建目录的权限就是777-022=755

新建文件的权根就是666-022=744

用户家目录的掩码是077

用户家目录的权限是777-077=700

权限0755最前一位是2和4叫强制位,1叫冒险位,2代表的是GID,4代表UID,1代表sticky(这里的GID

和UID和以前的不一样)

GID的作用:默认情况下,用户建立的文件属于用户当前所在的组,但是设置了GID以后,表示在此目录

中,任何人建立的文件,都会属于目录所属的组。注意:GID只能对目录设置

UID的作用:当一个文件设置了UID,那么所有用户执行这个文件的时候,都以这个用户的所有者的权限

来执行的。

mkdirredhat

chmod2755redhat/设置GID

查看文件权限时有个s这个就是强制位的标志

chmod0755redhat/把权限改回

这个在文件权限和团队使用文件目录很有用处

sticky

这个功能就更强了,当你们公司有一个交换目录的时候,大家都要对这个目录有写入权限,这样,别人

就可以删除你的文件了,有什么办法不让别人删除你的文件呢?当然sticky可以满足

一旦目录上设置了冒险位,则表示在此目录中,只有文件的拥有者、目录的拥有者与系统管理员可以删

除文件。

查看权限最后一个X变成了t,

ACL可以对一个文件权限做扩展,可以不同的用户对某个文件有不同的权限

getfacl文件名获取文件的访问控制信息

setfacl-mu:用户名:权限文件名

setfacl-mg:用户名:权限文件名

setfacl-x用户名文件名

setfacl-xg:用户名文件名

如:setfacl-mu:redhat:rwxfile

setfacl-mg:redhat:rwfile

setfacl-xredhatfile

setfacl-xg:redhatfile

which显示一个可执行文件的完整路径

whichls

whereis搜索一个可执行工具及相关配置、帮助

whereisls

ls:/bin/ls/usr/share/man/manlp/ls.lp.gz/usr/share/man/manl/ls.l.gz

ls:表示查找的这个命令

/bin/ls是可执行文件位置

后面两个是帮助文件

find

-user:根据文件拥有者寻找文件

-group:根据文件所属组找文件

-name:根据文件名找文件

-perm:根据文件权限寻找文件

-size:根据文件大小寻找文件

-type:根据文件类型寻找文件,参数对应c、b、l、f、d

-o:表达式或

-not:表达式非

查找/home下所有者的root文件:find/home-userroot

查找/etc下面与root有关的文件:find/etc-userroot

找/boot目录下root组的文件:find/boot-grouproot

find/-nameifcfg-eth0

find/-perm725

find/-size+40M

find/-size-40M

find/-size40M

单位k小写,M和G大写

locate是在数据库中查找,所以速度快,但是数据库是有个计划任务来管理更新

touch123321

locate123321

updatedb

/root/123321

uname:显示系统信息

-a系统所有信息

-r系统内核版本

hostname:显示主机名

关于修改主机名字需要修改3三个地方:

1.hostname命令

2.修改/etc/hosts

3.修改/etc/sysconfig/network

last最近用户的登录

lastlog:列出每一个用户的最近登录情况

free:显示内存使用情况

Linux内核的命名机制:

num.num.num

其中第一个数字是主版本号,第二个数字是次版本号,第三个数字是修订版本号.如果次版本号是偶

数,那么该内核就是稳定版的;若是奇数,则是开发版的.头两个数字合在一齐可以描述内核系列.如稳定

版的2.6.4,它是2.6版内核系列.

相关推荐