03
Jul

PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力;与ADODB和MDB2相比,PDO更高效。目前而言,实现“数据库抽象层”任重而道远,使用PDO这样的“数据库访问抽象层”是一个不错的选择。

PDO中包含三个预定义的类

PDO中包含三个预定义的类,它们分别是 PDO、PDOStatement 和 PDOException。

一、PDO

PDO->beginTransaction() — 标明回滚起始点
PDO->commit() — 标明回滚结束点,并执行SQL
PDO->__construct() — 建立一个PDO链接数据库的实例
PDO->errorCode() — 获取错误码
PDO->errorInfo() — 获取错误的信息
PDO->exec() — 处理一条SQL语句,并返回所影响的条目数
PDO->getAttribute() — 获取一个“数据库连接对象”的属性
PDO->getAvailableDrivers() — 获取有效的PDO驱动器名称
PDO->lastInsertId() — 获取写入的最后一条数据的主键值
PDO->prepare() — 生成一个“查询对象”
PDO->query() — 处理一条SQL语句,并返回一个“PDOStatement”
PDO->quote() — 为某个SQL中的字符串添加引号
PDO->rollBack() — 执行回滚
PDO->setAttribute() — 为一个“数据库连接对象”设定属性

二、PDOStatement

PDOStatement->bindColumn() — Bind a column to a PHP variable
PDOStatement->bindParam() — Binds a parameter to the specified variable name
PDOStatement->bindValue() — Binds a value to a parameter
PDOStatement->closeCursor() — Closes the cursor, enabling the statement to be executed again.
PDOStatement->columnCount() — Returns the number of columns in the result set
PDOStatement->errorCode() — Fetch the SQLSTATE associated with the last operation on the statement handle
PDOStatement->errorInfo() — Fetch extended error information associated with the last operation on the statement handle
PDOStatement->execute() — Executes a prepared statement
PDOStatement->fetch() — Fetches the next row from a result set
PDOStatement->fetchAll() — Returns an array containing all of the result set rows
PDOStatement->fetchColumn() — Returns a single column from the next row of a result set
PDOStatement->fetchObject() — Fetches the next row and returns it as an object.
PDOStatement->getAttribute() — Retrieve a statement attribute
PDOStatement->getColumnMeta() — Returns metadata for a column in a result set
PDOStatement->nextRowset() — Advances to the next rowset in a multi-rowset statement handle
PDOStatement->rowCount() — Returns the number of rows affected by the last SQL statement
PDOStatement->setAttribute() — Set a statement attribute
PDOStatement->setFetchMode() — Set the default fetch mode for this statement

PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力;与ADODB和MDB2相比,PDO更高效。目前而言,实现“数据库抽象层”任重而道远,使用PDO这样的“数据库访问抽象层”是一个不错的选择。

PDO中包含三个预定义的类

PDO中包含三个预定义的类,它们分别是 PDO、PDOStatement 和 PDOException。

一、PDO

PDO->beginTransaction() — 标明回滚起始点
PDO->commit() — 标明回滚结束点,并执行SQL
PDO->rollBack() — 执行回滚
PDO->__construct() — 建立一个PDO链接数据库的实例
PDO->errorCode() — 获取错误码
PDO->errorInfo() — 获取错误的信息
PDO->exec() — 处理一条SQL语句,并返回所影响的条目数
PDO->getAttribute() — 获取一个“数据库连接对象”的属性
PDO->getAvailableDrivers() — 获取有效的PDO驱动器名称
PDO->lastInsertId() — 获取写入的最后一条数据的主键值
PDO->prepare() — 生成一个“查询对象”
PDO->query() — 处理一条SQL语句,并返回一个“PDOStatement”
PDO->quote() — 为某个SQL中的字符串添加引号
PDO->setAttribute() — 为一个“数据库连接对象”设定属性

详解1) PDO中的数据库连接
$dsn = ‘mysql:dbname=ent;host=127.0.0.1′;
$user = ‘root’;
$password = ‘123456′;
try {
$dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_PERSISTENT => true));
$dbh->query(’set names utf8;’);
foreach ($dbh->query(’SELECT * from tpm_juese’) as $row) {
print_r($row);
}
} catch (PDOException $e) {
echo ‘Connection failed: ‘ . $e->getMessage();
}

许多Web应用会因为使用了向数据库的持久连接而得到优化。持久连接不会在脚本结束时关闭,
相反它会被缓存起来并在另一个脚本通过同样的标识请求一个连接时得以重新利用。
持久连接的缓存可以使你避免在脚本每次需要与数据库对话时都要部署一个新的连接的资源消耗,让你的Web应用更加快速。
上面实例中的array(PDO::ATTR_PERSISTENT => true)就是把连接类型设置为持久连接。

详解2) PDO中的事务
PDO->beginTransaction(),PDO->commit(),PDO->rollBack()这三个方法是在支持回滚功能时一起使用的。PDO->beginTransaction()方法标明起始点,PDO->commit()方法标明回滚结束点,并执行SQL,PDO->rollBack()执行回滚。
<?php
try {
$dbh = new PDO(’mysql:host=localhost;dbname=test’, ‘root’, ”);
$dbh->query(’set names utf8;’);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$dbh->beginTransaction();
$dbh->exec(”INSERT INTO `test`.`table` (`name` ,`age`)VALUES (’mick’, 22);”);
$dbh->exec(”INSERT INTO `test`.`table` (`name` ,`age`)VALUES (’lily’, 29);”);
$dbh->exec(”INSERT INTO `test`.`table` (`name` ,`age`)VALUES (’susan’, 21);”);
$dbh->commit();

} catch (Exception $e) {
$dbh->rollBack();
echo “Failed: ” . $e->getMessage();
}
?>
现在你已经通过PDO建立了连接,在部署查询之前你必须搞明白PDO是怎样管理事务的。如果你以前从未遇到过事务处理,(现在简单介绍一下:)它们提供了4个主要的特性:原子性,一致性,独立性和持久性(Atomicity, Consistency, Isolation and Durability,ACID)通俗一点讲,一个事务中所有的工作在提交时,即使它是分阶段执行的,也要保证安全地应用于数据库,不被其他的连接干扰。事务工作也可以在请求发生错误时轻松地自动取消。

事务的典型运用就是通过把批量的改变“保存起来”然后立即执行。这样就会有彻底地提高更新效率的好处。换句话说,事务可以使你的脚本更快速同时可能更健壮(要实现这个优点你仍然需要正确的使用它们)。

不幸运的是,并不是每个数据库都支持事务,因此PDO需要在建立连接时运行在被认为是“自动提交”的模式下。自动提交模式意味着你执行的每个查询都有它自己隐含的事务处理,无论数据库支持事务还是因数据库不支持而不存在事务。如果你需要一个事务,你必须使用 PDO->beginTransaction() 方法创建一个。如果底层驱动不支持事务处理,一个PDOException就会被抛出(与你的异常处理设置无关,因为这总是一个严重的错误状态)。在一个事物中,你可以使用 PDO->commit() 或 PDO->rollBack() 结束它,这取决于事务中代码运行是否成功。

当脚本结束时或一个连接要关闭时,如果你还有一个未处理完的事务,PDO将会自动将其回滚。这是对于脚本意外终止的情况来说是一个安全的方案——如果你没有明确地提交事务,它将会假设发生了一些错误,为了你数据的安全,所以就执行回滚了。

二、PDOStatement

PDOStatement->bindColumn() — Bind a column to a PHP variable
PDOStatement->bindParam() — Binds a parameter to the specified variable name
PDOStatement->bindValue() — Binds a value to a parameter
PDOStatement->closeCursor() — Closes the cursor, enabling the statement to be executed again.
PDOStatement->columnCount() — Returns the number of columns in the result set
PDOStatement->errorCode() — Fetch the SQLSTATE associated with the last operation on the statement handle
PDOStatement->errorInfo() — Fetch extended error information associated with the last operation on the statement handle
PDOStatement->execute() — Executes a prepared statement
PDOStatement->fetch() — Fetches the next row from a result set
PDOStatement->fetchAll() — Returns an array containing all of the result set rows
PDOStatement->fetchColumn() — Returns a single column from the next row of a result set
PDOStatement->fetchObject() — Fetches the next row and returns it as an object.
PDOStatement->getAttribute() — Retrieve a statement attribute
PDOStatement->getColumnMeta() — Returns metadata for a column in a result set
PDOStatement->nextRowset() — Advances to the next rowset in a multi-rowset statement handle
PDOStatement->rowCount() — Returns the number of rows affected by the last SQL statement
PDOStatement->setAttribute() — Set a statement attribute
PDOStatement->setFetchMode() — Set the default fetch mode for this statement

三、PDOException

PDO 提供了3中不同的错误处理策略。
1. PDO::ERRMODE_SILENT
这是默认使用的模式。PDO会在statement和database对象上设定简单的错误代号,你可以使用PDO->errorCode() 和 PDO->errorInfo() 方法检查错误;如果错误是在对statement对象进行调用时导致的,你就可以在那个对象上使用 PDOStatement->errorCode() 或 PDOStatement->errorInfo() 方法取得错误信息。而如果错误是在对database对象调用时导致的,你就应该在这个database对象上调用那两个方法。
2. PDO::ERRMODE_WARNING
作为设置错误代号的附加,PDO将会发出一个传统的E_WARNING信息。这种设置在除错和调试时是很有用的,如果你只是想看看发生了什么问题而不想中断程序的流程的话。
3. PDO::ERRMODE_EXCEPTION
作为设置错误代号的附件,PDO会抛出一个PDOException异常并设置它的属性来反映错误代号和错误信息。这中设置在除错时也是很有用的,因为他会有效的“放大(blow up)”脚本中的出错点,非常快速的指向一个你代码中可能出错区域。(记住:如果异常导致脚本中断,事务处理回自动回滚。)
异常模式也是非常有用的,因为你可以使用比以前那种使用传统的PHP风格的错误处理结构更清晰的结构处理错误,比使用安静模式使用更少的代码及嵌套,也能够更加明确地检查每个数据库访问的返回值。
关于PHP中异常的更多信息请看Exceptions章节
PDO 使用基于SQL-92 SQLSTATE 的错误代号字符串;特定的PDO驱动应当将自己本身的代号对应到适当的SQLSTATE代号上。PDO->errorCode() 方法只返回单一的SQLSTATE代号。如果你需要关于一个错误的更加有针对性的信息,PDO也提供了一个PDO->errorInfo()方法,它可以返回一个包含了SQLSTATE代号,特定数据库驱动的错误代号和特定数据库驱动的错误说明字符串。

<?php
// 修改默认的错误显示级别
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
?>

属性列表:

PDO::PARAM_BOOL
表示一个布尔类型
PDO::PARAM_NULL
表示一个
SQL中的NULL类型
PDO::PARAM_INT
表示一个
SQL中的INTEGER类型
PDO::PARAM_STR
表示一个
SQL中的SQL CHARVARCHAR类型
PDO::PARAM_LOB
表示一个
SQL中的large object类型
PDO::PARAM_STMT
表示一个
SQL中的recordset类型,还没有被支持
PDO::PARAM_INPUT_OUTPUT
Specifies that the parameter is an INOUT parameter for a stored procedure. You must bitwise-OR this value with an explicit PDO::PARAM_* data type.
PDO::FETCH_LAZY
将每一行结果作为一个对象返回
PDO::FETCH_ASSOC
仅仅返回以键值作为下标的查询的结果集,名称相同的数据只返回一个
PDO::FETCH_NAMED
仅仅返回以键值作为下标的查询的结果集,名称相同的数据以数组形式返回
PDO::FETCH_NUM
仅仅返回以数字作为下标的查询的结果集
PDO::FETCH_BOTH
同时返回以键值和数字作为下标的查询的结果集
PDO::FETCH_OBJ
以对象的形式返回结果集
PDO::FETCH_BOUND
PDOStatement::bindParam()PDOStatement::bindColumn()所绑定的值作为变量名赋值后返回
PDO::FETCH_COLUMN
表示仅仅返回结果集中的某一列
PDO::FETCH_CLASS
表示以类的形式返回结果集
PDO::FETCH_INTO
表示将数据合并入一个存在的类中进行返回
PDO::FETCH_FUNC
PDO::FETCH_GROUP
PDO::FETCH_UNIQUE
PDO::FETCH_KEY_PAIR
以首个键值下表,后面数字下表的形式返回结果集
PDO::FETCH_CLASSTYPE
PDO::FETCH_SERIALIZE
表示将数据合并入一个存在的类中并序列化返回
PDO::FETCH_PROPS_LATE
Available since PHP 5.2.0
PDO::ATTR_AUTOCOMMIT
在设置成
true的时候,PDO会自动尝试停止接受委托,开始执行
PDO::ATTR_PREFETCH
设置应用程序提前获取的数据大小,并非所有的数据库哦度支持
PDO::ATTR_TIMEOUT
设置连接数据库超时的值
PDO::ATTR_ERRMODE
设置
Error处理的模式
PDO::ATTR_SERVER_VERSION
只读属性,表示
PDO连接的服务器端数据库版本
PDO::ATTR_CLIENT_VERSION
只读属性,表示
PDO连接的客户端PDO驱动版本
PDO::ATTR_SERVER_INFO
只读属性,表示
PDO连接的服务器的meta信息
PDO::ATTR_CONNECTION_STATUS
PDO::ATTR_CASE
通过
PDO::CASE_*中的内容对列的形式进行操作
PDO::ATTR_CURSOR_NAME
获取或者设定指针的名称
PDO::ATTR_CURSOR
设置指针的类型,
PDO现在支持PDO::CURSOR_FWDONLYPDO::CURSOR_FWDONLY
PDO::ATTR_DRIVER_NAME
返回使用的
PDO驱动的名称
PDO::ATTR_ORACLE_NULLS
将返回的空字符串转换为
SQLNULL
PDO::ATTR_PERSISTENT
获取一个存在的连接
PDO::ATTR_STATEMENT_CLASS
PDO::ATTR_FETCH_CATALOG_NAMES
在返回的结果集中,使用自定义目录名称来代替字段名。
PDO::ATTR_FETCH_TABLE_NAMES
在返回的结果集中,使用自定义表格名称来代替字段名。
PDO::ATTR_STRINGIFY_FETCHES
PDO::ATTR_MAX_COLUMN_LEN
PDO::ATTR_DEFAULT_FETCH_MODE
Available since PHP 5.2.0
PDO::ATTR_EMULATE_PREPARES
Available since PHP 5.1.3.
PDO::ERRMODE_SILENT
发生错误时不汇报任何的错误信息,是默认值
PDO::ERRMODE_WARNING
发生错误时发出一条
phpE_WARNING的信息
PDO::ERRMODE_EXCEPTION
发生错误时抛出一个
PDOException
PDO::CASE_NATURAL
回复列的默认显示格式
PDO::CASE_LOWER
强制列的名字小写
PDO::CASE_UPPER
强制列的名字大写
PDO::NULL_NATURAL
PDO::NULL_EMPTY_STRING
PDO::NULL_TO_STRING
PDO::FETCH_ORI_NEXT
获取结果集中的下一行数据,仅在有指针功能时有效
PDO::FETCH_ORI_PRIOR
获取结果集中的上一行数据,仅在有指针功能时有效
PDO::FETCH_ORI_FIRST
获取结果集中的第一行数据,仅在有指针功能时有效
PDO::FETCH_ORI_LAST
获取结果集中的最后一行数据,仅在有指针功能时有效
PDO::FETCH_ORI_ABS
获取结果集中的某一行数据,仅在有指针功能时有效
PDO::FETCH_ORI_REL
获取结果集中当前行后某行的数据,仅在有指针功能时有效
PDO::CURSOR_FWDONLY
建立一个只能向后的指针操作对象
PDO::CURSOR_SCROLL
建立一个指针操作对象,传递
PDO::FETCH_ORI_*中的内容来控制结果集
PDO::ERR_NONE (string)
设定没有错误时候的错误信息
PDO::PARAM_EVT_ALLOC
Allocation event
PDO::PARAM_EVT_FREE
Deallocation event
PDO::PARAM_EVT_EXEC_PRE
Event triggered prior to execution of a prepared statement.
PDO::PARAM_EVT_EXEC_POST
Event triggered subsequent to execution of a prepared statement.
PDO::PARAM_EVT_FETCH_PRE
Event triggered prior to fetching a result from a resultset.
PDO::PARAM_EVT_FETCH_POST
Event triggered subsequent to fetching a result from a resultset.
PDO::PARAM_EVT_NORMALIZE
Event triggered during bound parameter registration allowing the driver to normalize the parameter name.

02
Jul

系统信息

arch

显示机器的处理器架构(1)

uname -m

显示机器的处理器架构(2)

uname -r

显示正在使用的内核版本

dmidecode -q

显示硬件系统部件 – (SMBIOS / DMI)

hdparm -i /dev/hda

罗列一个磁盘的架构特性

hdparm -tT /dev/sda

在磁盘上执行测试性读取操作

cat /proc/cpuinfo

显示CPU info的信息

cat /proc/interrupts

显示中断

cat /proc/meminfo

校验内存使用

cat /proc/swaps

显示哪些swap被使用

cat /proc/version

显示内核的版本

cat /proc/net/dev

显示网络适配器及统计

cat /proc/mounts

显示已加载的文件系统

lspci -tv

罗列 PCI 设备

lsusb -tv

显示 USB 设备

date

显示系统日期

cal 2007

显示2007年的日历表

date 041217002007.00

设置日期和时间 – 月日时分年.秒

clock -w

将时间修改保存到 BIOS

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

关机 (系统的关机、重启以及登出 )

shutdown -h now

关闭系统(1)

init 0

关闭系统(2)

telinit 0

关闭系统(3)

shutdown -h hours:minutes &

按预定时间关闭系统

shutdown -c

取消按预定时间关闭系统

shutdown -r now

重启(1)

reboot

重启(2)

logout

注销

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

文件和目录

cd /home

进入 ‘/ home’ 目录’

cd ..

返回上一级目录

cd ../..

返回上两级目录

cd

进入个人的主目录

cd ~user1

进入个人的主目录

cd -

返回上次所在的目录

pwd

显示工作路径

ls

查看目录中的文件

ls -F

查看目录中的文件

ls -l

显示文件和目录的详细资料

ls -a

显示隐藏文件

ls *[0-9]*

显示包含数字的文件名和目录名

tree

显示文件和目录由根目录开始的树形结构(1)

lstree

显示文件和目录由根目录开始的树形结构(2)

mkdir dir1

创建一个叫做 ‘dir1′ 的目录’

mkdir dir1 dir2

同时创建两个目录

mkdir -p /tmp/dir1/dir2

创建一个目录树

rm -f file1

删除一个叫做 ‘file1′ 的文件’

rmdir dir1

删除一个叫做 ‘dir1′ 的目录’

rm -rf dir1

删除一个叫做 ‘dir1′ 的目录并同时删除其内容

rm -rf dir1 dir2

同时删除两个目录及它们的内容

mv dir1 new_dir

重命名/移动 一个目录

cp file1 file2

复制一个文件

cp dir/* .

复制一个目录下的所有文件到当前工作目录

cp -a /tmp/dir1 .

复制一个目录到当前工作目录

cp -a dir1 dir2

复制一个目录

ln -s file1 lnk1

创建一个指向文件或目录的软链接

ln file1 lnk1

创建一个指向文件或目录的物理链接

touch -t 0712250000 file1

修改一个文件或目录的时间戳 – (YYMMDDhhmm)

file file1

outputs the mime type of the file as text

iconv -l

列出已知的编码

iconv -f fromEncoding -t toEncoding inputFile > outputFile

creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.

find . -maxdepth 1 -name *.jpg -print -exec convert “{}” -resize 80×60 “thumbs/{}” \;

batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

文件搜索

find / -name file1

从 ‘/’ 开始进入根文件系统搜索文件和目录

find / -user user1

搜索属于用户 ‘user1′ 的文件和目录

find /home/user1 -name \*.bin

在目录 ‘/ home/user1′ 中搜索带有’.bin’ 结尾的文件

find /usr/bin -type f -atime +100

搜索在过去100天内未被使用过的执行文件

find /usr/bin -type f -mtime -10

搜索在10天内被创建或者修改过的文件

find / -name \*.rpm -exec chmod 755 ‘{}’ \;

搜索以 ‘.rpm’ 结尾的文件并定义其权限

find / -xdev -name \*.rpm

搜索以 ‘.rpm’ 结尾的文件,忽略光驱、捷盘等可移动设备

locate \*.ps

寻找以 ‘.ps’ 结尾的文件 – 先运行 ‘updatedb’ 命令

whereis halt

显示一个二进制文件、源码或man的位置

which halt

显示一个二进制文件或可执行文件的完整路径

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

挂载一个文件系统

mount /dev/hda2 /mnt/hda2

挂载一个叫做hda2的盘 – 确定目录 ‘/ mnt/hda2′ 已经存在

umount /dev/hda2

卸载一个叫做hda2的盘 – 先从挂载点 ‘/ mnt/hda2′ 退出

fuser -km /mnt/hda2

当设备繁忙时强制卸载

umount -n /mnt/hda2

运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用

mount /dev/fd0 /mnt/floppy

挂载一个软盘

mount /dev/cdrom /mnt/cdrom

挂载一个cdrom或dvdrom

mount /dev/hdc /mnt/cdrecorder

挂载一个cdrw或dvdrom

mount /dev/hdb /mnt/cdrecorder

挂载一个cdrw或dvdrom

mount -o loop file.iso /mnt/cdrom

挂载一个文件或ISO镜像文件

mount -t vfat /dev/hda5 /mnt/hda5

挂载一个Windows FAT32文件系统

mount /dev/sda1 /mnt/usbdisk

挂载一个usb 捷盘或闪存设备

mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share

挂载一个windows网络共享

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

磁盘空间

df -h

显示已经挂载的分区列表

ls -lSr |more

以尺寸大小排列文件和目录

du -sh dir1

估算目录 ‘dir1′ 已经使用的磁盘空间’

du -sk * | sort -rn

以容量大小为依据依次显示文件和目录的大小

rpm -q -a –qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n

以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)

dpkg-query -W -f=’${Installed-Size;10}t${Package}n’ | sort -k1,1n

以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

用户和群组

groupadd group_name

创建一个新用户组

groupdel group_name

删除一个用户组

groupmod -n new_group_name old_group_name

重命名一个用户组

useradd -c “Name Surname ” -g admin -d /home/user1 -s /bin/bash user1

创建一个属于 “admin” 用户组的用户

useradd user1

创建一个新用户

userdel -r user1

删除一个用户 ( ‘-r’ 排除主目录)

usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1

修改用户属性

passwd

修改口令

passwd user1

修改一个用户的口令 (只允许root执行)

chage -E 2005-12-31 user1

设置用户口令的失效期限

pwck

检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的用户

grpck

检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的群组

newgrp group_name

登陆进一个新的群组以改变新创建文件的预设群组

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

文件的权限 – 使用 “+” 设置权限,使用 “-” 用于取消

ls -lh

显示权限

ls /tmp | pr -T5 -W$COLUMNS

将终端划分成5栏显示

chmod ugo+rwx directory1

设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限

chmod go-rwx directory1

删除群组(g)与其他人(o)对目录的读写执行权限

chown user1 file1

改变一个文件的所有人属性

chown -R user1 directory1

改变一个目录的所有人属性并同时改变改目录下所有文件的属性

chgrp group1 file1

改变文件的群组

chown user1:group1 file1

改变一个文件的所有人和群组属性

find / -perm -u+s

罗列一个系统中所有使用了SUID控制的文件

chmod u+s /bin/file1

设置一个二进制文件的 SUID 位 – 运行该文件的用户也被赋予和所有者同样的权限

chmod u-s /bin/file1

禁用一个二进制文件的 SUID位

chmod g+s /home/public

设置一个目录的SGID 位 – 类似SUID ,不过这是针对目录的

chmod g-s /home/public

禁用一个目录的 SGID 位

chmod o+t /home/public

设置一个文件的 STIKY 位 – 只允许合法所有人删除文件

chmod o-t /home/public

禁用一个目录的 STIKY 位

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

文件的特殊属性 – 使用 “+” 设置权限,使用 “-” 用于取消

chattr +a file1

只允许以追加方式读写文件

chattr +c file1

允许这个文件能被内核自动压缩/解压

chattr +d file1

在进行文件系统备份时,dump程序将忽略这个文件

chattr +i file1

设置成不可变的文件,不能被删除、修改、重命名或者链接

chattr +s file1

允许一个文件被安全地删除

chattr +S file1

一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘

chattr +u file1

若文件被删除,系统会允许你在以后恢复这个被删除的文件

lsattr

显示特殊的属性

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

打包和压缩文件

bunzip2 file1.bz2

解压一个叫做 ‘file1.bz2′的文件

bzip2 file1

压缩一个叫做 ‘file1′ 的文件

gunzip file1.gz

解压一个叫做 ‘file1.gz’的文件

gzip file1

压缩一个叫做 ‘file1′的文件

gzip -9 file1

最大程度压缩

rar a file1.rar test_file

创建一个叫做 ‘file1.rar’ 的包

rar a file1.rar file1 file2 dir1

同时压缩 ‘file1′, ‘file2′ 以及目录 ‘dir1′

rar x file1.rar

解压rar包

unrar x file1.rar

解压rar包

tar -cvf archive.tar file1

创建一个非压缩的 tarball

tar -cvf archive.tar file1 file2 dir1

创建一个包含了 ‘file1′, ‘file2′ 以及 ‘dir1′的档案文件

tar -tf archive.tar

显示一个包中的内容

tar -xvf archive.tar

释放一个包

tar -xvf archive.tar -C /tmp

将压缩包释放到 /tmp目录下

tar -cvfj archive.tar.bz2 dir1

创建一个bzip2格式的压缩包

tar -xvfj archive.tar.bz2

解压一个bzip2格式的压缩包

tar -cvfz archive.tar.gz dir1

创建一个gzip格式的压缩包

tar -xvfz archive.tar.gz

解压一个gzip格式的压缩包

zip file1.zip file1

创建一个zip格式的压缩包

zip -r file1.zip file1 file2 dir1

将几个文件和目录同时压缩成一个zip格式的压缩包

unzip file1.zip

解压一个zip格式压缩包

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

RPM 包 – (Fedora, Redhat及类似系统)

rpm -ivh package.rpm

安装一个rpm包

rpm -ivh –nodeeps package.rpm

安装一个rpm包而忽略依赖关系警告

rpm -U package.rpm

更新一个rpm包但不改变其配置文件

rpm -F package.rpm

更新一个确定已经安装的rpm包

rpm -e package_name.rpm

删除一个rpm包

rpm -qa

显示系统中所有已经安装的rpm包

rpm -qa | grep httpd

显示所有名称中包含 “httpd” 字样的rpm包

rpm -qi package_name

获取一个已安装包的特殊信息

rpm -qg “System Environment/Daemons”

显示一个组件的rpm包

rpm -ql package_name

显示一个已经安装的rpm包提供的文件列表

rpm -qc package_name

显示一个已经安装的rpm包提供的配置文件列表

rpm -q package_name –whatrequires

显示与一个rpm包存在依赖关系的列表

rpm -q package_name –whatprovides

显示一个rpm包所占的体积

rpm -q package_name –scripts

显示在安装/删除期间所执行的脚本l

rpm -q package_name –changelog

显示一个rpm包的修改历史

rpm -qf /etc/httpd/conf/httpd.conf

确认所给的文件由哪个rpm包所提供

rpm -qp package.rpm -l

显示由一个尚未安装的rpm包提供的文件列表

rpm –import /media/cdrom/RPM-GPG-KEY

导入公钥数字证书

rpm –checksig package.rpm

确认一个rpm包的完整性

rpm -qa gpg-pubkey

确认已安装的所有rpm包的完整性

rpm -V package_name

检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间

rpm -Va

检查系统中所有已安装的rpm包- 小心使用

rpm -Vp package.rpm

确认一个rpm包还未安装

rpm2cpio package.rpm | cpio –extract –make-directories *bin*

从一个rpm包运行可执行文件

rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm

从一个rpm源码安装一个构建好的包

rpmbuild –rebuild package_name.src.rpm

从一个rpm源码构建一个 rpm 包

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

YUM 软件包升级器 – (Fedora, RedHat及类似系统)

yum install package_name

下载并安装一个rpm包

yum localinstall package_name.rpm

将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系

yum update package_name.rpm

更新当前系统中所有安装的rpm包

yum update package_name

更新一个rpm包

yum remove package_name

删除一个rpm包

yum list

列出当前系统中安装的所有包

yum search package_name

在rpm仓库中搜寻软件包

yum clean packages

清理rpm缓存删除下载的包

yum clean headers

删除所有头文件

yum clean all

删除所有缓存的包和头文件

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

DEB 包 (Debian, Ubuntu 以及类似系统)

dpkg -i package.deb

安装/更新一个 deb 包

dpkg -r package_name

从系统删除一个 deb 包

dpkg -l

显示系统中所有已经安装的 deb 包

dpkg -l | grep httpd

显示所有名称中包含 “httpd” 字样的deb包

dpkg -s package_name

获得已经安装在系统中一个特殊包的信息

dpkg -L package_name

显示系统中已经安装的一个deb包所提供的文件列表

dpkg –contents package.deb

显示尚未安装的一个包所提供的文件列表

dpkg -S /bin/ping

确认所给的文件由哪个deb包提供

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

APT 软件工具 (Debian, Ubuntu 以及类似系统)

apt-get install package_name

安装/更新一个 deb 包

apt-cdrom install package_name

从光盘安装/更新一个 deb 包

apt-get update

升级列表中的软件包

apt-get upgrade

升级所有已安装的软件

apt-get remove package_name

从系统删除一个deb包

apt-get check

确认依赖的软件仓库正确

apt-get clean

从下载的软件包中清理缓存

apt-cache search searched-package

返回包含所要搜索字符串的软件包名称

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

查看文件内容

cat file1

从第一个字节开始正向查看文件的内容

tac file1

从最后一行开始反向查看一个文件的内容

more file1

查看一个长文件的内容

less file1

类似于 ‘more’ 命令,但是它允许在文件中和正向操作一样的反向操作

head -2 file1

查看一个文件的前两行

tail -2 file1

查看一个文件的最后两行

tail -f /var/log/messages

实时查看被添加到一个文件中的内容

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

文本处理

cat file1 file2 … | command <> file1_in.txt_or_file1_out.txt

general syntax for text manipulation using PIPE, STDIN and STDOUT

cat file1 | command( sed, grep, awk, grep, etc…) > result.txt

合并一个文件的详细说明文本,并将简介写入一个新文件中

cat file1 | command( sed, grep, awk, grep, etc…) >> result.txt

合并一个文件的详细说明文本,并将简介写入一个已有的文件中

grep Aug /var/log/messages

在文件 ‘/var/log/messages’中查找关键词”Aug”

grep ^Aug /var/log/messages

在文件 ‘/var/log/messages’中查找以”Aug”开始的词汇

grep [0-9] /var/log/messages

选择 ‘/var/log/messages’ 文件中所有包含数字的行

grep Aug -R /var/log/*

在目录 ‘/var/log’ 及随后的目录中搜索字符串”Aug”

sed ’s/stringa1/stringa2/g’ example.txt

将example.txt文件中的 “string1″ 替换成 “string2″

sed ‘/^$/d’ example.txt

从example.txt文件中删除所有空白行

sed ‘/ *#/d; /^$/d’ example.txt

从example.txt文件中删除所有注释和空白行

echo ‘esempio’ | tr ‘[:lower:]‘ ‘[:upper:]‘

合并上下单元格内容

sed -e ‘1d’ result.txt

从文件example.txt 中排除第一行

sed -n ‘/stringa1/p’

查看只包含词汇 “string1″的行

sed -e ’s/ *$//’ example.txt

删除每一行最后的空白字符

sed -e ’s/stringa1//g’ example.txt

从文档中只删除词汇 “string1″ 并保留剩余全部

sed -n ‘1,5p;5q’ example.txt

查看从第一行到第5行内容

sed -n ‘5p;5q’ example.txt

查看第5行

sed -e ’s/00*/0/g’ example.txt

用单个零替换多个零

cat -n file1

标示文件的行数

cat example.txt | awk ‘NR%2==1′

删除example.txt文件中的所有偶数行

echo a b c | awk ‘{print $1}’

查看一行第一栏

echo a b c | awk ‘{print $1,$3}’

查看一行的第一和第三栏

paste file1 file2

合并两个文件或两栏的内容

paste -d ‘+’ file1 file2

合并两个文件或两栏的内容,中间用”+”区分

sort file1 file2

排序两个文件的内容

sort file1 file2 | uniq

取出两个文件的并集(重复的行只保留一份)

sort file1 file2 | uniq -u

删除交集,留下其他的行

sort file1 file2 | uniq -d

取出两个文件的交集(只留下同时存在于两个文件中的文件)

comm -1 file1 file2

比较两个文件的内容只删除 ‘file1′ 所包含的内容

comm -2 file1 file2

比较两个文件的内容只删除 ‘file2′ 所包含的内容

comm -3 file1 file2

比较两个文件的内容只删除两个文件共有的部分

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

字符设置和文件格式转换

dos2unix filedos.txt fileunix.txt

将一个文本文件的格式从MSDOS转换成UNIX

unix2dos fileunix.txt filedos.txt

将一个文本文件的格式从UNIX转换成MSDOS

recode ..HTML < page.txt > page.html

将一个文本文件转换成html

recode -l | more

显示所有允许的转换格式

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

文件系统分析

badblocks -v /dev/hda1

检查磁盘hda1上的坏磁块

fsck /dev/hda1

修复/检查hda1磁盘上linux文件系统的完整性

fsck.ext2 /dev/hda1

修复/检查hda1磁盘上ext2文件系统的完整性

e2fsck /dev/hda1

修复/检查hda1磁盘上ext2文件系统的完整性

e2fsck -j /dev/hda1

修复/检查hda1磁盘上ext3文件系统的完整性

fsck.ext3 /dev/hda1

修复/检查hda1磁盘上ext3文件系统的完整性

fsck.vfat /dev/hda1

修复/检查hda1磁盘上fat文件系统的完整性

fsck.msdos /dev/hda1

修复/检查hda1磁盘上dos文件系统的完整性

dosfsck /dev/hda1

修复/检查hda1磁盘上dos文件系统的完整性

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

初始化一个文件系统

mkfs /dev/hda1

在hda1分区创建一个文件系统

mke2fs /dev/hda1

在hda1分区创建一个linux ext2的文件系统

mke2fs -j /dev/hda1

在hda1分区创建一个linux ext3(日志型)的文件系统

mkfs -t vfat 32 -F /dev/hda1

创建一个 FAT32 文件系统

fdformat -n /dev/fd0

格式化一个软盘

mkswap /dev/hda3

创建一个swap文件系统

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

SWAP文件系统

mkswap /dev/hda3

创建一个swap文件系统

swapon /dev/hda3

启用一个新的swap文件系统

swapon /dev/hda2 /dev/hdb3

启用两个swap分区

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

备份

dump -0aj -f /tmp/home0.bak /home

制作一个 ‘/home’ 目录的完整备份

dump -1aj -f /tmp/home0.bak /home

制作一个 ‘/home’ 目录的交互式备份

restore -if /tmp/home0.bak

还原一个交互式备份

rsync -rogpav –delete /home /tmp

同步两边的目录

rsync -rogpav -e ssh –delete /home ip_address:/tmp

通过SSH通道rsync

rsync -az -e ssh –delete ip_addr:/home/public /home/local

通过ssh和压缩将一个远程目录同步到本地目录

rsync -az -e ssh –delete /home/local ip_addr:/home/public

通过ssh和压缩将本地目录同步到远程目录

dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr ‘dd of=hda.gz’

通过ssh在远程主机上执行一次备份本地磁盘的操作

dd if=/dev/sda of=/tmp/file1

备份磁盘内容到一个文件

tar -Puf backup.tar /home/user

执行一次对 ‘/home/user’ 目录的交互式备份操作

( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr ‘cd /home/share/ && tar x -p’

通过ssh在远程目录中复制一个目录内容

( tar c /home ) | ssh -C user@ip_addr ‘cd /home/backup-home && tar x -p’

通过ssh在远程目录中复制一个本地目录

tar cf – . | (cd /tmp/backup ; tar xf – )

本地将一个目录复制到另一个地方,保留原有权限及链接

find /home/user1 -name ‘*.txt’ | xargs cp -av –target-directory=/home/backup/ –parents

从一个目录查找并复制所有以 ‘.txt’ 结尾的文件到另一个目录

find /var/log -name ‘*.log’ | tar cv –files-from=- | bzip2 > log.tar.bz2

查找所有以 ‘.log’ 结尾的文件并做成一个bzip包

dd if=/dev/hda of=/dev/fd0 bs=512 count=1

做一个将 MBR (Master Boot Record)内容复制到软盘的动作

dd if=/dev/fd0 of=/dev/hda bs=512 count=1

从已经保存到软盘的备份中恢复MBR内容

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

光盘

cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force

清空一个可复写的光盘内容

mkisofs /dev/cdrom > cd.iso

在磁盘上创建一个光盘的iso镜像文件

mkisofs /dev/cdrom | gzip > cd_iso.gz

在磁盘上创建一个压缩了的光盘iso镜像文件

mkisofs -J -allow-leading-dots -R -V “Label CD” -iso-level 4 -o ./cd.iso data_cd

创建一个目录的iso镜像文件

cdrecord -v dev=/dev/cdrom cd.iso

刻录一个ISO镜像文件

gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom -

刻录一个压缩了的ISO镜像文件

mount -o loop cd.iso /mnt/iso

挂载一个ISO镜像文件

cd-paranoia -B

从一个CD光盘转录音轨到 wav 文件中

cd-paranoia — “-3″

从一个CD光盘转录音轨到 wav 文件中(参数-3)

cdrecord –scanbus

扫描总线以识别scsi通道

dd if=/dev/hdc | md5sum

校验一个设备的md5sum编码,例如一张 CD

linux commands line list v1.2 – LinuxGuide.it

返回顶部索引 ^

网络 – (以太网和WIFI无线)

ifconfig eth0

显示一个以太网卡的配置

ifup eth0

启用一个 ‘eth0′ 网络设备

ifdown eth0

禁用一个 ‘eth0′ 网络设备

ifconfig eth0 192.168.1.1 netmask 255.255.255.0

控制IP地址

ifconfig eth0 promisc

设置 ‘eth0′ 成混杂模式以嗅探数据包 (sniffing)

dhclient eth0

以dhcp模式启用 ‘eth0′

02
Jul

前言

1. VIM 是一个文本编辑器,适用于代码编辑。它功能非常强大,这点我逐渐体会到了,但要说用户习惯或方便的话,就因人而异了。

2. 本文是我从 Fedora Linux 8 下的 vimtutor 中学习的小结。如果你是使用 VIM 的新手,希望对你有所帮助;高手的话就不必浪费你的时间了。

3. VIM 的命令很多,一定要实际使用练习,只记命令是很容易忘记的。

4. VIM 中有多种模式,较基本的有:普通模式、插入模式、替换模式、命令模式。还有其它高级的模式,但已超出本文主题。

4.1 VIM 的几种工作模式
普通模式: VIM启动后就默认在此模式工作,该模式下,用户不能正常编辑的,输入的字符被视为一个命令。
可视模式: 在该模式下,用户可以移动光标进行文本的选择,以便进行复制等操作。
插入模式: 在该模式下,用户可以进行正常的文本编辑。
替换模式: 跟插入模式相似,用户可以进行文本编辑,不同之处是,用户输入的字符将替换光标处的字符。该模式也可称覆盖模式。
命令模式: 当用户从普通模式按健 ‘:’ 时,VIM 切换到命令模式,这时,光标切换到编辑器最底端的一行,等待用户输入命令。输入命令完成后,按回车键执行该命令;按 键将取消输入的命令,并返回到普通模式。

4.2 VIM 工作模式的切换

4.2.1 普通模式进行其它模式

a 进入插入模式,即(Append)。
v 进入可视模式,即(Visual)。
i 进入插入模式,即(Insert)。
R 进入替换模式,即(Replace)。
: 进入命令模式。

4.2.2 其它模式进入普通模式

一般地,要想从其它模式退回到普通模式,按 键即可,一次或多次。

5. 约定

5.1 本文主要是介绍普通模式下的常用命令,区分字母大小。

5.2 对于组合键,例如 CTRL-D 表示按下 Control 键不松开,再按字母键 d。

开始

1.1 移动光标

h 向左移动光标
l 向右移动光标
j 向下移动光标
k 向上移动光标

(小键盘的方向键也可以实现光标的移动,但当你熟悉这四个键使用时,编辑的效率将更高!)

1.2 退出VIM

:q 如果没有任何修改,则退出VIM;否则,会提示你是否保存修改。
:q! 放弃所有更改并退出。

1.3 删除

x 删除光标所在的字符。

1.4 插入

i 在光标所在字符前插入字符。

1.5 插入(追回)

a 在光标所在字符后插入字符。
A 在光标所在行的末尾插入字符。

1.6 保存

:w 保存对当前编辑的文件。
:w! 保存对当前编辑的文件,如果文件已经存在,则覆盖文件。
:wq 保存对当前编辑的文件并退出。

2.1 更多删除功能

dw 从光标处开始删除,直到遇到下一个单词。 (可用于删除单词)
de 从光标处开始删除,直到单词的结尾。(可用于删除单词)
d$ 从光标处开始删除,直到行尾。
dd 删除光标所在行。
(在以上这些两个键的删除命令之间,中间加入数字,则表示重复几次这样删除操作。)

2.3 移动光标(以单词为单位)

数字w 从光标处开始,将光标移至第几个单词的开始处。
数字e 从光标处开始,将光标移至第几个单词的结尾处。
0 将光标移至行首位置。
$ 将光标移至行尾位置。

2.4 撤消

u 撤消一次操作。
U 撤消当前在光标所在行的修改。

2.5 重复

CTRL-R 重复最后一次的撤消。

3.1 粘贴

p 粘贴操作。
(如果之前进行了删除操作,则按 p 键时,将在光标处粘贴删除内容)

3.2 替换

r 替换一个字符(Replace)。
R 将普通模式切换至替换模式进行编辑。

3.3 修改

ce 从光标处开始删除,直到单词的结尾,并切换到插入模式进行文本编辑。
cw 从光标处开始删除,直到遇到下一个单词,并切换到插入模式进行文本编辑。
( 该操作与删除键 d 的使用类似。所不同的是,该命令在删除操作之后,进入插入模式,以进行文本编辑。)

4.1 文件状态与光标位置

CTRL-G 将在 VIM 的状态栏显示正在编辑的文件相关信息,如名称、大小等,同时显示光标的当前位置信息。
gg 将光标移到文件的开始处。
G 将光标移到文件的结尾处。
数字G 将光标移到第几行。

4.2 查找

/ VIM 将光标移到最底行,此时输入文本并回车进行向后查找。接着,使用 n 键向后查找下一个; 使用 N 键向前查找下一个。
? VIM 将光标移到最底行,此时输入文本并回车进行向前查找。接着,使用 n 键向前查找下一个; 使用 N 键向后查找下一个。

4.3 显示括号是否匹配

% 将光标移到有括号的位置,按此键将高亮显示匹配的括号。(常用于检查代码中的括号是否匹配)

4.4 查找替换

:s/old/new 从光标处开始,向后查找一个 old 文本,并将它替换成 new 文本。
:s/old/new/g 将光标所在行的所有 old 文本替都换成 new 文本。
:数字,数字s/old/new/g 将第几行到第几行的所有 old 文本都替换成 new 文本。
:%s/old/new/g 将文件中所有 old 文本替都换成 new 文本。
:%s/old/new/gc 将文件中所有 old 文本替都换成 new 文本,但要进行确认。

5.1 执行外部命令

:! 例如命令 :!ls 将在列出当前目录下的文件列表。
:sh 将打开一个新的 SHELL 控制台。

5.2 选择部分文本进行另存为文件

例如,按 v 键进行可视模式;移到光标会高亮选择文本;输入 :w test.txt 将会把选择的部分文本保存到 test.txt 文件。

5.3 在文件中插入外部文本

例如,普通模式下,输入 :r test.txt 将会读入 test.txt 文件的内容到光标处。
例如,普通模式下,输入 :r !ls 将会把命令 ls 的输出读入到文件的光标处。

6.1 插入新行

o 在光标所在行下面插入一新行,并进入插入模式以进行编辑。
O 在光标所在行上面插入一新行,并进入插入模式以进行编辑。

6.2 复制粘贴

首先,按键 v 进入可视模式,移动光标高亮选择文本,接着,按键 y 以对所选文本进行复制,然后,将光标移到要粘贴的位置按键 p 完成粘贴操作。

6.3 设置选项

:set 选项 设置一个选项。
:set 选项? 查询该选项是否已经设置。
(常用的选项有: ic 或 IgnoreCase,hls 或 HighLightSearch,is 或 IncrementSearch。 在选项前面加 no 表示关闭该选项,如 :set nohls 表示查找时不高亮显示)
(输入 :set 之后,按键 CTRL-D 将列出所有可用的选项,也可按 TAB 键自动匹配一个选项)

6.4 滚动屏幕

CTRL-E 向下滚动一行。
CTRL-D 向下滚动一屏。
CTRL-Y 向上滚动一行。
CTRL-Y 向上滚动一屏。
z 光标所在行置顶。
z. 光标所在行垂直居中。
z- 光标所在行置底。

6.5 返回光标的历史位置

CTRL-O 返回到光标上一次的历史位置。
CTRL-I 撤消返回到光标上一次的历史位置。

7.1 获取帮助

:help 进入帮助页面。
:help xxx 进入 xxx 的主题帮助,如果有的话。

01
Jul

$a=”<img src=0.jpg>ghfh<br/>”;
$str=”aaaa<img src=\”\” >bbbb<head>cccc </div>dddddd<div>eeeee<br/>”;
echo preg_replace(”/<[^>]*>/i”,”",$a); //将所有<>标记包住的内容都去掉

18
Jun

公司今天测试系统时提了一个新需求把FLASH上面的一个按钮去掉,可俺不会FLASH,在老大的提示下俺用层来把按钮遮盖掉。代码如下:

<style type=”text/css”>
<!–
div {
position:absolute;
top:20px;
left:20px;
width:200px;
height:200px;
background:red
}
object {
width:500px;
height:100px;
}
–>
</style>
<div>
web 标准常见问题大全web标准常见问题大全web标准常见问题大全web标准常见问题大全web标准常见问题大全web标准常见问题大全web标准常见问题大全web标准常见问题大全web标准常见问题大全web标准常见问题大全web标准常见问题大全web标准常见问题大全web标准常见问题大全web标准常见问题大全
</div>
<object type=”application/x-shockwave-flash” data=”http://gg.blueidea.com/2005/www/m533-104.swf”>
<param name=”movie” value=”http://gg.blueidea.com/2005/www/m533-104.swf” />
<param name=”wmode” value=”transparent” />
</object>

13
Jun

在上一篇换源的基础上安装MPLAYER那样就可能看电影啦!

安装 Mplayer

sudo apt-get install mplayer mplayer-fonts

加快启动速度

如果启动速度变慢,试试打开mplayer,在preferences ——misc里面把stop xscreensaver前面的对勾去掉

安装解码器 w32codecs

sudo mkdir /usr/lib/codecs/
cd /tmp
wget -c http://www.mplayerhq.hu/MPlayer/releases/codecs/all-20071007.tar.bz2
tar jxvf all-20071007.tar.bz2
sudo mv all-20071007*/* /usr/lib/codecs/

如果播放rmvb只有声音没有画面或者报错的话:

sudo apt-get install libstdc++5

安装浏览器插件

sudo apt-get install mozilla-mplayer
重启Firefox使mozilla-mplayer插件生效

13
Jun

刚装好ubuntu9.04,一般默认的源很慢,所以要换源。

步骤一:备份文件

sudo cp /etc/apt/sources.list  /etc/apt/sources.list.backup

步骤二:编辑文件

sudo gedit /etc/apt/sources.list,清空原文件内容,以我的配置为例把下面的拷贝到文件中:

##Mirror.lupaworld.com更新服务器(浙江省杭州市双线服务器,推荐)
deb http://mirror.lupaworld.com/ubuntu intrepid main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu intrepid-security main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu intrepid-updates main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu intrepid-backports main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu intrepid-proposed main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu intrepid main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu intrepid-security main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu intrepid-updates main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu intrepid-backports main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu intrepid-proposed main restricted universe multiverse

##台湾的官方源速度也相当不错,有时甚至快于内地的
deb http://tw.archive.ubuntu.com/ubuntu jaunty main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu jaunty-security main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu jaunty-updates main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu jaunty-backports main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu jaunty-proposed main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu jaunty main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu jaunty-security main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu jaunty-updates main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu jaunty-backports main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu jaunty-proposed main restricted universe multiverse

##上海市上海交通大学更新服务器(教育网,推荐校园网和网通用户使用)
deb http://ftp.sjtu.edu.cn/ubuntu/ jaunty main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ jaunty-backports main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ jaunty-proposed main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ jaunty-security main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ jaunty-updates main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ jaunty main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ jaunty-backports main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ jaunty-proposed main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ jaunty-security main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ jaunty-updates main multiverse restricted universe

##网易163更新服务器
deb http://mirrors.163.com/ubuntu/ jaunty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jaunty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jaunty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jaunty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jaunty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jaunty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jaunty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jaunty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jaunty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jaunty-backports main restricted universe multiverse

##Archive.ubuntu.com更新服务器(欧洲,此为官方源,电信网通用户使用)
deb http://archive.ubuntu.com/ubuntu/ jaunty main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jaunty-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jaunty-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jaunty-proposed main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jaunty-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ jaunty main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ jaunty-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ jaunty-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ jaunty-proposed main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ jaunty-backports main restricted universe multiverse

完后一定执行:
sudo apt-get update

09
Jun

昨天让迪拜那边的朋友看看能不能访问http://www.bing.com,她说可以,bing果然被中国屏蔽了,原因大家应该都知道,关键词没过滤呗。