.xxx .开头的文件为隐藏文件。

文件处理命令==============================================

root: /sbin /usr/sbin

all users: /bin /usr/bin

(1)ls 显示目录文件

ls -a 显示所有文件

ls -l 显示详细信息

ls -d 查看当前目录

drwxr-xr-x

文件类型: d 目录directory

- 二进制文件

l 软链接文件link

(2) cd 切换目录

cd /

cd ..

(3) pwd 当前目录

demo:

pwd

cd/

pwd

(4) touch 创建空文件

touch 文件名

(5)mkdir 创建目录

mkdir 目录名

mkdir /test

mkdir samlee 在当前目录下创建目录

(6) cp 复制文件和目录

cp 源文件 目的目录

cp -R 复制目录 目的目录

demo:

cp /etc/inittal /etc/services /test 可以复制多个

cp -R /etc /test 加R为复制目录

中止命令 CTRL+C

(7) mv 剪切和改名

ls /test

mv services service 改名

mv /test/inittab /tmp/ 移动

mv /test/testfile /tmp/file.test 移动加改名

(8) rm 删除

rm -r 删除目录

demo:

ls /test

rm service 会询问

rm -f testfile 强制删除

rm -r samlee 删除目录(会询问)

rm -rf samlee 强制删除目录

(9) cat 查看文件内容(查看小点的文件)

cat /etc/issue

(10) more 可以分页查看文件内容

空格 或F 显示下一页

Enter 显示下一行

q 退出

(11)head 查看文件的前几行 tail 查看文件的后几行

head -5 /etc/services 查看文件前几行

tail -5 /etc/services 查看文件未尾的几行

tail -f /etc/services 查看文件未尾几行的动态内容

(12) ln -s 产生链接文件(软链接) ln (硬链接)

ln -s /etc/issue /issue.soft 创建软链接 (软链接相当于快捷方式)

ls -l /etc/issue /issue.soft

ln /etc/issue /issue.hard 创建硬链接(相当于cp+同步更新)

ls -l /etc/issue /issue.hard

cp /etc/issue /test/issue 复制时间值不同

ls -l /etc/issue /test/issue

cp -p /etc/issue /test/issue 复制的同时,时间值也复制过去。

查看同步更新

cat /etc/issue

cat /issue.soft

cat /issue.hard

echo "this is a test" >> /etc/issue

cat /etc/issue /issue.soft /issue.hard

如果删除原文件,软链接不能访问,硬链接可以访问

rm /etc/issue

cat /issue.soft

cat /issue.hard

为什么可以同步更新

touch a

ln -s a a.soft

ls a a.hard

ls -i i-inode 查看文件节点 硬链接和原文件的节点是相同的

软链接可以跨分区,,硬链接不能跨分区

touch

ln a /a.hard.2

权限管理命令=======================================

(1) chmod 改变文件或目录权限

u-所有者 g-用户组 0-其它人 + - =

chmod u+wx

chmod o-rx

chmod g=rwx

demo:

ls -l a

chmod u+x a

chmod 0-r a

chmod g=rx a

r-4 w-2 x-1

demo:

ls -l a

chmod 641 a

实验1:

mkdir /prem

ls -ld /prem

touch /prem/newfile

ls -l /prem/newfile

chmod 777 /prem/newfile

ls -ld /prem

ls -l /prem/newfile

su - pankui

rm /prem/newfile

实验2:

chmod 777 /prem

chmod 644 /prem/newfile

ls -ld /prem

ls -l /prem/newfile

su - pankui

rm /prem/newfile

(2) chown 改变文件或目录的所有者

chown pankui /etc/issue

chown pankui a

ls -l a

chown nobody a

ls -l a

添加用户

useradd pankui1

passwd itoldfff

(3) chgrp 改变文件或目录的所属组

ls -l a

chgrp adm a

ls -l a

(4) umask 查看和修改默认目录或文件权限

touch testfile

ls -l testfile

mkdir newdir

ls -ld newdir

umask

0022

0-特殊权限位 022-用户权限位,权限掩码值

777-022 = 755

umask -S

缺省创建文件不能授予可执行权限 644

umask 027

文件搜索命令======================================

(1)which 显示命令的绝对路径 提供别名信息

demo: which ls which chmod

(2)whereis 显示命令的绝对路径 提供帮助文件所在目录

demo: whereis ls whereis chmod

(3)find 查找文件或目录

-name 根据文件名查找

demo:

find /etc -name init 查找/etc下文件名为init的文件

find /etc -name init*

find /etc -name *init* *匹配任意个字符

find /etc -name init??? ?匹配单个字符

-size 根据文件大小查找 (数据块单位)512字节

finc /etc -size +204800

+ 大于

- 小于

-user 根据文件的所有者查找

find /home -user pankui

根据时间来查找

1.ctime atime mtime 以天为单位

2.cmin amin mmin 以分种为单位

c-change 改变,文件属性被修改

a-access 访问

m-modify 修改 文件内容被修改过

-之内 +超过

find /etc -mmin -120 两个不上时之内内容被修改的文件

1.连接符 -a and 与 -o or 或

demo:

find /etc -name init* -a -type f

-type f 二进制文件 l 软链接文件 d 目录

find /etc -name inittab -o -size +204800

2.连接符 find .... -exec 命令 {}\;

-ok(会询问)

{}-表示find查找的结果

\-转义符,符号命令使用本身的含义。

; -表示语句结束。

demo:

find /etc -name inittab -exec ls -l {} \;

find /etc -name testfile3 -exec rm {} \;

find /home -user pankui -exec rm -rf {} \;

find /etc -name init* -a -type f -exec ls -l {} \;

-inum i节点 根据I节点查找

find . -inum 16 -exec rm {} \;

(4) locate 查找文件,但必须数据库更新才能找到。

(5) updatedb 更新文件系统数据库

(6) grep 在文件中搜索字符串匹配的行并输出

grep ftp /etc/sevices

帮助命令====================================

(1) man 获得帮助信息(命令和配置文件)

man ls

man services

man 5 psswd 5是配置文件

(2) info 同上

(3) whatis 知道这个命令是做什么的

apropos 相当于man -k

(4) help 查看shell内置命令的帮助。

压缩解压命令=========================

.gz

(1)gzip 压缩文件

1.只能压缩文件,不能压缩目录,

2.不保留原文件

demo:

gzip newfile4

(2)gunzip 或 gzip -d 解压缩文件

gunzip newfile4.gz

(3) tar 打包目录

.tar.gz

-c 产生.tar打包文件 -x 解包.tar文件

-v 显示详细信息

-f 指定压缩后的文件名

-z 打包同时压缩 -z解压

demo:压缩

tar -zcf newdir.tar.gz newdir

tar -cf newdir.tar newdir

gzip newdir.tar

demo:解压

tar -zxf newdir.tar.gz

(4)file newdir 判断文件类型

.zip 默认win和linux通用格式

(5) zip 压缩保留原文件

zip new.zip new 压缩文件

zip -r test.zip /test 压缩目录

unzip test.zip 解压文件

(6) bzip2

.bz2

demo:

bzip2 -k newfile -k 保留原文件 压缩

bunzip2 newfile.bz2 解压

网络通信命令==============================

(1) write 向另一个用户发信息

write 用户名

write pankui

demo:

write pankui

.......内容........

ctrl + d 结束

(2) wall 向每一个用户发信息(write all)

wall ......内容.......

(3) ping 测试网络连通

ping -c 3 192.168.0.5 -c发送请求包数量

ping -s 60000 192.168.0.5 -s数据包的大小

(4) ifconfig 查看网络设置信息

(4)ifconfig

ifconfig eth0 192.168.0.6 改网卡ip

系统关机命令===============================

(1) shutdown -h now 立即关机

(2) reboot 重启

shell应用技巧=============================

cat /etc/shells

<tab> 命令补全

ctrl +l 清屏

ctrl+u 删除前面所有字符

hestory 上下箭头

命令别名

demo:

alias 查看别名

alias copy=cp 定义别名

unalias copy 删除别名

alias xrm="rm -r" 命令组合要加双引号

> >> 输出重定向

< 输入重定向

2> 2>> 错误输出重定向

demo:

ls -l /tmp > /tmp.msg

date > /tmp.msg 一个大于号会把原文件清空

cat /tmp.msg

ls -l /tmp >>/tmp.msg 两个大于号会追加到下面

wall < /tmp.msg

wall < /etc/issue

cp -R /usr /backup/usr.bak 2> /bak.error

管道

ls -l /etc | more

ls -l /etc | grep init

ls -l /etc | grep init | wc -l 统计行数

命令连接符

; 命令依次执行 pwd; ls; date;

&& 与 第一个成功第二个执行

|| 或 第一个成功第二个不执行

demo:

write mary < /home/pankui/love.txt && rm /home/pankui/love.txt

命令替换符

命令1 `命令2` 将命令2的输出作为命令1的参数

ls -l `which touch`

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

二,文本编辑器 Vim/Vi

1,命令模式 2,插入模式 3,编辑模式

vi filename 进入命令模式

输入i a o 进入插入模式 esc返回命令模式

: 进入编辑模式

demo:

cp /etc/sevices /test

vi /test/services

vi /test/vi.test

输入i 进入插入模式 ESC 返回命令模式

输入:set nu 设置文件行号 回车直接回到命令模式

输入:wq 保存退出

插入命令: ============================

a 光标后

A 行未

i 光标前

I 行首

o 光标下插入行

O 光标上插入行

定位命令:==============================

h j k l 上 下 左 右 或 上下左右方向键

$ 行尾 0 行首

H M L 移至屏幕上端,中端,下端

: set nu 设置行号

: set nonu 取消行号

gg 到第一行

G 到最后一行

nG 到第n行

:n 到第n行

删除命令:=============================

x 删除光标处字符

nx 删除光标后n个字符

dd 删除光标所在行

ndd 删除光标下的n行

dG 删除光标所在行到未尾的内容

D 删除光标到行尾的内容

:n1,n2d 删除n1到n2的所有行

复制 剪切命令:=========================

yy,Y 复制当前行

nyy,nY 复制当前以下n行

dd ndd 剪切

p P 粘贴到到光标下和上

替换和取消命令:========================

r 替换光标所在处字符 修改

R 替换光标后的字符 一直修改 按esc结束

u 取消上一步操作

搜索和替换命令:==========================

/string s向前搜索指定字符串 按n会从前往后找 按N从后往前找。

:set ic 查找时忽略大小写

:set noic 取消忽略大小写

:%s %s全文替换 n1,n2s部分替换

demo:

:%s/ftp/lamp/g

:4,10s/lamp/ftp/g g不需要询问 c会询问

保存退出的命令:===========================

:wq 保存退出 或 ZZ 保存退出

demo:

ls -l /test/services

chmod u-w /test/services

vi /test/services

i

:wq

:wq! 强行保存退出

:q! 不保存退出

:w 保存不退出

:w /test/services.bak 另存为

应用实例:========================

:r /etc/issue 导入文件

:! ls /root 直接执行命令 esc退出

:r !date 将当前时间导入到当前文件

:map 定义快捷键

demo:

:map ^p I#<ESC> ctrl+P == 在行首加#

:map ^E isamlee@lampbrother.net

:map ^B 0x 去掉行首的字母

:1,10s/^/#/g 前十行开头加#

:set nu

:4,8s/^/#/g:

:4,8s/^#//g 去掉4-8行前的#号

:1.5s/^/\/\//g 在开头前加上// 要用转义符

:ab pankui panzaikui 输入pankui直接会替换成panzaikui

:unab pankui 取消定义

unmap 取消快捷键

如果想保存对vi的配置 需要写入vi的配置文件.vimrc

vi ~/.vimrc

set nu

map ^P I#<ESC>

ab pankui panzaikui:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

三, linux软件包管理

1,二进制软件包管理 (RPM,YUM)

RPM================================

sudo-1.7.2pl-5.el5.i386.rpm

软件名 版本号 发行号 硬件平台

(1)缷载

rpm -e sudo

demo: 有依赖关系的软件包缷载

rpm -e samba

rpm -e --nodeps samba 强制缷载

(2)安装

rpm -ivh sudo-1.7.2pl-5.el5.i386.rpm

-i 安装

-v 详细信息

-h 安装进度

ls /mnt/cdrom

mkdir /mnt/cdrom

mount /dev/cdrom /mnt/cdromr

cd /mnt/cdrom

ls

cd CentOS

ls

ls | grep sudo

rpm -ivh sudo-1.7.2pl-5.el5.i386.rpm

rpm -q sudo 查看sudo是否安装

rpm -qa | grep samba

--excludedocs 不安装软件包中的文档文件

rpm -ivh --excludedocs sudo-1.7.2pl-5.el5.i386.rpm

--prefix PATH 指定安装的目录

rpm -ivh --prefix=/usr/local/x sudo-1.7.2pl-5.el5.i386.rpm

--test 测试安装,但不安装

--replacepkgs 覆盖安装

--replacefiles 覆盖冲突文件

--nodeps 忽略依赖关系,强行安装,一般不用

(3)升级

rpm -Uvh sudo-1.8.0pl-5.el5.i386.rpm

(查询)

-a 查询所有已安装的软件包

-f 查询文件所属软件包

-q 查询软件包

-i 显示软件包信息

-l 显示软件包中的文件列表

-d 显示被标为文档的文件列表

-c 显示被标注为配置文件的文件列表

rpm -qf /etc/services 查出所属软件包

rpm -qf /bin/ls

rpm -qi samba 查询软件包信息

rpm -qip sudo-1.8.0pl-5.el5.i386.rpm 查询未安装的软件包信息

rpm -ql sudo 软件包的文件列表

rpm -qlp sudo 未安装软件包的文件列表

rpm -qd 软件包的帮助文档列表

rpm -qc 软件包的配置文档列表

demo:

cd /etc/rc.d/init.d

ls

rpm -qf vncserver

rpm -qi vnc-server

(5)校验

rpm -V sudo

md5sum /etc/services md5校验值改变 5

echo "# this is a test " >> /etc/services

md5sum /etc/services

时间改变 T

chomd 777 /etc/sudoers 权限改变 M

大小改变 S

所有者改变 U

用户组改变 G

设备文件改变 D

软件包文件提取

rpm -qf /etc/inittab

rpm2cpio /mnt/cdrom/CentOS/........rpm | cpio -idv ./etc/inittab

YUM==========================

自动解决软件包依赖关系

方便软件包升级

yum install 安装

demo:

yum install sudo

yum check-update 检测升级

demo:

yum check-update sudo

yum update 升级

demo:

yum update sudo

yum list 软件包管理

demo: yum list | more

yum list |grep sudo

yum info 软件包信息

yum info sodu

yum remove 缷载

demo:

yum remove sudo

rpm -q sudo

yum -help , man yum 帮助

2,源代码包管理

proftpd-1.3.3d.tar.gz

demo:

tar -xzvf proftpd-1.3.3d.tar.gz

./configure --prefix=/usr/local/proftpd

rpm -q gcc

yum install gcc

./configure --prefix=/usr/local/proftpd

make

make install

缷载

kill 'pgrep proftpd' rm -rf /usr/local/proftpd

3,脚本安装管理

tar -xzvf webmin-1.530.tar.gz

cd webmin-1.530

vi README

./setup.sh

lamp 软件包

httpd-2.2.9.tar.gzhttp://www.apache.org/

mysql-5.0.41.tar.gzhttp://dev.mysql.com/downloads/

php-5.2.6.tar.gzhttp://www.php.net/downloads.php

phpMyAdmin-3.0.0-rc1-all-languages.tar.gzhttp://www.phpmyadmin.com/

libxml2-2.6.30.tar.gzftp://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/libxml2-2.6.30.tar.gz

libmcrypt-2.5.8.tar.gzhttp://prdownloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?use_mirror=peterhost

zlib-1.2.3.tar.gzhttp://www.zlib.net/zlib-1.2.3.tar.gz

gd-2.0.35.tar.gzhttp://www.libgd.org/releases/gd-2.0.35.tar.gz

Autoconf-2.61.tar.gzftp://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.gz

freetype-2.3.5.tar.gzhttp://download.savannah.gnu.org/releases/freetype/freetype-2.3.5.tar.gz

libpng-1.2.31.tar.gzftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.31.tar.gz

jpegsrc.v6b.tar.gzhttp://www.ijg.org/files/jpegsrc.v6b.tar.gz

ZendOptimizer330a.tar.gzhttp://wt1.mycodes.net/soft/20071108/ZendOptimizer330a.tar.gz

放在 /usr/local/src

ls | wc -l //统计数量 13个

gcc -v //检查编译工具是否安装

缷载机器上的老版本

rpm -qa | grep httpd //查看httpd是否安装

netstat -tnl //查看端口号是否占用

rpm -e ...... //缷载

进入etc 删除以前的文件

rpm -qa | grep mysql //检查mysql,php是否安装

rpm -qa | grep php

rpm -e ............ --nodeps //缷载

tar -zxvf php....... //解包

rm -rf php....tar.gz //删除原压缩包

开始安装

1,libxml2

cd libxml2-2.222

./configure --help | grep prefix

clear

./configure --prefix=/usr/local/libxml2 //配置

make && make install //编译安装

cd /usr/local/libxml2/ //查看是否安装

ls

2,libmcrypt

cd ..

cd src/

cd libmcrypt-2.5.8

./configure --prefix=/usr/local/libmcrypt

make && make install

3,zlib

cd ..

cd zlib-1.2.3/

./configure --prefix=/usr/local/zlib

make && make install

cd /usr/local/zlib

ls

4,libpng

cd libpng-1.2.32

./configure --prefix=/usr/local/libpng

make && make install

5,jpeg6

mkdir /usr/local/jpeg6

mkdir /usr/local/jpeg6/bin

mkdir /usr/local/jpeg6/lib

mkdir /usr/local/jpeg6/include

mkdir -p /usr/local/jpeg6/man/man1

cd jpeg6-2-2

./configure \

--prefix=/usr/local/jpeg6/ \

--enable-shared \

--enable-statc

make && make install

6,freetype

cd freetype-2.3.5

./configure --prefix=/usr/local/freetype

make && make install

7,autoconf

cd autoconf-2.61/

.configure

make && make install

8,gd2

cd gd2....../

./configure \

--prefix=/usr/local/gd2/ \

--with-zlib=/usr/local/zlib/ \

--with-jpeg=/usr/local/jpeg6/ \

--with-png=/usr/local/libpng/ \

--with-freetype=/usr/local/freetype/

make && make install

9,apache

cd httpd-2.2.9/

./configure \

--prefix=/usr/local/apache2/ \

--sysconfdir=/etc/httpd \

--with-z=/usr/local/zlib/ \

--with-included-apr \

--enable-so \

--enable-deflate=shared \

--enable-expires=shared \

--enable-rewrite=shared \

--enable-staticc-support

make && make install

10,测试apache服务器

netstat -tnl | grep 80

ls /usr/local/apache2/

ls /usr/local/apache2/bin

/usr/local/apache2/bin/apachetl start

/usr/local/apache2/bin/apachetl stop

/usr/local/apache2/bin/apachetl start

netstat -tnl //查看端口

ifconfig

打开浏览器输入ip地址 如果显示it works!代表安装成功

ls /usr/local/apache2/

cd htdocs/

vi demo.html

<html>

<head><title>title</title></head>

<body>

aaaaaaaaaaaaaaaaaa

</body>

</html>

vi demo.php

<?php

echo "aaaaaaaaaaaaaaaaaaaaaa";

?>

11, mysql

创建mysql用户

cd /usr/local/mysql-5.0.41/

groupadd mysql

useradd -g mysql mysql

id mysql

安装

./configure --prefix=/usr/local/mysql \

--with-extra-charset=all

make && make install

拷倍配置文件模板

cp support-files/my-medium.cnf /etcc/my.cnf

cd /usr/local/mysql/

ls

//开启数据存储目录

bin/mysql_install_db --user=mysql

ls //多了一个var的文件

ll

chown -R root .

chown -R mysql var

chgrp -R mysql .

netstat -tnl

打开3306端口 & 在后台执行

/usr/local/mysql/bin/mysqld_safe --user=mysql &

bin/mysqladmin version //看是否成功

bin/mysql //直接可以登录,所以要改权限

select * from mysql.user \G

delete from mysql.user where host!='localhost';//只留一个root用户

flush privileges; //刷新下授权表

set password for 'root'@'localhost' = passwrod('123456'); //加密码

exit;

bin/mysql //现在登录不了

bin/mysql -u root -h localhost -p //登录(需要密码)

123456

create database cms;

show databases;

use cms

create table shop (id int, name varchar(30),price double);

netstat -tnl //查看端口

bin/mysqladmin -u root -p shutdown //关闭端口

123456

/usr/local/apache2/bin/apachetl start

/usr/local/mysql/bin/mysqld_safe --user=mysql &

ls /etc/rc.local //开机自启动文件

将自启动命令加入到开机自启动文件

echo "/usr/local/apache2/bin/apachetl start" >> /etc/rc.local

echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.local

12,php

cd php2374.../

./configure \

--prefix=/usr/local/php \

--with-config-file-path=/usr/local/php/etc \

--with-apxs2=/usr/local/apache2/bin/apx2 \

--with-mysql=/usr/local/mysql/ \

--with-libxml-dir=/usr/local/libxml2/ \

--with-png-dir=/usr/local/libpng/ \

--with-jpeg-dir=/usr/local/jpeg6/ \

--with-freetype-dir=/usr/local/freetype/ \

--with-gd=/usr/local/gd2/ \

--with-zlib-dir=/usr/local/zlib/ \

--with-mcrypt=/usr/local/libmcrypt/ \

--with-mysqli=/usr/local/mysql/bin/mysql_config \

--enable-soap \

--enable-mbstring=all \

--enable-sockets

make && make install

13,lamp环境整合

cp php.ini-dist /usr/local/php/etc/php.ini 创建配置文件

vi /etc/httpd/httpd.conf

加一句

AddType application/x-httpd-php .php .phtml

/usr/local/apache2/bin/apachectl stop

/usr/local/apache2/bin/apachectl start

ps -aux|grep httpd

chown -R deamon.deamon cms_demo

14 Zendoptimizer

cd Zend...../

./install.sh

15, phpmyadmin

cd phpmyadmin...../

./configure