还是搜国外的资料靠谱,英文关键字 ubuntu 10.04 text boot
在 /etc/init/rc-sysinit.conf:
env DEFAULT_RUNLEVEL=3 设置启动默认级别为3
in /etc/init/gdm.conf:
start on (filesystem
and started hal
and tty-device-added KERNEL=tty7
and (graphics-device-added or stopped udevtrigger)
and runlevel [!3]) 添加这一行
stop on runlevel [016]
然后就可以了。回去试试看
Wednesday, May 30, 2012
Tuesday, May 29, 2012
Java PreparedStatement 批处理执行
更新一个数据表字段,数据量较大的情况下,不能每次执行一条sql语句,这样数据库负担太大,而且速度相当慢。所以要采用批处理的方法执行。
- Statement批量处理和事务代码如下:
- package com.ambow.day20.jdbc.JDBCTestCommitAndRollback;
- import java.sql.Connection;
- import java.sql.SQLException;
- import java.sql.Statement;
- import com.ambow.day19.jdbc.util.JDBCConAndClo;
- /*
- *1,首先把Auto commit设置为false,不让它自动提交
- *2,进行手动提交(commit)
- *3,提交完成后回复现场将Auto commit,还原为true,
- *4,当异常发生执行catch中SQLException时,记得要rollback(回滚);
- * */
- public class StatementCommitAndRollbackTest {
- public static void main(String args[]) {
- Connection con = null;
- Statement stm = null;
- try {
- con = JDBCConAndClo.getConnectionBao();
- stm = con.createStatement();
- con.setAutoCommit(false);
- // 若不出现异常,则继续执行到try语句完,否则跳转到catch语句中
- stm.addBatch("insert into student values(23,'tangbao','高数',100)");
- stm.addBatch("insert into student values(24,'王定','c#',98)");
- stm.addBatch("insert into student values(25,'王国云','java',90)");
- stm.addBatch("insert into student values(26,'溜出','英语',89)");
- stm.addBatch("insert into student values(27,'wqde','java',63)");
- /*
- * int[] executeBatch() throws
- * SQLException将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。
- */
- stm.executeBatch();
- System.out.println("插入成功!");
- // commit:若成功执行完所有的插入操作,则正常结束
- con.commit();
- System.out.println("提交成功!");
- con.setAutoCommit(true);
- } catch (SQLException e) {
- e.printStackTrace();
- try {
- //rollback: 若出现异常,对数据库中所有已完成的操作全部撤销,则回滚到事务开始状态
- if (!con.isClosed()) {
- con.rollback();
- System.out.println("提交失败,回滚!");
- con.setAutoCommit(true);
- }
- } catch (SQLException e1) {
- e1.printStackTrace();
- } finally {
- JDBCConAndClo.closeStatement(stm);
- JDBCConAndClo.closeConnection(con);
- }
- }
- }
- }
- PreparedStatement批量处理和事务代码如下:
- package com.ambow.day20.jdbc.JDBCTestCommitAndRollback;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.SQLException;
- import com.ambow.day19.jdbc.util.JDBCConAndClo;
- /*
- * PreparedStatement:
- 1.addBatch() 将一组参数添加到 PreparedStatement对象内部
- 2.executeBatch() 将一批参数提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。
- *
- */
- public class PreparedStatementCommitAndRollbackTest {
- public static void main(String args[]) {
- Connection con = null;
- PreparedStatement pstm = null;
- try {
- // 1. 建立与数据库的连接
- con = JDBCConAndClo.getConnectionBao();
- // 2. 执行sql语句
- // 1).先创建PreparedStatement语句(发送slq请求):
- pstm = con.prepareStatement("insert into student values(?,?,?,?)");
- con.setAutoCommit(false);//1,首先把Auto commit设置为false,不让它自动提交
- // 2) 设置sql语句1
- pstm.setInt(1, 33);
- pstm.setString(2,"wangqin");
- pstm.setString(3, "c++");
- pstm.setDouble(4, 78.5);
- // 3) 将一组参数添加到此 PreparedStatement 对象的批处理命令中。
- pstm.addBatch();
- // 2) 设置sql语句2
- pstm.setInt(1, 34);
- pstm.setString(2,"wuytun");
- pstm.setString(3, "c");
- pstm.setDouble(4, 77);
- // 3) 将一组参数添加到此 PreparedStatement 对象的批处理命令中。
- pstm.addBatch();
- // 2) 设置sql语句3
- pstm.setInt(1, 31);
- pstm.setString(2,"tetet");
- pstm.setString(3, "c++");
- pstm.setDouble(4, 90);
- // 3) 将一组参数添加到此 PreparedStatement 对象的批处理命令中。
- pstm.addBatch();
- // 2) 设置sql语句4
- pstm.setInt(1, 32);
- pstm.setString(2,"liug");
- pstm.setString(3, "c");
- pstm.setDouble(4, 50);
- // 3) 将一组参数添加到此 PreparedStatement 对象的批处理命令中。
- pstm.addBatch();
- // 4) 将一批参数提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。
- pstm.executeBatch();
- System.out.println("插入成功!");
- // 若成功执行完所有的插入操作,则正常结束
- con.commit();//2,进行手动提交(commit)
- System.out.println("提交成功!");
- con.setAutoCommit(true);//3,提交完成后回复现场将Auto commit,还原为true,
- } catch (SQLException e) {
- e.printStackTrace();
- try {
- // 若出现异常,对数据库中所有已完成的操作全部撤销,则回滚到事务开始状态
- if(!con.isClosed()){
- con.rollback();//4,当异常发生执行catch中SQLException时,记得要rollback(回滚);
- System.out.println("插入失败,回滚!");
- con.setAutoCommit(true);
- }
- } catch (SQLException e1) {
- e1.printStackTrace();
- }
- }finally{
- JDBCConAndClo.closePreparedStatement(pstm);
- JDBCConAndClo.closeConnection(con);
- }
- }
- }
以下是我当时写的程序。
// 以下是MySQL的驱动连接
public static Connection MySQL_conn = null;
static PreparedStatement MySQL_statement = null;
public static String MySQL_URL = "jdbc:mysql://localhost:3306/test";
public static String MySQL_DRIVER = "com.mysql.jdbc.Driver";
public static String username = "root";
public static String password = "chaick1989";
//public Hashtable<String,String> province_code_name = new Hashtable<String, String>(); 放到外面不可以使用!!!!!!!!!!?????
public static int sum = 0;
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Connect();// 打开mysql的数据库连接
ResultSet rs = selectSQL("select * from tb_data_2_copy");
String tmp_name = null;
String tmp_name_middle = null;
String tmp_name_rep = null;
int tmp_eid = 0;
String sql = null;
int i =0 ;
int i_tmp = 0 ;
sql = "update tb_data_2_copy set name = ? where name = ? and eid = ? ";
MySQL_statement = (PreparedStatement) MySQL_conn.prepareStatement(sql);
MySQL_conn.setAutoCommit(false);//把事物的自动提交设置为false,不自动提交
while (rs.next()){
tmp_name = rs.getString("name");
tmp_eid = rs.getInt("eid");
i++;
tmp_name_middle = tmp_name.replaceAll("\\([^)]*\\)", "");
tmp_name_rep = tmp_name_middle.replaceAll("\\([^)]*\\)", "");
if (!tmp_name.equals(tmp_name_rep)){
tmp_name_rep = Convert_Dan(tmp_name_rep);
tmp_name = Convert_Dan(tmp_name);
MySQL_statement.setString(1, tmp_name_rep);
MySQL_statement.setString(2, tmp_name);
MySQL_statement.setInt(3, tmp_eid);
MySQL_statement.addBatch();
i_tmp++;
if (i_tmp % 200 ==0){ //每预编译200个sql语句,提交一次。
MySQL_statement.executeBatch();//执行批处理
MySQL_conn.commit();//提交执行的事物
if (null==MySQL_conn) { //如果连接关闭了 就在创建一个 为什么要这样 原因是 conn.commit()后可能conn被关闭
Connect();
MySQL_conn.setAutoCommit(false);
}
MySQL_statement.clearBatch();把批处理队列清空
}
}
if (i % 2000 ==0){
System.out.println("执行了条数"+i );
}
}
if (MySQL_statement!=null){
MySQL_statement.executeBatch();//执行
MySQL_conn.commit();//提交
}
MySQL_conn.setAutoCommit(true); //重新还原自动提交事务
MySQL_statement.close(); //关闭statement
Disconnect();
该 PreparedStatement接口继承Statement,并与之在两方面有所不同:
PreparedStatement 实例包含已编译的 SQL 语句。这就是使语句“准备好”。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN参数的值在 SQL 语句创建时未被指定。相反的,该语句为每个 IN 参数保留一个问号(“?”)作为占位符。每个问号的值必须在该语句执行之前,通过适当的setXXX 方法来提供。
由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。因此,多次执行的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。
作为 Statement 的子类,PreparedStatement 继承了 Statement 的所有功能。另外它还添加了一整套方法,用于设置发送给数据库以取代 IN 参数占位符的值。同时,三种方法 execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要参数。这些方法的 Statement 形式(接受 SQL 语句参数的形式)不应该用于 PreparedStatement 对象。
1、创建 PreparedStatement 对象
以下的代码段(其中 con 是 Connection 对象)创建包含带两个 IN 参数占位符的 SQL 语句的 PreparedStatement 对象:
PreparedStatement pstmt = con.prepareStatement("UPDATE table4 SET m = ? WHERE x = ?");
pstmt 对象包含语句 "UPDATE table4 SET m = ? WHERE x = ?",它已发送给DBMS,并为执行作好了准备。
2、传递 IN 参数
在执行 PreparedStatement 对象之前,必须设置每个 ? 参数的值。这可通过调用 setXXX 方法来完成,其中 XXX 是与该参数相应的类型。例如,如果参数具有Java 类型 long,则使用的方法就是 setLong。setXXX 方法的第一个参数是要设置的参数的序数位置,第二个参数是设置给该参数的值。例如,以下代码将第一个参数设为 123456789,第二个参数设为 100000000:
pstmt.setLong(1, 123456789);
pstmt.setLong(2, 100000000);
一旦设置了给定语句的参数值,就可用它多次执行该语句,直到调用clearParameters 方法清除它为止。在连接的缺省模式下(启用自动提交),当语句完成时将自动提交或还原该语句。
如果基本数据库和驱动程序在语句提交之后仍保持这些语句的打开状态,则同一个 PreparedStatement 可执行多次。如果这一点不成立,那么试图通过使用PreparedStatement 对象代替 Statement 对象来提高性能是没有意义的。
利用 pstmt(前面创建的 PreparedStatement 对象),以下代码例示了如何设置两个参数占位符的值并执行 pstmt 10 次。如上所述,为做到这一点,数据库不能关闭 pstmt。在该示例中,第一个参数被设置为 "Hi"并保持为常数。在 for 循环中,每次都将第二个参数设置为不同的值:从 0 开始,到 9 结束。
pstmt.setString(1, "Hi");
for (int i = 0; i < 10; i++) {
pstmt.setInt(2, i);
int rowCount = pstmt.executeUpdate();
}
3、IN 参数中数据类型的一致性
setXXX 方法中的 XXX 是 Java 类型。它是一种隐含的 JDBC 类型(一般 SQL 类型),因为驱动程序将把 Java 类型映射为相应的 JDBC 类型(遵循该 JDBCGuide中§8.6.2 “映射 Java 和 JDBC 类型”表中所指定的映射),并将该 JDBC 类型发送给数据库。例如,以下代码段将 PreparedStatement 对象 pstmt 的第二个参数设置为 44,Java 类型为 short:
pstmt.setShort(2, 44);
PreparedStatement 实例包含已编译的 SQL 语句。这就是使语句“准备好”。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN参数的值在 SQL 语句创建时未被指定。相反的,该语句为每个 IN 参数保留一个问号(“?”)作为占位符。每个问号的值必须在该语句执行之前,通过适当的setXXX 方法来提供。
由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。因此,多次执行的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。
作为 Statement 的子类,PreparedStatement 继承了 Statement 的所有功能。另外它还添加了一整套方法,用于设置发送给数据库以取代 IN 参数占位符的值。同时,三种方法 execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要参数。这些方法的 Statement 形式(接受 SQL 语句参数的形式)不应该用于 PreparedStatement 对象。
1、创建 PreparedStatement 对象
以下的代码段(其中 con 是 Connection 对象)创建包含带两个 IN 参数占位符的 SQL 语句的 PreparedStatement 对象:
PreparedStatement pstmt = con.prepareStatement("UPDATE table4 SET m = ? WHERE x = ?");
pstmt 对象包含语句 "UPDATE table4 SET m = ? WHERE x = ?",它已发送给DBMS,并为执行作好了准备。
2、传递 IN 参数
在执行 PreparedStatement 对象之前,必须设置每个 ? 参数的值。这可通过调用 setXXX 方法来完成,其中 XXX 是与该参数相应的类型。例如,如果参数具有Java 类型 long,则使用的方法就是 setLong。setXXX 方法的第一个参数是要设置的参数的序数位置,第二个参数是设置给该参数的值。例如,以下代码将第一个参数设为 123456789,第二个参数设为 100000000:
pstmt.setLong(1, 123456789);
pstmt.setLong(2, 100000000);
一旦设置了给定语句的参数值,就可用它多次执行该语句,直到调用clearParameters 方法清除它为止。在连接的缺省模式下(启用自动提交),当语句完成时将自动提交或还原该语句。
如果基本数据库和驱动程序在语句提交之后仍保持这些语句的打开状态,则同一个 PreparedStatement 可执行多次。如果这一点不成立,那么试图通过使用PreparedStatement 对象代替 Statement 对象来提高性能是没有意义的。
利用 pstmt(前面创建的 PreparedStatement 对象),以下代码例示了如何设置两个参数占位符的值并执行 pstmt 10 次。如上所述,为做到这一点,数据库不能关闭 pstmt。在该示例中,第一个参数被设置为 "Hi"并保持为常数。在 for 循环中,每次都将第二个参数设置为不同的值:从 0 开始,到 9 结束。
pstmt.setString(1, "Hi");
for (int i = 0; i < 10; i++) {
pstmt.setInt(2, i);
int rowCount = pstmt.executeUpdate();
}
3、IN 参数中数据类型的一致性
setXXX 方法中的 XXX 是 Java 类型。它是一种隐含的 JDBC 类型(一般 SQL 类型),因为驱动程序将把 Java 类型映射为相应的 JDBC 类型(遵循该 JDBCGuide中§8.6.2 “映射 Java 和 JDBC 类型”表中所指定的映射),并将该 JDBC 类型发送给数据库。例如,以下代码段将 PreparedStatement 对象 pstmt 的第二个参数设置为 44,Java 类型为 short:
pstmt.setShort(2, 44);
Wednesday, April 25, 2012
filezilla,425错误,cannot open data connection解决方案
返回: 425 Can't open data connection.
错误: 读取目录列表失败
状态: 已从服务器断开
参考官网的提示,说是防火墙没允许通过,配置,无效
发现说是a client configuration problem,按照其说的配置,无效
然后发现提示错误如下:
返回: 200 Type set to I.
命令: PASV
返回: 227 Entering Passive Mode (211,154,132,148,9,114)
命令: LIST
错误: 连接超时
错误: 读取目录列表失败
想到是PASV后出错的,前面登陆都可以,所以……
建立站点,填入地址,用户名,密码,设置连接方式始终为主动。OK
错误: 读取目录列表失败
状态: 已从服务器断开
参考官网的提示,说是防火墙没允许通过,配置,无效
发现说是a client configuration problem,按照其说的配置,无效
然后发现提示错误如下:
返回: 200 Type set to I.
命令: PASV
返回: 227 Entering Passive Mode (211,154,132,148,9,114)
命令: LIST
错误: 连接超时
错误: 读取目录列表失败
想到是PASV后出错的,前面登陆都可以,所以……
建立站点,填入地址,用户名,密码,设置连接方式始终为主动。OK
Sunday, April 22, 2012
word表格跨页问题-跨页断行,消除空白、紧凑
一般情况下,word表格会默认为自动跨页断行的设置。但是跨页的效果是,如果一个单元格在本页最后一排,内容很多的话,就会整个单元格都跨到下一页去,页面显得不够紧凑。如果需要把整个表格按正常排满每一个页面的话,操作如下:
选中表格,右键菜单——表格属性——默认的是同时勾选了“允许跨页断行”和“行高”,我们要做的是,把行高取消掉。
OK。
选中表格,右键菜单——表格属性——默认的是同时勾选了“允许跨页断行”和“行高”,我们要做的是,把行高取消掉。
OK。
Windows快捷键一览
一、常见用法:
F1 显示当前程序或者windows的帮助内容。
F2 当你选中一个文件的话,这意味着“重命名”
F3 当你在桌面上的时候是打开“查找:所有文件” 对话框
F10或ALT 激活当前程序的菜单栏
windows键或CTRL ESC 打开开始菜单
CTRL ALT Delete 在win9x中打开关闭程序对话框
Delete 删除被选择的选择项目,如果是文件,将被放入回收站
SHIFT Delete 删除被选择的选择项目,如果是文件,将被直接删除而不是放入回收站
CTRL N 新建一个新的文件
CTRL O 打开“打开文件”对话框
CTRL P 打开“打印”对话框
CTRL S 保存当前操作的文件
CTRL X 剪切被选择的项目到剪贴板
CTRL Insert 或 CTRL C 复制被选择的项目到剪贴板
SHIFT Insert 或 CTRL V 粘贴剪贴板中哪谌莸降鼻拔恢?
ALT BACKSPACE 或 CTRL Z 撤销上一步的操作
ALT SHIFT BACKSPACE 重做上一步被撤销的操作
Windows键 M 最小化所有被打开的窗口。
Windows键 CTRL M 重新将恢复上一项操作前窗口的大小和位置
Windows键 E 打开资源管理器 www.2cto.com
Windows键 F 打开“查找:所有文件”对话框
Windows键 R 打开“运行”对话框
Windows键 BREAK 打开“系统属性”对话框
Windows键 CTRL F 打开“查找:计算机”对话框
SHIFT F10或鼠标右击 打开当前活动项目的快捷菜单
SHIFT 在放入CD的时候按下不放,可以跳过自动播放CD。在打开word的时候按下不放,可以跳过自启动的宏
ALT F4 关闭当前应用程序
ALT SPACEBAR 打开程序最左上角的菜单
ALT TAB 切换当前程序
ALT ESC 切换当前程序
ALT ENTER 将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换
PRINT SCREEN 将当前屏幕以图象方式拷贝到剪贴板
ALT PRINT SCREEN 将当前活动程序窗口以图象方式拷贝到剪贴板
CTRL F4 关闭当前应用程序中的当前文本(如word中)
CTRL F6 切换到当前应用程序中的下一个文本(加shift 可以跳到前一个窗口)
在IE中:
ALT RIGHT ARROW 显示前一页(前进键)
ALT LEFT ARROW 显示后一页(后退键)
CTRL TAB 在页面上的各框架中切换(加shift反向)
F5 刷新
CTRL F5 强行刷新
目的快捷键
激活程序中的菜单栏 F10
执行菜单上相应的命令 ALT 菜单上带下划线的字母
关闭多文档界面程序中的当
前窗口 CTRL F4 www.2cto.com
关闭当前窗口或退出程序 ALT F4
复制 CTRL C
剪切 CTRL X
删除 Delete
显示所选对话框项目的帮助 F1
显示当前窗口的系统菜单 ALT 空格键
显示所选项目的快捷菜单 SHIFT F10
显示“开始”菜单 CTRL ESC
显示多文档界面程序的系统
菜单 ALT 连字号(-)
粘贴 CTRL V
切换到上次使用的窗口或者
按住 ALT然后重复按TAB,
切换到另一个窗口 ALT TAB
撤消 CTRL Z
二、使用“Windows资源管理器”的快捷键
目的快捷键
如果当前选择展开了,要折
叠或者选择父文件夹左箭头
折叠所选的文件夹 NUM LOCK 负号(-)
如果当前选择折叠了,要展开
或者选择第一个子文件夹右箭头
展开当前选择下的所有文件夹 NUM LOCK *
展开所选的文件夹 NUM LOCK 加号( )
在左右窗格间切换 F6
三、使用 WINDOWS键
可以使用 Microsoft自然键盘或含有 Windows徽标键的其他任何兼容键盘的以下快捷键。
目的快捷键
在任务栏上的按钮间循环 WINDOWS TAB
显示“查找:所有文件” WINDOWS F
显示“查找:计算机” CTRL WINDOWS F
显示“帮助” WINDOWS F1
显示“运行”命令 WINDOWS R
显示“开始”菜单 WINDOWS
显示“系统属性”对话框 WINDOWS BREAK
显示“Windows资源管理器” WINDOWS E
最小化或还原所有窗口 WINDOWS D
撤消最小化所有窗口 SHIFT WINDOWS M
四、使用“我的电脑”和“Windows资源管理器”的快捷键
目的快捷键
关闭所选文件夹及其所有父
文件夹按住 SHIFT键再单击“关闭按钮(仅适用于“我的电脑”)
向后移动到上一个视图 ALT 左箭头
向前移动到上一个视图 ALT 右箭头
查看上一级文件夹 BACKSPACE
五、使用对话框中的快捷键
目的快捷键
取消当前任务 ESC
如果当前控件是个按钮,要
单击该按钮或者如果当前控
件是个复选框,要选择或清
除该复选框或者如果当前控
件是个选项按钮,要单击该
选项空格键 www.2cto.com
单击相应的命令 ALT 带下划线的字母
单击所选按钮 ENTER
在选项上向后移动 SHIFT TAB
在选项卡上向后移动 CTRL SHIFT TAB
在选项上向前移动 TAB
在选项卡上向前移动 CTRL TAB
如果在“另存为”或“打开”
对话框中选择了某文件夹,
要打开上一级文件夹 BACKSPACE
在“另存为”或“打开”对
话框中打开“保存到”或
“查阅” F4
刷新“另存为”或“打开”
对话框 F5
六、使用“桌面”、“我的电脑”和“Windows资源管理器”快捷键
选择项目时,可以使用以下快捷键。
目的快捷键
插入光盘时不用“自动播放”
功能按住 SHIFT插入 CD-ROM
复制文件按住 CTRL拖动文件
创建快捷方式按住 CTRL SHIFT拖动文件
立即删除某项目而不将其放入 SHIFT Delete
“回收站”
显示“查找:所有文件” F3
显示项目的快捷菜单 APPLICATION键
刷新窗口的内容 F5
重命名项目 F2 www.2cto.com
选择所有项目 CTRL A
查看项目的属性 ALT ENTER或 ALT 双击
可将 APPLICATION键用于 Microsoft自然键盘或含有 APPLICATION键的其他兼容键
七、Microsoft放大程序的快捷键
这里运用Windows徽标键和其他键的组合。
快捷键目的
Windows徽标 PRINT SCREEN将屏幕复制到剪贴板(包括鼠标光标)
Windows徽标 SCROLL LOCK将屏幕复制到剪贴板(不包括鼠标光标)
Windows徽标 PAGE UP切换反色。
Windows徽标 PAGE DOWN切换跟随鼠标光标
Windows徽标 向上箭头增加放大率
Windows徽标 向下箭头减小放大率
八、使用辅助选项快捷键
目的快捷键
切换筛选键开关右SHIFT八秒
切换高对比度开关左ALT 左SHIFT PRINT SCREEN
切换鼠标键开关左ALT 左SHIFT NUM LOCK
切换粘滞键开关 SHIFT键五次
切换切换键开关 NUM LOCK五秒
Linux下如何知道某个端口在运行什么程序
当我们用netstat -an的时候,我们有时候可以看到类似的输出:
udp 0 0 0.0.0.0:32768 0.0.0.0:* |
但是查找/etc/services又没有这个端口的相关说明,怎么办呢?这个是不是黑客程序?有没有办法查看究竟什么程序监听在这个端口?
使用lsof -i :32768就可以看到:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
rpc.statd 603 root 4u IPv4 953 UDP *:32768
rpc.statd 603 root 6u IPv4 956 TCP *:32768 (LISTEN)
|
原来是rpc的程序。
使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接。
改变windows命令行背景色和字体颜色
在cmd命令行下,输入color 02 切换颜色。解释:color 02 0代表背景色,2代表前景色
常用的颜色有以下值:0 黑色,1蓝色,2 绿色,3 浅绿色,4红色,5紫色,6黄色,7白色,8灰色,9浅蓝,A浅绿,B浅蓝色,C浅红色,D浅紫色,E浅黄色,F亮白色。
常用的颜色有以下值:0 黑色,1蓝色,2 绿色,3 浅绿色,4红色,5紫色,6黄色,7白色,8灰色,9浅蓝,A浅绿,B浅蓝色,C浅红色,D浅紫色,E浅黄色,F亮白色。
Subscribe to:
Posts (Atom)