linux学习笔记[重要]

2008.4.17:未完成:telnet下的X win32远程图形界面
2008.4.22:未完成:linux下如何接收windows超级终端发送的文件?
2008.5.3:未完成:phpPgAdmin登录不了postgresql,提示“login failed”

linux命令大全:https://www.360docs.net/doc/ee15413089.html,/zhuicha/onlinehb/linuxcmd/index.html


https://www.360docs.net/doc/ee15413089.html,访问127.0.0.1
编辑/etc/hosts,加入“127.0.0.1 https://www.360docs.net/doc/ee15413089.html, red”即可使用https://www.360docs.net/doc/ee15413089.html,访问127.0.0.1


MySQL
查看是否已安装了MySQL:#rpm -qa |grep mysql
启动MySQL:#service mysqld start 或#/etc/init.d/mysqld start 或#safe_mysqld& //afe_mysqld是MYSQL的实用程序
检验MySQL是否被启动:#service mysqld status 或pstree |grep mysqld
客户端程序:#mysql //进入后可以执行MYSQL支持的所有SQL语句,以分号;或\g结尾
管理工具:#mysqladmin

创建、删除数据库、表、索引:
方法一:(mysql执行SQL语句)
#mysql //启用客户端程序mysql
mysql> CREATE DATABASE sales; //使用SQL语句CREATE DATABASE创建sales数据库
mysql> show databases; //使用show databases命令查看系统中现存的数据库
mysql> DROP DATABASE sales; //使用SQL语句DROP DATABASE删除sales数据库
mysql> use sales; //打开sales数据库
mysql>CREATE TABLE employee( //创建表exployee
employee_id char(6) primary key,
name char(8),
sex char(2),
birthday date);
mysql> show tables; //查看当前数据库sales中现存的表
mysql> drop table employee; //删除sales数据库中的employee表
mysql> describe employee; //查看employee表的结构
mysql> INSERT INTO employee VALUES ('200301','zhangsan','M','1978/5/8'); //向employee表中添加数据
mysql> SELECT * FROM employee; //查看employee表的数据
mysql> CREATE INDEX IDX_employee ON employee(name,birthday); //为现存为employee中的name和birthday创建多列索引
mysql> show index from employee; //查看employee表的索引
mysql> ALTER TABLE products ADD INDEX IDX_products(name); //使用ALTER TABLE语句为现存表products中的name列创建索引
mysql> DROP INDEX IDX_employee ON employee; //使用DROP INDEX删除表employee的索引IDX_employee
mysql> ALTER TABLE Products DROP INDEX IDX_products; //使用ALTER TABLE语句将表products的索引IDX_products删除
mysql> \q //退出客户端程序mysql

方法二:(mysqladmin管理工具)
#mysqladmin create crq1 //使用管理工具mysqladmin创建crq1数据库
#mysqlshow //使用mysqlshow实用程序查看系统中现存的数据库
#mysqladmin drop crq1 //使用管理工具mysqladmin删除crrq1数据库

查看MYSQL配置文件https://www.360docs.net/doc/ee15413089.html,f的内容:#cat /etc/https://www.360docs.net/doc/ee15413089.html,f 或#mysqladmin variables |more
MySQL数据目录中的数据库目录下对应三个文件:
格式文件 .frm 包含表的(列、列类型、索引等)描述信息
数据文件 .MYD 包含表的数据信息,即表的行
索引文件 .MYI 包含数据文件中任何索引的索

引树,无论该表有无索引,此文件都存在

常规日志用来记录有关MySQL服务器运行的常规信息,包括用户的连接、查询等,扩展名".log"
更新日志用来记录修数据库的查询信息,扩展名".001"或".002"之类的3位数字
启用常规日志和更新日志:
#编辑/etc/https://www.360docs.net/doc/ee15413089.html,f文件,在[mysqld]选项中添加log启用常规日志,添加log-updata启用更新日志,例如:
[mysqld]
log
log-update
可在log、log-update后指定所需的日志存储路径和文件,默认位置是MySQL数据目录
#mysqladmin flush-logs //使用实用程序mysqladmin关闭并重新启用常规日志和更新日志

设置MySQL超级用户root的口令:
方法一:使用mysqladmin实用程序将root口令设置为123456
#mysqladmin password '123456' //若之前已设置root口令,则mysqladmin password '123456' -p ,输入前口令后再能修改为新口令
#mysql -u root -p123456 //使用新口令123456连接服务器
方法二:mysql> SET PASSWORD for root=PASSWORD('123'); //修改新口令为123
方法三:mysql> use mysql //进入系统数据库mysql
mysql> UPDATE user SET password=PASSWORD('456') WHERE user='root'; //修改授权表中root的口令为456
mysql> flush privileges; 或
# msaql> \q
#mysqladmin flush-privileges; //由于此方法是直接对授权表user进行修改,而服务器只有在启动时才会加载授权表的权限设置,所以必须使用flush privileges重新加载。
删除匿名用户:
mysql> use mysql //进入系统数据库mysql
mysql> DELETE from user WHERE user='';
mysql> flush privileges; 或
# msaql> \q
#mysqladmin flush-privileges;

设置MySQL数据库权限示例:
添加、撤消新的用户权限:
mysql> GRANT ALL ON *.* TO crq@localhost IDENTIFIED BY 'crqpass' WITH GRANT OPTION; //使用GRANT语句添加一个可以从本地主机连接到MySQL服务器的超级用户crq,连接时必须使用口令crqpass
mysql> GRANT ALL ON *.* TO crq@'%' IDENTIFIED BY '123' WITH GRANT OPTION; //使用GRANT语句添加一个可以从任何地方连接到MySQL服务器的超级用户crq,连接时必须使用口令123
mysql> GRANT select,insert ON sales.employee TO user1@localhost IDENTIFIED BY 'user1pass'; //使用GRANT语句添加一个可以可以从本地主机连接到MySQL服务器的用户user1,并且只授予其针对sales数据库中employee表的select和insert权限
mysql> REVOKE insert ON sales.employee FROM user1@localhost; //撤消用户user1针对sales数据库中employee表的insert权限

MySQL数据库的备份与恢复:
1.数据库sales备份到mysql.bak目录:
#cd /var/lib/mysql
#mysqldump -u root -p123456 --opt sales >mysql_bak/sales_bak080503.sql
2.从mysql_bak目录中恢复数据库sales
mysql> CREATE DATABASE sales;恢复时必需保证sales已删除并重建
mysql> \q
#cd /var/lib/mysql
#mysql -u root -p123456 sales< mysql.bak/sale_bak080503.sql

基于GUI的MySQL客户端

程序:MySSQLGUI、MySQL Control Center
基本WEB的MySQL客户端程序:phpMyAdmin

MySSQLGUI:
1.下载地址:https://www.360docs.net/doc/ee15413089.html,/downloads/other/mysqlgui/
ftp://ftp.dca.fee.unicamp.br/pub/docs/gudwin/java/BD/BancoDados/mysqlgui-win32-static-1.7.5-2.zip
Manage—Options,Server—Host name里填MySQL服务器IP:192.168.190.15
Manage—Options,Client—User name里填:[设置MySQL数据库权限示例]里新建的超级用户crq


MySQL Control Center:
1.下载地址:https://www.360docs.net/doc/ee15413089.html,.tw/pub/Windows/softking/soft/en/m/mysqlcc-0.9.4-win32.zip
Options——General—Language—Simplified Chinese

phpmyadmin主站:https://www.360docs.net/doc/ee15413089.html,
下载地址:https://www.360docs.net/doc/ee15413089.html,/sourceforge/phpmyadmin/phpMyAdmin-2.11.5-all-languages.tar.bz2
放到/var/www/html中解压缩并重命名文件为:phpMyAdmin
编辑phpMyAdmin配置文件:config.inc.php
$cfg['Servers'][$i]['auth_type'] = 'cookie';改为$cfg['Servers'][$i]['auth_type'] = 'http';
添加:$cfg['Servers'][$i]['password'] = '123456';(123456为安装MySQL时root设的密码)

出现错误:
1.“配置文件现在需要绝密的短语密码……”
解决:打开config.inc.php 搜索 $cfg['blowfish_secret'],值随便填,例如:='abc'
2.“linux 无法载入mysql 扩展”
解决:系统设置——添加删除应用程序——万维网服务器——安装phpmysql
3.“没有发现 PHP 的扩展设置mbstring, 而当前系统好像在使用宽字符集……”
未解决:需要重新编译php,redhat自带的未安装好php-mbstring,还未解决。
4.“Probably reason of this is that you did not create configuration file. You might want to use setup script to create one”
解决:将phpmyadmin目录下的config.*.inc.php改名为config.inc.php(我下载的为config.sample.inc.php,需改为config.inc.php,否则报错)

访问地址:http://192.168.80.128/phpMyAdmin/
参考资源:https://www.360docs.net/doc/ee15413089.html,/b772055/d5*******.htm
https://www.360docs.net/doc/ee15413089.html,/html/PHPjichubiancheng/xinshouzhuanqu/20071224/331.html
https://www.360docs.net/doc/ee15413089.html,/message/read_-JUNEJUY4JUMyJUU3_1556.html
https://www.360docs.net/doc/ee15413089.html,/make/phpmyadmin.html
https://www.360docs.net/doc/ee15413089.html,/guoguo1980/archive/2008/02/12/2088648.aspx


PostgreSQL
查看是否已安装了PostgreSQL:#rpm -qa |grep postgresql
启动PostgreSQL:#service postgresql start 或#/etc/init.d/postgresql start 或#su - postgres $pg_ctl start
检验PostgreSQL是否被启动:#service postgresql status 或su - postgres $pg_ctl status 或#pstree |grep postmaster //postmaster是PostgreSQL的守护进程
PostgreSQL实用程序默认只能以PostgreSQL预定义的数据库超级用户postgres的身份执行,而不能以root身份执行。
psql是一个基于命令行的PostgreSQL交互式客户端程序
#su - postgres //切换到PostgreSQL数据库超级用户postgres
$psql template1 //启动客户端程序psql,并连接到模板数据库template1
template1=# //出现该提

示表明已经启动psql,进入了psql模式
PostgreSQL数据目录默认为/var/lib/pgsql/data,更改数据目录的位置:
方法一:
1.#su -postgres
2.$pg_ctl stop
3.$initdb <需要的路径>
4.$pg_ctl start -D <需要的路径>
方法二:
1.#PGDATA2=<所需的数据库存储位置>
2.#export PGDATA2
3.#su -postgres
4.$initlocation PGDATA2
5.$createdb <所需要的数据库名称> -D PGDATA2

创建数据库:
方法一:(执行SQL语句)
template1=# CREATE DATABASE sales //删除使用DROP DATABASE sales
template1=# \l //查看系统中现存的数据库
方法二:(执行实用程序createdb)
template1=# \q //退出客户端程序psql
$createdb sales //删除使用dropdb sales
$psql template1 //再次启用psql
template1=# \l

创建和删除表:
1.template1=# \c sales //连接到sales数据库 使用\?或\h查看命令帮助
2.sales=# CREATE TABLE employee( //创建表exployee
sales(# employee_id char(6) primary key,
sales(# name char(8),
sales(# sex char(2),
sales(# birthday date);
注意: CREATE TABLE / PRIMARY KEY will create implicit index 'employee_pkey' for table 'employee'
CREATE TABLE
3.sales=# \dt //查看sales数据库中现存的表
4.sales=# DROP TABLE employee //删除sales数据库中的employee表

sales=# \d employee //查看employee表的结构
sales=# INSERT INTO employee VALUES ('200301','zhangsan','M','1978/5/8'); //向表中添加数据
sales=# SELECT * from employee; //查看表中数据

创建、删除、重建索引:
sales=# CREATE INDEX idx_employee ON employee(name,birthday); //为现存为employee中的name和birthday创建多列索引
sales=# \di //查看现存的索引
sales=# DROP INDEX idx_employee; //删除索引idx_employee
sales=# REINDEX INDEX idx_employee; //重建索引idx_employee,前提是该索引未删除,否则报错: Relation "idx_employee" does not exist

收回磁盘空间:
sales=# VACUUM; //对sales数据库中的所有表进行清理
sales=# VACUUM FULL; //VACUUM FULL执行更广泛的清理操作,但速度比VACUUM语句慢,并且执行时不允许任何其他针对数据库的操作,但却能收回更多的磁盘空间
sales=# VACUUM employee; //对employee表进行清理
sales=# \q //退出psql,执行实用程序
$vacuumdb -a //执行实用程序vacuumdb,对所有数据库进行清理
$vacuumdb -d sales //对sales数据库进行清理
$vacuumdb -d sales -t 'employee' //对sales数据库中的employee表进行清理

更新统计信息:
sales=# ANALYZE; //更新sales数据库中的所有表的统计信息
sales=# ANALYZE employee; //更新sales数据库中的employee表的统计信息
sales=# VACUUM ANALYZE; //对sales数据库中的所有表进行清理,收回磁盘空间并更新统计信息
sales=# \q //退出psql,执行实用程序
$vacuumdb -d sales -z //对sales数据库进行清理,收回磁盘空间并更新统计信息

连接到Pos

tgreSQL服务器:
$psql [-h hostname] [-U username] [[-d]dbname]
省略-h,表示使用本地的Linux套接字,hostname代表将要连接的主机名
省略-U,表示使用Linux系统当前的用户名来连接PostgreSQL,username代表连接PostgreSQL服务器所使用的 用户名

创建PostgreSQL数据库用户:详细参见:《RH9网络服务》P110
sales=# CREATE USER crq WITH ENCRYPTED PASSWORD '123456' CREATEUSER;
(CREATEUSER,表示crq可以创建新用户,可以跨越所有访问限制,即设置成数据库超级用户,默认为NOCREATEUSER,即为普通用户)
sales=# DROP USER crq;
sales=# \q //退出psql,执行实用程序
$psql -U crq -d sales //使用新建用户crq连接当前PostgreSQL的sales数据库
出错:psql: FATAL: 为用户 "crq" IDENT 认证失败
解决:编辑/var/lib/pgsql/data/pg_hba.conf,顶部加入"local all crq md5"
$pg_ctl reload //重新加载pg_hba.conf
$createuser -U crq -A -D sales2 //使用crq连接服务器并新建带参数-A和-D的不能创建数据库和新建其它用户名的普通用户sales,-A表示NOCREATE USER,-D表示NOCREATEDB,-a表示CREATE USER,-d表示CREATEDB

授予用户特定的权限:
sales=>\!psql -U crq -d sales //使用超级用户crq连接sales数据库
sales=# CREATE GROUP sale //创建用户组sale
sales=# ALTER GROUP sale ADD USER sale1,sale2,sale3; //将用户sale1,sale2,sale3都加入用户组sale
sales=# GRANT SELECT ON employee,products TO GROUP sale; //授予用户组sale针对表employee、products的SELET权限
sales=# GRANT INSERT ON employee TO sale1; //授予用户sale1针对表employee的INSERT权限
sales=# REVOKE INSERT ON employee FROM sale1; //撤消sale1针对表employee的INSERT权限
sales=# ALTER GROUP sale DROP USER sale2; //由于用户组sale有SELECT的权限,所以REVOKE组中成员sale2的SELECT权限并不能生效,原因是组中用户会自动继承所属用户组的权限设置,解决方法是将用户sale2从用户组sale中删除,再运行:REVOKE SELECT ON employee FROM sale2;

备份PostgreSQL数据库:
使用实用程序pg_dump备份数据库sales:
$pg_dump sales > /var/lib/pgsql/backups/sales.back080502
使用实用程序pg_dumpall备份所有PostgreSQL数据库:
$pg_dumpall > /var/lib/pgsql/backups/pgdata.back080502
借助split命令,将数据库sales的备份分解成500KB大小的文件块:
$pg_dump sales | split -b 500 - /var/lib/pgsql/backups/sales_back

恢复PostgreSQL数据库:
从pg_dump的备份恢复sales数据库:
$drop sales //先删除sales数据库
$creatdb sales //再重新创建数据库
$psql sales < /var/lib/pgsql/backups/sales.back080502 //恢复时必需保证sales已删除并重建,否则报错:“Relation 'employee' already exists”
从pg_dumpall的备份恢复sales数据库:
$psql sales < /var/lib/pgsql/backups/pgdata.back080502
从借助split命令备份文件块中恢复sales数据库:
$cat /var/l

ib/pgsql/backups/sales_back* |psql sales

基于GUI的PostgreSQL客户端程序:PgAccess、pgadmin
基本WEB的PostgreSQL客户端程序:phpPgAdmin


PgAccess:
1.PgAccess采用Tcl/TK语言编写,所以在安装PgAccess之前必须安装Tcl/TK语言包:https://www.360docs.net/doc/ee15413089.html,/ActiveTcl/Windows/8.5.2/
PgAccess下载地址:
(1)PgAccess 0.99.0.20040219版:https://www.360docs.net/doc/ee15413089.html,/project/downloading.php?group_id=52209&use_mirror=nchc&filename=pgaccess.exe&49861538
下载后直接运行即可,无需经过第一步安装Tcl/TK语言包
发现问题:第一次运行时连接服务器失败并退出后下次再运行出现启动假死状态,重新下载也无效
解决:下载0.98.8.20030520 版安装并登录即可
(2)PgAccess 0.98.8.20030520 版:
https://www.360docs.net/doc/ee15413089.html,/project/downloading.php?group_id=52209&use_mirror=nchc&filename=pgaccess-0_98_8_20030520-WIN32.zip&20862163
下载后需经过第一步安装Tcl/TK语言包,再将解压缩后的win32/dll文件夹下所有内容复制到windows95/98安装目录下的system文件夹中或windows NT/2000/XP/Server 2003安装目录下的system32文件夹中。
2.(1)设置权限允许crq通过TCP/IP连接PostgreSQL服务器:
编辑/var/lib/pgsql/data/postgresql.conf,修改“#tcpip_socket = false”为“tcpip_socket = true”
(2)编辑/var/lib/pgsql/data/pg_hba.conf,允许用户crq使用md5口令认证方式通过TCP/IP,从IP地址为192.168.190.8的客户端主机连接到PostgreSQL服务器:加入以下内容“host all crq 192.168.190.8 255.255.255.0 md5”
3.重启PostgreSQL服务,使配置生效:#service postgresql restart

phpPgAdmin:
1.下载地址;https://www.360docs.net/doc/ee15413089.html,/?page=download
2.#cd /var/www/html
#tar -jxvf phpPgAdmin-4.2.tar.bz2
#修改phpPgAdmin-4.2/conf/config.inc.php文件,将"$conf['servers'][0]['host'] = '';"改为"$conf['servers'][0]['host'] = '127.0.0.1';"
3.重启Apache和PostgreSQL:#service httpd start #service postgresql start
4.配置PostgreSQL的客户访问控制
编辑/var/lib/pgsql/data/postgresql.conf,修改“#tcpip_socket = false”为“tcpip_socket = true”
编辑/var/lib/pgsql/data/pg_hba.conf,允许用户pgadmin使用md5口令认证方式通过TCP/IP,连接到PostgreSQL服务器:加入以下内容“host all pgadmin 127.0.0.1 255.255.255.255 md5”
重新加载配置文件:$pg_ctl reload 或##service postgresql restart
5.创建pgadmin数据库用户:
#su - postgres
$createuser -P
pgadmin 123456 y y logout


pgadmin(for win)下载:https://www.360docs.net/doc/ee15413089.html,/ftp/pgadmin3/release/v1.8.2/win32/


问题:
卸载再重装PostgreSQL后运行时出错:Lock file "/var/lib/pgsql/data/postmaster.pid" already exists."
解决:删除/var/lib/pgsql/data/postmaster.pid,如果再报出类似5432端口被占用的错误的话,就删除/tmp/.s.PGSQL.5432.lock

使用PostgreSQL数据库做PHP开发https://www.360docs.net/doc/ee15413089.html,/database/sqlserver/1051880.html




显示数据包到达目的主机所经过的路由 #traceroute
显示网络接口状态信息 #netstat -i
显示所有临控中的服务器的Socket和正在使用Socket的程序信息 #netstat -lpe
显示内核路由表信息 #netstat -r #netstat -nr
显示TCP/UDP传输协议的连接状态 #netstat -t #netstat -u
更改主机名 #hostname myhost
查看ARP缓存 #arp
添加一个IP地址和MAC地址的对应记录 #arp -s 192.168.33.15 00:60:08:27:CE:B2
删除和个IP地址和MAC地址的对应缓存记录 #arp -d 192.168.33.15

安全级别配置工具:
主菜单—系统设置—安全级别
或#redhat-config-securitylevel
查看iptables状态:#service iptables status



浏览器:Mozilla、NautiluS、Konqueror、Galeon、lynx
lynx是字符界面上的浏览器 #lynx https://www.360docs.net/doc/ee15413089.html,

电子邮件程序:Mozilla Mail、KMail、Evolution
简单文本邮件客户:Pine、mutt
Pine(Pine is not email、Program for Internet News and Email)
#


架设Mail服务器
1.安装sendmail(第一张光盘)
2.sendmail在后台执行,查看执行中的程序:#ps -x | grep sendmail
启动sendmail:#service sendmail start
测试端口号25:#telnet localhost 25


错误:sendmail start要等很多时间?
解决方案:编辑/etc/hosts,增加以下设置并置最前:
127.0.0.1 localhost.localdomain localhost
192.168.190.15 red. red
参考资源:https://www.360docs.net/doc/ee15413089.html,/tacy/archive/2007/12/11/166967.html

sendmail配置文件:/etc/mail/sendmail.cf
错误:修改了sendmail.cf内的“O DaemonPortOptions=Port=smtp,Addr=192.168.190.15, Name=MTA”后出现“stat=Deferred: Connection refused by [127.0.0.1]”
解决方案;生成cf文件:#m4 sendmail.mc >sendmail.cf
#service sendmail restart

邮件用户代理MUA,Mail User Agent 作用是建立和显示邮件,并向MTA传递邮件
邮件传输代理MTA,Mail Transfer Agent 作用是把邮件发送到合适的目标主机
本地投递代理LDA,Local Dilivery Agent 使用是把接收方MTA收到的邮件信息投递到具体的用户邮箱中
简单邮件传输协议SMTP,Simple Mail Transfer Protocol 采用客户机/服务器模型,发送邮件的SMTP进程是邮件客户机,接收邮件的SMTP进程是服务器,仅能传输基本的文本信息
多用途Internet邮件扩展协议MIME,Multipurpose Internet Mail Extension 增加了SMTP协议的功能,解决了SMTP仅能传送ASCII码文本的限制
邮局协议第3版POP3,Post Office Protocol 3 负责把用户的电子邮件信息从邮件服务器传递到用户的计算机上,在阅读邮件之前把整个邮件下载到客户计算机上
Internet消息访问协议IMAP,Internet Message Access Protocol 在线阅读,邮件始终存放在服务器上而无需下载



配置Open WebMail 前身:NeoMail 1.14
1.下载perl解释器并安装
perl-CGI-2.81-88.i386.rpm perl-Compress-Zlib-1.21-RH9.i386.rpm perl-Text-Iconv-1.2-RH80.i386.rpm perl-

suidperl-5.8.0-88.i386.rpm
https://www.360docs.net/doc/ee15413089.html,/openwebmail/download/redhat/rpm/packages/rh9/
2.下载openwebmail-2.52-1.i386.rpm并安装
https://www.360docs.net/doc/ee15413089.html,/openwebmail/download/redhat/rpm/release/
3.执行Open WebMail的初始化
#/var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init
(通常运行上面命令行会出现错误,根据提供修改信息即可,dbm.conf实际位于:/var/www/cgi-bin/openwebmail/etc/defaults/dbm.conf
出错:“Your MIME::Base64 module is too old (2.12), please update to 3.00 or later.”
解决:下载MIME-Base64-.01.tar.gz
https://www.360docs.net/doc/ee15413089.html,/openwebmail/download/packages/
安装:#tar -zxvf MIME-Base64-3.01.tar.gz
#cd MIME-Base64-3.01
#perl Makefile.PL
#make
#make test
#make install
#cd /var/www/cgi-bin/openwebmail
#./openwebmail-tool.pl --init )
4.#service httpd restart
5.使用Open WebMial
http://192.168.190.15/cgi-bin/openwebmail/openwebmail.pl
登陆时输入用户名和密码,(root帐号好像用不了)
更改为中文界面:工具栏—Pref—语言/图标种类
在shell下读取指定用户的邮件:#mail -u dnvxkj
阅读旧邮件:#mail -f mbox
(操作方法:+ //下一封邮件 — //上一封邮件
d 数字 //删除它几号信件
s 文件名 //将信件保存为文件
r //回信 q //退出 )
发送邮件给指定用户:
#mail dnvxkj@localhost.localdomain
#mail -v dnvxkj@Red. //发送并显示送信的地点、状态等等


Subject: //输入主题
//输入内容
. //输入.号表示正文结束
Cc: //Cc代表抄写,是计算机提示输入的,也可以回车省略




查看未发出的邮件:#mailq
强迫寄出邮件:#sendmail -q
查看等待发送队列:#sendmail -bp
若清空发送队列,把/var/spool/mqueue下的文件删除就清空了

若出现等待发送队列里出现该邮件且mailq不为empty(empty表示全部已发送出去),编辑/etc/hosts文件,加入以下内容
127.0.0.1 localhost.localdomain red
或127.0.0.1 localhost.localdomain 192
或127.0.0.1 localhost.localdomain localhost

即可使用mail dnvxkj@red或mail dnvxkj@red. 、 mail dnvxkj@192或mail dnvxkj@192. 、mail dnvxkj@localhost或mail dnvxkj@localhost. 来给本机其它用户发送邮件,亦可以发送给其它邮箱,例如:#mail -v 123210478@https://www.360docs.net/doc/ee15413089.html,,登陆QQ邮箱后,在垃圾邮件箱里可以看到该邮件!此时显示发件人为:root ,若添加127.0.0.1 https://www.360docs.net/doc/ee15413089.html, red,并发送到QQ邮箱,则此时显示发件人为:root ,由于是虚假域名地址,所以QQ邮箱无法回复

发送附件:
使用mutt写邮件可这样:
$ mutt -a info.php -s filesend
$ To: 123210478@https://www.360docs.net/doc/ee15413089.html,
启动vi写信,
写完信保存退出
:wq
然后 y 发信

此时发现QQ邮箱中显示发件人为:发件人:root <>,也不能回复,解决方案如下:
用户主目录新建文件 .mutt

rc,加入以下内容(设置邮件头):
my_hdr From: AMD-K6 //发邮件的地址
my_hdr Reply-To: AMD-K6 //回复邮件
此时,QQ邮箱中显示发件人为:发件人:amd-k6 ,可以直接回复给dnvxkj@https://www.360docs.net/doc/ee15413089.html,


参考资料:
Mutt百科:https://www.360docs.net/doc/ee15413089.html,/view/1374535.htm
用 MUTT 收发电子邮件:https://www.360docs.net/doc/ee15413089.html,/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380147d8c8c4668d4e419ce3b4c413037bfa6603f1655d3927b3050ae4b5fe8f234777c4734f2c688de4582fcd46e&p=8b2a9445c78903f21ebd9b790b5fc4&user=baidu
https://www.360docs.net/doc/ee15413089.html,/slack/Mutt.html
Mutt email 程序使用入门:https://www.360docs.net/doc/ee15413089.html,/docs/mutt.htm
Linux之openwebmail篇(邮件系统配置方案)
https://www.360docs.net/doc/ee15413089.html,/diary,103470111.shtml
https://www.360docs.net/doc/ee15413089.html,/yanyulou/blog/item/26abfe030b6b818ad43f7ce3.html
apache+sendmail+imap+openwebmail https://www.360docs.net/doc/ee15413089.html,/s/blog_486c81300100028c.html
https://www.360docs.net/doc/ee15413089.html,/brightman/blog/item/e7325982a60dcba20cf4d2a4.html
linux mail命令用法https://www.360docs.net/doc/ee15413089.html,/blog/static/3610065200711279368565/
https://www.360docs.net/doc/ee15413089.html,/hwzlinux/blog/item/d844dfdd5fc5d4ee77c63823.html


安装和启动BIND:
#rpm -qa|grep bind
#service named start
#pstree |grep named //检验BIND是否被启动
#rndc status //查看域名服务器状态



3种技术实现主机名与IP地址之间的转换:Host表、网络信息服务系统(NIS)、域名服务(DNS)

用来控制本地转换程序设置的文件:/etc/host.conf

CIFS(通用Internet文件系统)是SMB(Server Message Block,服务器消息块)的升级版本

DNS服务器返回的查询结果可分为两类:权威的(authoritative)和非权威的(non-authoritative)
高速缓存DNS服务器或只缓存服务器(caching-only-server)
检查named.conf文件:#named-checkconf
检查数据库文件:#named-checkzone
查询DNS数据库的命令行工具:#nslookup
正向查询:名称到IP地址的查询
反向查询:IP地址到名称的查询

DNS:Domain Name System(域名系统)
BIND:Berkeley Internet Name Domain(在Linux中的DNS实现使用的是BIND)
FQDN:fully qualified domain name(主机的绝对域名通常也称为完全域名)

DHCP(Dynamic Host Configuration Protocol)动态主机配置协议

Red Hat Linux下查看本机的IP、Gateway、 Dns:
IP:以root 用户登录,执行ifconfig。其中eth0 是第一块网卡,lo是默认的设备
Gateway:以root 用户登录,执行netstat -rn,以0.0.0.0 开头的一行的Gateway即为默认网关
也可以查看/etc/sysconfig/network文件,里面有指定的地址!
DNS:more /etc/reslov.conf,内容指定如下:
nameserver 202.96.69.38
nameserver 192.168.0.8


killall -9 named;service named start
rh9中的bind有bug,启动后不能停下来。

配置dns域名服务器:
1.编辑主配置文件/etc/named.conf,添加以下内容:
zone "190.168.192.

in-addr.arpa" { //添加正向进行区声明
type master;
file "190.168.192.in-addr.arpa.zone";
};
zone "https://www.360docs.net/doc/ee15413089.html," { //添加反向进行区声明
type master;
file "https://www.360docs.net/doc/ee15413089.html,.zone";
};
2.创建正向解析数据库文件/var/named/https://www.360docs.net/doc/ee15413089.html,.zone
直接输入内容:
$TTL 86400
@ IN SOA https://www.360docs.net/doc/ee15413089.html,. https://www.360docs.net/doc/ee15413089.html,. (
2 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttl
)
IN NS 192.168.190.15.
IN NS 192.168.190.15
www IN A 192.168.190.15
kkk IN A 192.168.190.15
菜单操作:
系统设置——服务器设置——域名服务——新建——正向主区块(https://www.360docs.net/doc/ee15413089.html,)
主名称服务器(https://www.360docs.net/doc/ee15413089.html,.)、增加名称服务器(https://www.360docs.net/doc/ee15413089.html,/192.168.190.15、https://www.360docs.net/doc/ee15413089.html,/192.168.190.15.)

3.创建反向解析数据库文件/var/named/190.168.192.in-addr.arpa.zone
直接输入内容:
$TTL 86400
@ IN SOA https://www.360docs.net/doc/ee15413089.html,. https://www.360docs.net/doc/ee15413089.html,. (
5 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttk
)
@ IN NS https://www.360docs.net/doc/ee15413089.html,.
15 IN PTR https://www.360docs.net/doc/ee15413089.html,.
15 IN PTR https://www.360docs.net/doc/ee15413089.html,.
菜单操作:
系统设置——服务器设置——域名服务——新建——逆向主区块(192.168.190)
主名称服务器(https://www.360docs.net/doc/ee15413089.html,.)、增加逆向地址表(192.168.190.15/https://www.360docs.net/doc/ee15413089.html,/、192.168.190.15/https://www.360docs.net/doc/ee15413089.html,)

测试:
host命令:#https://www.360docs.net/doc/ee15413089.html,
https://www.360docs.net/doc/ee15413089.html, has address 192.168.190.15
#host https://www.360docs.net/doc/ee15413089.html,
https://www.360docs.net/doc/ee15413089.html, has address 192.168.190.15
#host 192.168.190.15
15.190.168.192.in-addr.arpa domain name pointer https://www.360docs.net/doc/ee15413089.html,.
15.190.168.192.in-addr.arpa domain name pointer https://www.360docs.net/doc/ee15413089.html,.
nslookup命令:#nslookup
>https://www.360docs.net/doc/ee15413089.html, //正向查询主机地址
>192.168.190.15 //反向查询域名
>set all //显示当前设置的所有数值
>190.168.192.in-addr.arpa //查询反向域的所有配置
4.发邮件:
(1)编辑/etc/hosts,加入:192.168.190.15 https://www.360docs.net/doc/ee15413089.html, red
#mail dnvxkj@https://www.360docs.net/doc/ee15413089.html,
#mail -u dnvxkj //显示root@https://www.360docs.net/doc/ee15413089.html,发了封邮件给dnvxkj@https://www.360docs.net/doc/ee15413089.html,

参考资源:https://www.360docs.net/doc/ee15413089.html,/jh/4/282429.html



TCP_Wrappers 被称为TCP包装器,它通过读取/etc/hosts.allow、/etc/hosts.deny文件中的规则控制客户计算机对xinetd服务的访问。

xinetd用于管理很多常用的Internet服务,主要目的是为它所管理的Internet服务监听网络请求,被称为超级网络服务,配置文件是/etc/xinetd.conf,xinetd重新读取配置文件,可运行以下命令:
#/etc/rc.d/init.d/xinetd reload 或 #service xinetd reload

ntsysv工具只能设置当前运行级别下的服务启动情况,查看和设置多个运行级别下的服务启动:#chkconfig --list //查看系统的服务启动设置情况
#chkconfig --level 35 named on //设置named服务在运行级别3和5中自动启动
#chkconfig --add httpd //添加一个由chkconfig管理的服务



crond:提供作业调度功能的守护进程(daemon)
named:提供名称解析服务的守护进程
http:提供http服务

的守护进程

显示系统当前的TCP协议连接情况:#netstat -t
查看系统监听端口的情况:#netstat -l
显示以数字表示的端口信息:#netstat -ln

常见的连接状态包括:ESTABLISHED(已建立连接)、SYN SENT(尝试发起连接)、SYN RECV(接受发起的连接)、TIME WAIT(等待结束)、LISTEN(监听)

跟踪本地与远程主机之间的UDP数据报:#traceroute

网络配置工具:#netconfig #service network restart //配置完后需要重启network

显示系统的主机名:#hostname #hostname lanevon //修改系统主机名为lanevon
显示系统中所有服务的运行状态:#service --status-all

激活不活动的网络连接:#ifup 网络接口名称
停止指定的网络连接:#ifdown 网络接口名称

IP地址与TCP端口或者UDP端口的组合称为套接字

FTP:21 SSH:22 Telnet:23 SMTP:25 DNS:53 HTTP:80 POP3:110 HTTPS:443

互联网络信息中心 InterNIC:Internet Network Information Center

TCP/IP模型:
应用层:HTTP、FTP、SMTP、Telnet
传输层:TCP(传输控制协议)、UDP(用户数据报协议)
网络层(互联网层):IP(网际协议)、ICMP(Internet控制消息协议)、ARP、RARP
网络接口层(数据链路层、链路层):Ethernet、FDDI、WLAN


root帐号与普通帐户dnvxkj互换:
#su dnvxkj //切换到dnvxkj
$suspend //挂起,并自动回到root
[1]+ Stopped su dnvxkj
#fg //执行fg,再切换回dnvxkj
su dnvxkj
$


使syslogd重新读取/etc/syslog.conf配置文件:#kill -HUP syslogd

系统备份:tar、dump
恢复由dump创建的备份:restore

禁用su命令:
编辑/etc/pam.d/su,在之前加入:auth requisite /lib/security/pam_deny.so

限制wheel组成员之外的用户使用su命令切换至root用户:
编辑/etc/pam.d/su,将“#auth sufficient /lib/security/$ISA/pam_wheel.so trust use_uid”前面的“#”去掉,只有将普通用户加入到wheel组才可继续使用su root命令,#usermod -G wheel dnvxkj

为普通用户的工作分配相应root权限:sudo
查看是否安装:#rpm -q sudo
查看可以以什么身份运行哪些命令:$sudo -l
编辑/etc/sudoers:
# User alias specification
dnvxkj red=NOPASSWD:/sbin/ifconfig,/bin/ls
//表示普通帐号dnvxkj可以在本地使用root命令ls和ifconfig,例:$sudo ls
Linux系统Sudo命令的使用说明:https://www.360docs.net/doc/ee15413089.html,/sys/redhat-linux/2007-12-19/209130.html

更改口令期限:chage
#chage -l root //列出帐号属性的各个数值
#chage -M 90 dnvxkj //每90天,系统会提示dnvxkj必须更改口令
启用shadow:#pwconv

取消进程:kill 对进程进行优先级调整:nice
列出系统支持的信号值和名称:#kill -l
强行中止他自己建立的所有进程:#kill -9 0
ps -l显示的NI值即为nice值,nice范围是-20~20,默认为0,nice值越低,进程运行得越快
改变进程的nice值:

#renice -3 8434 //改变PID为8434的进程的优先级为-3

vi的保存、退出命令:
:q 结束编辑 :q! 不存档退出 :w 保存文件,继续编辑 :wq :x ZZ 存档后退出

修改防火墙设置:#redhat-config-securitylevel #lokkit #iptables

挂载ISO映像文件:#mount -t iso9660 -o loop linux1.iso /mnt/cdrom
ISO映像是光盘内容的精确复制文件

寻找命令所在位置:whereis (只查找二进制文件:-b; 查找主要文件:-m;查找来源:-s;查找不常见的记录文件:-u) #whereis -m ls

修改用户dnvxkj的主目录设置为/home/dnvxkj2,登录的Shell设置为/usr/bin/gcc:#usermod -d /home/dnvxkj2 -s /bin/bash dnvxkj

接收ls的输出并除去所有包含单词"test"的文件#ls | grep -v "test"
查找test.log文件内包含"linux"的内容并显示行号:#grep -n "linux" test.log
显示test.log文件的尾两行:#tail -n 2 -v test.log
显示test.log文件的头两行:#head -n 2 -v test.log

显示test.log文件,同时显示每一行的行号,并在每行末尾显示$号:
#cat -en test.log

#tar xvf cfile.tar -C /root/sl (把cfile.tar解包至/root/sl文件夹中)
新建一个默认权限为755的目录#mkdir -m 777 newdic2

查找文件find
#find /root -name "install*" -size 8 -print
(-name表示文件名,-size表示文件大小,-print显示整个文件路径和名称)
#find / -name "httpd.conf" access_ log 2>/dev/null
(转移错误提示,尝试查找设置为禁止访问的文件)
#find . -maxdepth 2 -name fred
(查看当前目录及其子目录中一名称为fred的文件,"-maxdepth 2"表示查询目录级别为2)

任务管理命令:at、cron、crontab、atq、batch
cron:用来调度在时间上呈周期性的重复进行任务,这些任务一般属于日常的系统维护
at:用来调度在某一个时间段一次性的任务
batch:用来执行在系统特定状况下(平均载量降到0.8以下)的一次性的进程任务
1.cron
启动crond: #service crond start
重新载入cron守护进程配置:#service crond reload
设置系统自启动cron服务:在/etc/rc.d/rc.local脚本末尾加上:service crond start
查看自己的cron设置:#crontab -u root -l
为用户dnvxkj编辑cron服务:#crontab -u dnvxkj -e
删除用户dnvxkj的cron服务:#crontab -u dnvxkj -r
2.at
#at 23:53 //在23:53时执行计划任务
at>ping https://www.360docs.net/doc/ee15413089.html, //计划任务为ping百度网
//回车转入一个空行,再ctrl+d退出
#atq //查看系统内还未执行的所有at作业
#atrm 1 //删除编号为1的作业
3.batch
#batch //使用方法与at类似
注:/etc/at.allow、/etc/at.dney文件限制对at和batch命令的使用,格式为每行一个用户,且不允许使用空格

软件包管理:#redhat-config-packages
硬件浏览器:#hwbrowser


安装念青五笔
1.https://www.360docs.net/doc/ee15413089.html,/下载miniChinput-0.1.9-1.i386.rpm
2.#rpm -e miniChinput 删除默认的输入法miniChinp

ut
3.#rm -Rf ~/.pyinput 删除用户目录下的.pyinput目录
4.#cd cd /root/.gnome-desktop
#rpm -ivh miniChinput-0.1.9-1.i386.rpm
5.注销登录系统即可

参考资源:https://www.360docs.net/doc/ee15413089.html,/lovenetwork/blog/item/0127debf59a91d0a19d81fcc.html
https://www.360docs.net/doc/ee15413089.html,/faq-0.1.9.html


用什么抓图?答: #import (ImageMagick). 没有就用 #xwd
用什么得知一个窗口的 id 和其它信息?答: #xwininfo
用什么程序监测一个窗口发生的事件?怎么知道按键的 modifier 符号?答: #xev
怎样看到一个窗口的 property?答: #xprop
怎样知道剪贴板里的内容?答: #xclipboard
怎样知道当前 display 的信息?答: #xdpyinfo
怎样刷新所有窗口的屏幕?答: #xrefresh

来源:https://www.360docs.net/doc/ee15413089.html,/homepage/shredderyin/wiki/XwinHowTo.html




显示系统驱动器信息:#hdparm -v /dev/sda
测试驱动器的传输速率:#hdparm -Tt /dev/sda

磁盘分区工具:#parted
#parted

查看磁盘的使用情况:#du -h //-h表示以最适合的容量单位显示
查看磁盘使用空间:#df -h
以易读的模式显示某个子目录的使用情况:#df -hs

主菜单—附件—文件打包器 或#file-roller

#file install.log (file命令用来判定这个文件的类型)

#grep coffee -i myfile.txt (查看myfile.txt中每一个提到"coffee"的地方,且不分大小写)
#grep coffee myfile.txt | lpr (打印myfile.txt中关于"coffee"行的信息,且分大小写)


查看打印队列中的作业:#lpq
取消某作业:#lprm 389


#cd../../etc/X11(向上移动两级目录,向下移动到etc目录,再向下移动到X11目录)
#cd../.. (向上移两级目录)
#cd ~dnvxkj (转至用户dnvxkj的主目录)

主菜单—系统工具—互联网配置向导
或:#internet-druid2








FTP的连接模式有两种:PORT模式(主动模式)、PASV模式(被动模式)
FTP数据传输模式有两种:ASCII模式、Binary(二进制)模式

看看谁在登陆了FTP #ps -xf |grep ftp ,kill 进程号 //停止他的进程

架设FTP服务器
1.安装FTP(第三张光盘)
2.启动FTP服务器:#service vsftpd start
3.主机登录:ftp://192.168.190.15 分三种用户:
(1)real 以linux帐号登录,默认进行此帐号的主目录,并可切换至其它目录
(2)guest 以linux帐号登录,并且只能访问此帐号的主目录,不得访问其它目录
(3)anonymous 匿名登录,默认进行/var/ftp目录
4.(1)将某些帐号改为guest类型,编辑/etc/vsftpd/vsftpd.conf
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
chroot_local_user=YES
,新建chroot_list_file中指定的文件/etc/vsftpd.chroot_list,加入想限制的用户,如:dnvxkj,重启FTP服务器,这样,当dnvxkj进入FTP服务器后,就只能访问主目录,例如:#cd /var会报错
(注:“chroot_localuser=NO”,chroot_list_file中指定

的文件中的用户将不被锁定
“chroot_localuser=YES”,chroot_list_file中指定的文件中的用户将被锁定)
(2)设置所有的本地用户执行chroot
root_local_user=YES
5.拒绝某些帐号登录,在尾部加入以下内容:
userlist_enable=Yes
userlist_file=/etc/https://www.360docs.net/doc/ee15413089.html,er_list
userlist_deny=YES //(userlist_deny=YES 黑名单,userlist_deny=NO 白名单)
编辑/etc/https://www.360docs.net/doc/ee15413089.html,er_list,加入要限制的帐号即可
6.允许一部分特定用户的访问而拒绝其他用户,把5中的userlist_deny值改为NO即可,则/etc/https://www.360docs.net/doc/ee15413089.html,er_list中的用户允许访问,没有列出的用户拒绝访问。
(注:编辑/etc/vsftpd.ftpusers,加入用户名也可拒绝访问,此文件起“黑名单”作用,而/etc/https://www.360docs.net/doc/ee15413089.html,er_list即可以是“黑名单”,也可以是“白名单”。)
7.让匿名登录可以上传文件:
(1)创建要开放上传文件的目录:#mkdir /var/ftp/upload
更改文件夹的拥有者为ftp帐号:#chown ftp.ftp /var/ftp/upload
设置文件夹权限:#chmod 2755 /var/ftp/upload
(2)编辑/etc/vsftpd/vsftpd.conf,找到“#anon_upload_enable=YES”和“#anon_mkdir_write_enable=YES”,去掉前面的“#”,加入此行,设置上传文件的权限:“anon_umask=022”
8.设置登录时的欢迎信息:找到“#ftpd_banner=Welcome to blah FTP service.”,删除前面的“#”并修改要显示的欢迎信息
9.禁止匿名登录:找到“anonymous_enable=yes”改为“anonymous_enable=NO”
10.使用PAM实现虚拟用户
(1)建立包含虚拟用户名和密码的文本文件:
#vi login.txt
dnv //奇数行是用户名
123 //偶数行是密码
xkj
456
(2)将包含vsftpd虚拟用户的文本文件转换成数据库文件
先保证已安装db4-utils包,第二张光盘:#rpm -ivh db4-utils-4.0.14-20.i386.rpm
#db_load -T -t hash -f login.txt /etc/vsfptd/vsftpd_login.db
(3)修改vsftpd的PAM配置文件/etc/pam.d/vsftpd,将文件内容注释掉,修改为:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
(4)检查/etc/vsftpd/vsftpd.conf,保证有以下内容:
guest_enable=Yes //启动vsftpd的虚拟用户功能
guest_username=ftp //指定guest用户的名称,即虚拟用户被映射成哪一个本地系统用户
pam_service_name=vsftpd
(5)重启vsftpd #service vsfptd restart 即可使用该虚拟帐户登录,可发现此用户dnv并没有锁定在/etc/ftp工作目录中,可使用第4的方法将它改为guest类型。
(6)为不同的虚拟用户建立独立的配置文件:
新建目录:/etc/vsftpd_user_conf
以用户名建立文件,例:dnv,写入相应的选项,例如“write_enable=no” //不具备写入权限
anon_other_write_enable=YES (开启匿名帐户和虚拟用户的文件删除\改名权限)

vsftpd有两种运行方式

:独立启动和由xinetd启动,两种运行方式的主机访问控制配置是不同的。
11.独立启动,配置基于主机的访问控制
例:实现下述功能
1。拒绝192.168.2.0/24访问
2。对域https://www.360docs.net/doc/ee15413089.html,和192.168.1.0/24内的所有主机不做连接数限制和最大传输速率限制
3。对其他主机的访问限制每IP的连接数为1,最大传输速率限制为10KB/S
(1)、(2)编辑/etc/hosts.allow,加入以下内容:
vsftpd: https://www.360docs.net/doc/ee15413089.html,,192.168.1.0/24 setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd_tcp_wrap.conf
vsftpd: 192.168.2.0/24: DENY
编辑/etc/vsftpd/vsftpd_tcp_wrap.conf,加入以下内容:
local_max_rate=0
anon_max_rate=0
max_per_ip=0
(3)编辑/etc/vsftpd/vsftpd.conf,设置如下:
tcp_wrappers=YES
local_max_rate=10000
anon_max_rate=10000
max_per_ip=1

#service vsftpd restart //重启vsftpd

12.xinetd启动,配置基于主机的访问控制
(1)编辑/etc/vsftpd/vsftpd.conf,设置如下:
#listen=YES
#tcp_wrappers=YES //加入注释#
(2)从vsftpd的文档目录里面复制xinetd配置文件
#cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd
,设置"disable=yes"为"disable=no"
#service vsftpd stop
#mv /etc/rc.d/rc3.d/S60vsftpd /etc/rc.d/rc3.d/s60vsftpd //修改rc3.d中的文件,使下次启动时不启动独立运行的vsftpd
#service xinetd restart
(3)编辑/etc/xinetd.d/vsftpd,在{}中添加配置语句:
only_from <主机表> //只允许指定的主机访问
no_access <主机表> //指定不能访问的主机
per_source=数值 //每个客户机的最大连接数
instances=数值 //服务器总的并发连接数
access_times=hour:min-hour:min //访问时间限制
例:access_times=8:30-11:30 13:00-18:00 //上午8点半到11点半和下午1点到下午6点才能访问
banner_fail=/etc/vsftpd.busy_banner //当连接失败时显示文件/etc/vsftpd.busy_banner中的内容

13.配置vsftpd在非标准端口下提供服务
#echo "listen_port=10021">> /etc/vsftpd/vsftpd.conf
#service vsftpd restart
测试:#ftp 127.0.0.1 10021

14.配置独立启动的基于IP的虚拟FTP服务器
#ifconfig |grep -1 eth0 //查看本机现有IP
#ifconfig eth0:1 192.168.1.234 up //配置一个虚拟网络接口eth0:1
#ifconfig |grep -1 eth0:1
#mkdir -p /var/ftp2/pub //建立虚拟FTP的服务器目录,权限设为:drwxr-xr-x
#echo "hello">/var/ftp2/pub/test_file //生成测试文件
#useradd -d /var/ftp2 -M ftp2 //创建此虚拟服务器的匿名用户所映射的本地用户ftp2
#编辑/etc/vsftpd/vsftpd.conf,添加“listen_address=192.168.190.15”
#备份vsftpd.conf,改名为vsftpd_site2.conf,修改以下内容:
listen_address=192.168.1.234 //将虚拟服务器绑定到eth0:1接口
ftp_username=ftp2 //使此虚拟服务器的匿名用户映射到本地用户ftp2
(保证:anonymous_enable=YES)
测试:#ftp 192.168.1.234
>ftp
即可浏览/var/ftp2/文件夹



参考资源:linux 下

的vsftp虚拟用户的设置:https://www.360docs.net/doc/ee15413089.html,/viewarticle.php?id=78811



查看默认的Shell种类:#echo $SHELL
查看用户默认的Shell:#finger -l dnvxkj
更换Shell:#chsh -s /bin/tcsh
或#which tch (找到tcsh所存放的路径)
#chsh (变更Shell)
New Shell[/bin/bash]:/bin/tcsh (输入完整的路径与文件名)
限制用户仅能使用FTP或E-mail服务,而不允许telnet或ssh:
修改/etc/passwd文件,将"dnvxkj:x:500:500:dnvxkj:/home/dnvxkj:/bin/bash"改为"dnvxkj:x:500:500:dnvxkj:/home/dnvxkj:/sbin/nologin"
列出最近使用过的命令及其编号:#history
执行编号为2的命令:#!2
减法原则:#!-6 (执行当前编号-6后的命令)
定义命令别名:#alias mycopy='cp' (将mycopy定义成新命令)
取消命令别名:#unalias mycopy
若需要重启后保存该别名,编辑[用户主目录]/.bashrc,添加“alias mycopy='cp'”
拼写检查:
#tcsh (切换成tcsh,默认的bash不支持此功能)
#rmdiz
rmdiz:Command not found (执行错误的命令,会出现错误信息)
#set correct=cmd (设置对输入的命令进行错误修正, 或输入 set correct=all)
#rmdiz (再次执行错误的命令)
CORRENT>rmdir (y|n|e|a)? (tcsh自动修正,显示出最有可能的命令)
#exit (切换回bash)
Shell的环境变理与设置:
显示所有的环境变量:#env
显示所有本地定义的shell变量:#set
修改环境变量:#echo $PATH (显示目前的路径设置)
#PATH="$PATH:/etc" (把/etc加到路径设置)
用export命令也能改变环境变量:#export HISTFILESIZE=750
用户可编辑.bashrc文件,以便每次登录系统时都能使用该变量
若执行文件夹下的可执行文件却报错找不到,例如:
#myfile
bash:myfile: command not found
这是因为系统只到PATH环境变量有设置的路径中去查找文件,没有设置的就不找,而每个用户的主目录以及许多其他的目录默认并没放入PATH环境变量中,所以可用以下方式运行现有目录下的程序:
#./myfile
或将现行目录也加入PATH环境变量中:#PAtH="$PATH:."
例:#export TEST2="good.." //定义环境变量TEST2
#env | grep TEST2 //查看此变量值

#unset TEST2 //清除此环境变量 (若在此前执行了#readonly TEST2,则此变量不可被修改或清作)
#readonly //显示所有只读变量






将目前登录的某用户踢出系统
1.#who (查看目前在系统中的用户,找到其登录的终端代号,如:pts/0)
2.#ps aux | grep pts/0 (查看pts/0终端正在执行中的所有程序,找到PID编号最小的程序,即为该用户登录系统时所执行的第一个程序,通常为其工作环境的Shell,如:15161)
3.#kill -9 15161 (强制删除PID编号最小的程序)



观察用户举动:#w #w dnvxkj
查看当前有哪些用户登录:#who #who -Hu #who -q
查看曾登录此系统用户的last命令:#last | more #last dnvxkj
(last命令显示/var/log/

wtmp文件的信息)
监视CPU使用状况:#top #top d 10 (改变默认刷新时间5秒为10秒)
监视内存使用状况:#free
动态显示内存使用状况:vmstat #vmstat 5 (每隔5秒钟更新内存使用状况)
监测磁盘I/O性能:isostat #isostat 5 (每隔5秒钟更新监测状况)
(若出现找不到"isostat"命令,则挂载第三张光盘, rpm -ivh sysstat-4.0.7-3.i386.rpm)
KDE中查看各种硬件设备的状态、内存和处理器等:[主菜单]—[系统工具]—[信息中心]
查看系统中执行的程序:#ps #ps -u(查看属于自己的程序之详细信息) #ps -l #ps -al(查看其它用户的程序) #ps aux(查看后台执行的程序) #ps aux --sort user(替程序列表排序) #ps aux | grep dnvxkj 等价于#ps uU dnvxkj(搭配其它命令查询特定程序) #pstree (以树形结构列出进程间的派生关系)

1、write
功能:向另外一个用户发信息,以Ctrl+D作为结束,普通用户发信息受到mesg状态影响
语法:write <用户名>
2、wall
功能:向所有用户广播信息,普通用户受到mesg状态影响。
语法:wall [message]
3、mesg
功能:显示或设置是否接受其他用户发来的信息。
语法:mesg [参数]
[参数]
y:接受从其他用户发来的信息
n:不接受从其他用户发来的信息
#mesg
显示当前是否接受其他用户发来的信息
4、talk
功能:两用户即时对话
语法:talk <用户名> 或 talk <用户名> [TTY]

向用户发送消息(三种方法):
1.root允许接收信息:#mesg y
[dnvxkj@Red dnvxkj]$ write root (发送信息给root,回车后输入内容,ctrl+d结束)
若出现"root has messages disabled",表示root设置了"mesg n"
2.向pts/1发送消息:#echo "HI">/dev/pts/1
3.(1)编辑etc/xinetd.d/ktalk、etc/xinetd.d/ntalk,"disable=yes"修改为"disable=no"
(2)#service xinetd.restart
(3)新建两个终端,并以root登录,则"w"命令显示两个root帐号TTY为:pts/0,pts/1
(4)pts/0终端操作:#talk root pts/1
pts/1终端操作:#talk root@red
即可实现两个终端即时对话,在不同用户、不同客户端间亦如此。回到 Shell操作:Ctrl+Z 跳回即时聊天:fg
若不执行操作(1)和(2),会报错:"Error on read from talk daemon: Connection refused"
参考资源:https://www.360docs.net/doc/ee15413089.html,/b4680/d55424.htm

用户磁盘空间管理
1.检查自己的磁盘使用空间:#quota或#quota dnvxkj 查看组:quota -g group
2.编辑/etc/fstab文件,"LABEL=/ / ext3 defaults 1 1"修改为"LABEL=/ / ext3 defaults,usrquota,grpquota 1 1",重启。
3.产生配置文件:
#cd /
#touch https://www.360docs.net/doc/ee15413089.html,r
#touch aquota.group
#quotacheck -ugavmc
4.编辑用户的磁盘限制:#edquota lambert 或 #edquota -u lambert
或以一个已经设置好的用户磁盘限制为模板,复制给其它用户:
#cd /home
#edquota -p lambert * (以lambert

的磁盘限制为模板, 应用在/home目录中的所有帐号)
#edquota -p lambert beny (将lambert的设置,应用benny)
5.编辑组的磁盘限制:#edquota -g group1
编辑所有用户的宽限期:#edquota -t
编辑所有组的宽限期:#edquota -gt
取消磁盘空间的限制:#quotaoff -avug
启动磁盘空间的限制:#quotaon -avug
检查是否超过磁盘限制:#quota -v 或 #quota
检查所有用户的磁盘限制:#repquota -au
检查所有组的磁盘限制:#repquota -ag
检查所有用户和组的磁盘限制:#repquota -a
生成完整的磁盘空间使用情况报告:#repquota /dev/hda3



创建组:#groupadd -g 700 staff (创建GID编号700、名称为staff的组)
#more /etc/group (查看结果)
变更所属的组:#chown -R cassia /home/lambert (将lambert主目录与目录下的所有文件的隶属组都改为cassia)
删除组:#groupdel staff


删除帐号
1.删除帐号及其用户目录和邮件文件:
#userdel -r dnvxkj
(用户目录:/home/dnvxkj、邮件文件:/var/spool/mail下的dnvxkj文件)
2.删除用户后台执行程序:
#ps aux | grep "dnvxkj"
# kill 1802 (1802为前一命令所列出的程序编号)
3.删除计时器
查看是否有该用户的后台任务:#crontab -u dnvxkj -l
若有则删除:#crontab -u dnvxkj -r


停用帐号并保留其数据
编辑/etc/passwd文件,在该帐号前加“#”注释掉即可,或在passwd域的第一个字符前加上"*"号


单用户模式——忘记root口令时的救星
1.开机显示GRUB画面时,按a键切换到GRUB的文字界面,并输入以下参数:
grup append> ro root=LABEL=/ s (加上“s”,表示系统将进入单用户模式)
或编辑/etc/inittab文件,将:id:5:initdefault:修改为id:3:initdefault: (3表示Full multiuser mode)
2.若使用LILO引导装载程序,则在出现启动菜单画面时,直接按“+”键切换到LILO的文字界面,并在命令行最后输入 linux s 命令。
3.存盘重启 shutdown -r now
4.单用户模式无法进入X Window图形模式,且其提示符不同,sh-2.05b#
5.重新设置root口令:#passwd root

注:重新加载/etc/inittab配置文件用:#telinit q


只允许root登录的维护模式
1.#cd /etc
#touch nologin
(当其他用户要登录时,系统只要发现存在nologin文件就会禁止他们登录,若要恢复,只需删除此文件或重启,系统会自动删除。)



设置防火墙:
1.检查是否安装了lokkit防火墙设置工具
#rpm -qa | grep lokkit
#lokkit



远程登录Linux主机:
以telnet命令远程登录
1.检查telnet-server软件包的安装: #rpm -q telnet-server
2.RH9开启telnet服务(linux默认不允许用户以root帐号利用telnet远程登录,原因是telnet在传输过程中没有经过加密编码)
编辑/etc/xinetd.d/telnet,将disable=yes改为disable=no
3.重新加载设

置文件,并立即启用telnet服务
#/etc/init.d/xinetd reload 或:#service xinetd reload
4.在WinXP下即可使用CMD输入:telnet 192.168.190.15登录linux主机
5.允许root帐号远程登录
删除/etc/securetty文件或更改0y文件,加入以下两行:
pts/0
pts/1
(注:此文件是用来限定root帐号可从哪一个终端登录,远程登录是使用pts/0,pts/1等终端,数字0,1或更多代表着目前系统中第几个远程登录的用户,可自由增减以设定允许同时多少用户远程登录系统)

以ssh命令远程登录(linux默认允许用户以root帐号利用telnet远程登录,原因是ssh在传输过程中经过加密编码)
1.在另外的linux系统下远程登录可使用:#ssh 192.168.190.15
在Windows下,可使用putty软件,下载地址:https://www.360docs.net/doc/ee15413089.html,/~sgtatham/putty/download.html
2.取消root远程登录
编辑/etc/ssh/sshd_config,作如下修改:
# Authentication:

#LoginGraceTime 120
#PermitRootLogin yes (前面的#号去掉,并将"yes"改为"no")
#StrictModes yes
3.重启ssh服务器:#/etc/rc.d/init.d/sshd restart 或:#service sshd restart
4.ssh下传输文件:scp、sftp (仅适合双方均为linux环境,且执行命令时,例:#gftp,客户端将显示图形化界面;若为xp环境可用winscp)
#scp scp dnvxkj@192.168.190.15:/home/dnvxkj/root /home/dnvxkj/root1
(拷贝远程文件root至本地)
#scp /root/.ssh/* dnvxkj@192.168.190.15:/root/sshbackup
(将本地文件夹.ssh下的所有文件复制到服务器)
5.putty中若要进入中文目录,设置putty:
Window=>Appearance=>change...将字体设置为Fixedsys字符集设置为CHINESE_GB2312
Window=>Translation=>Character set translation on received data,选择 use font encoding 即可
6.#ssh -l dnvxkj 192.168.190.15 ps -A
(在不登录远程的情况下以用户dnvxkj执行命令,主机使用#w命令看不到该登录用户)

使用Windows的SSH客户端
下载地址:https://www.360docs.net/doc/ee15413089.html,/download/index.html

MS Window与Linux互传文件的小程序WinSCP
1.下载地址:https://www.360docs.net/doc/ee15413089.html,/eng/download.php
https://www.360docs.net/doc/ee15413089.html,/download/winscp410.exe
2.打开Winscp,输入Linux IP,用户名root及口令,Login.
3.拖动即可互传文件

参考资源:https://www.360docs.net/doc/ee15413089.html,/xiaotie/archive/2006/06/01/414987.html
https://www.360docs.net/doc/ee15413089.html,/~ranga/notes/ssh_nopass.html
SCP不用输密码参见:https://www.360docs.net/doc/ee15413089.html,/post/28727/274888
PuTTY 中文教程:https://www.360docs.net/doc/ee15413089.html,/Slancer/archive/2007/07/16/1694169.aspx


本地VM虚拟机文件拷贝至其它机器后,VM—导入,会出错,解决方案:将此虚拟机文件夹Red Hat Linux.vmdk.lck、Red Hat Linux.vmem.lck、Red Hat Linux.vmx.lck的后缀名lck改名即可



Linux下听MP3:XMMS (X MultiMedia System)
1.下载支持MP3的插件,放至/root目录下:https://www.360docs.net/doc/ee15413089.html,/pub/freshrpms/redhat/9/xmms-mp3/xmms-mp3-1.2.7-21.p.fr1.i386.rpm
#c

d /root
# rpm -ivh xmms-mp3-1.2.7-21.p.fr1.i386.rpm
#xmms (运行音频播放器,或通过:主菜单—声音和视频—音频播放器)
#kmix (或:#aumix 运行音量调整软件,或通过:主菜单—声音和视频—音量控制)
2.使其支持中文
功能菜单—功能设定—Fonts—Use fontsets(勾上)—Use X font(勾上)
adobe-helvetica-bold-r-*-*-10-*和-adobe-helvetica-medium-r-*-*-8-*后都加上“,*”


播放MPEG与VCD/DVD
1.下载Xine
https://www.360docs.net/doc/ee15413089.html,
http://xinehq.de/index.php/releases#binaries
Xine执行时使用的链接库(包括Xine主程序):xine-lib-1.1.11.1.tar.bz2
Xine的图形界面:xine-ui-0.99.5.tar.gz
2.安装Xine
#tar -jxf xine-lib-1.1.11.1.tar.bz2 解压缩
#tar -zxf xine-ui-0.99.5.tar.gz 解压缩
安装xine-lib-1.1.11.1
#cd xine-lib-1.1.11.1
#./configure 配置设置文件
#make 编译文件
#make install 安装xine-lib-1.1.11.1
#export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 告知系统xine链接库的位置
安装xine-ui-0.99.5
#cd xine-ui-0.99.5
4.向 /etc/ld.so.conf 文件添加 一行 /usr/local/lib,因为编译好的xine的库文件libxine安装在此路径下
5.#ldconfig 将ld.so.conf文件中的库文件路径写入缓存 (/sbin/ldconfig)

6.#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig (因为编译了xine库文件后,将一个配置文件libxine.pc放在/usr/local/lib/pkgconfig路径下。libxine.pc将为后面的 ./configure提供相关的安装信息。)

#./configure 配置设置文件
#make 编译文件
#make install 安装xine-ui-0.99.5
7.运行xine
#xine

出现错误:“Perhaps you should add the directory containing `libpng.pc'……>1.2.8”
解决:至https://www.360docs.net/doc/ee15413089.html,/projects/libpng/,下载最新版的libpng , libpng-1.2.26.tar.gz至/root/download目录
#cd /root/download
#tar -zxf libpng-1.2.26.tar.gz
#cd libpng-1.2.26
#./configure
#make
#make install
返回执行第6步

https://www.360docs.net/doc/ee15413089.html,/bbs/archiver/tid-80438.html

启动X配置工具:#redhat-config-xfree86
录音机:主菜单—声音和视频—录音机 #gnome-sound-recorder
抓轨及编码工具:主菜单—声音和视频—更多—Grip #grip
秀图软件:GQview 图形—更多图形应用程序—GQview Image Viewer #gqview
图像编辑软件:GIMP GNU Image Manipulation Program #gimp
KDE环境下屏幕截图工具:#ksnapshot
KDE环境下CD播放器:#kscd
PS、PDF查看软件:KGhostView 图形—更多图形应用程序—PS/PDF查看器 #kghostview
PDF查看软件xpdf:图形—PDF Viewer #xpdf 123.pdf
PS查看软件GGV:图形—更多图形应用程序—PostScript Viewer
可(重)写写光盘工具xcdroast:主菜单—系统工具—CD Write #xcdroast
可(重)写写光盘命令工具:mkisofs、cdrecord

相关文档
最新文档