.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 [email protected]
: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