想玩3D桌面,但不會裝的朋友,
體驗fedora core6 + beryl 3D效果
fc6+beryl本站下載點: ftp://cle.linux.org.tw/OSSACC/pakelivecd/fc6-livecd.iso 阅读全文
实际例子先:
(1)想要截获所有172.25.38.70的主机收到的和发出的所有的数据包:
(2)
(3)截取长度为5000,抓取10000个包,网卡为eth1,所有80端口到日志文件log.dmp中:
上面参数的说明如下:
tcpdump -i $Nnet -s 5000 -c 10000 dst port $db -w log.dmp 监听$nnet,抓取10000个送到$db端口的包,截取每个包的前5000bytes保存到log.dmp文件中。
-i 指定监听哪个网络端口
-s 截取包的长度,0表示截取整个数据包
-c参数指定要监听的数据包数量
dst 监视所有目标端口为$db的数据包
-w 输出到名为log.dmp的文件中
阅读全文
(1)想要截获所有172.25.38.70的主机收到的和发出的所有的数据包:
(2)
(3)截取长度为5000,抓取10000个包,网卡为eth1,所有80端口到日志文件log.dmp中:
上面参数的说明如下:
tcpdump -i $Nnet -s 5000 -c 10000 dst port $db -w log.dmp 监听$nnet,抓取10000个送到$db端口的包,截取每个包的前5000bytes保存到log.dmp文件中。
-i 指定监听哪个网络端口
-s 截取包的长度,0表示截取整个数据包
-c参数指定要监听的数据包数量
dst 监视所有目标端口为$db的数据包
-w 输出到名为log.dmp的文件中
阅读全文
如果会话窗口被kill,状态转为dead无法连接,可以使用screen -wipe命令清除会话窗口:
开机启动screen并在后台运行其他程序:
目的:开机启动后能看到输出日志,方便调试代码:
cat /home/irdcops/shell/starteasyswoole/start.sh
测试执行:
chmod a+x /home/irdcops/shell/starteasyswoole/start.sh
sh /home/irdcops/shell/starteasyswoole/start.sh
#screen -ls
3573.easyswoole (Detached)
screen -x 3573
放到开机启动:
vi /etc/rc.local
#开机启动easyswoole
sh /home/irdcops/shell/starteasyswoole/start.sh
screen建立新窗口时更改窗口尺寸:
CentOS 下禁止screen建立新窗口
实践OK来自:https://blog.csdn.net/zbuter/article/details/79520721
时更改窗口尺寸
Xshell或Putty之类的连接到Centos下使用screen时会改变窗口的尺寸,非常烦人,可以通过如下方法修改使其不更改窗口尺寸。
编辑/etc/screenrc或~/.screenrc 加入下面的代码
# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
# (This fixes the "Aborted because of window size change" konsole symptoms found
# in bug #134198)
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
来自: https://www.linuxidc.com/Linux/2015-12/126193.htm
screen中rz/sz无效?貌似无解。参考 https://www.wikivs.com/wiki/screen_vs_tmux ,zmodem transfers是screen only的功能。
Sz 卡死怎么办?杀死它: ps aux|grep screen |grep -v grep|awk '{print "kill -9 " $2}'|sh
安装:
CentOS下安装screen:yum install screen
0、创建screen会话:
screen -S wordname
1、查看当前全部的 screen :
$screen -ls
会显示下面的信息:
[root@localhost uploadPythonTest]# screen -ls
There are screens on:
20893.test (Attached)
21055.jack (Attached)
其中每一条最前面的就是 screen 的 id
2、连接到 detached 的 screen :
$screen -r 1542 //只能一个终端连接,可以用screen -x test (会话名:如果忘记或者刚开始没有指定会话名,执行screen -ls列出当前的会话列表;),或screen -x 20893观看,事家证明观看终端也能修改,只要一个观看终端用exit退出,其它都灰飞烟灭了。如下:
[root@localhost uploadPythonTest]# screen -ls
There are screens on:
20893.test (Attached)
21055.jack (Attached)
特殊情况:
[root@iZ25dcp92ckZ multepoolserver]# screen -ls
There are screens on:
15141.swoole (Detached)
2470.swoole (Detached)
29718.pts-1.iZ25dcp92ckZ (Detached)
[root@iZ25dcp92ckZ multepoolserver]# screen -x 15141.swoole //不能只写:screen -x swoole,因为两个一样的,只是编号不一样,要么写:screen -x 15141也成。screen -r 也是一样的道理。
两人时实看到对方的操作的话可以用 screen命令 相同用户一个再终端输入screen 另一个输入screen -x 然后你们每个人的操作都可以看到对方。
screen -x jack 或: screen -x 21055
3、暂时离开从 screen 中退出(但不关闭 screen 进程):
按 Ctrl-A-D,暂时离开,保留screen会话中的任务或程序,当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a d(即按住Ctrl,依次再按a,d)
4.恢复会话,恢复screen会话:
当回来时可以再执行执行:screen -r wordname 即可恢复到离开前创建的lnmp会话的工作界面。
如果忘记或者刚开始没有指定会话名,执行screen -ls列出当前的会话列表;
screen -d -r yourname -> 结束当前session并回到yourname这个session
screen -d -r swooleHello //不是在screen或screen里可以直接跳转到另一个screen
5、关闭screen会话:
执行:exit ,实践发现:无论用screen -x test多少个terminal进行同时操作演示,一旦任意有一个退出,整个就退了了。不想退出得按ctrl + a +d挂起继续干其它事情。
6、远程演示:
首先在服务器上执行screen -S test创建一个screen的会话,观众可以链接到 远程服务器执行screen -x test 这样观众的屏幕上就会出现和演示者同步的内容。
7、常用的快捷键
Ctrl + a c 在当前screen会话中创建窗口
Ctrl + a w 窗口列表
Ctrl + a n 下一个窗口
Ctrl + a p 上一个窗口
Ctrl + a 0-9 在第0个窗口和第9个窗口之间切换
______________________________________________________
Linux让程序后台运行命令之screen与nohup:
http://www.2cto.com/os/201110/109458.html
Linux Screen 超简单用法:
http://www.cnblogs.com/biggates/archive/2013/01/30/2883164.html
______________________________________________________
===Gaston:
ctrl+a c 创建scree
ctrl+a p 上一个scree
ctrl+a n 下一个scree
===
检查是否在screen中:tty
结果应该为:/dev/pts/0
退出:Ctrl+a+d
===
Linux结束screen进程:
linux screen 全部退出 -- 脚本
来自:http://blog.csdn.net/lucktroy/article/details/7704115
以下是自己实践Ok的:
----------------------------------------------------------------------------------------------------------------------
以下都是在screen里面才能有效的快捷键【ctrl-a】:
首先进入scree里后:也就是如输入screen后,如:screen -S jackxiang ,下面的快捷键才能用。
Ctrl-a c 新建 bash screen 终端 【这个也很有用】
Ctrl-a " 列出 【这个最有用,可以列出来选】
Ctrl-a A 重命名 【这个可以用来做一个终端开发时用,结合上面的Ctrl-a " 很好用】
Ctrl-d 退出当前的screen,如果没有进入screen,该命令失效
进而可以替代上面的 Ctrl-a " 命令,实现快速切换的功能,实践是Ok的。(来自:gastonwu):
ctrl+a c 创建scree
ctrl+a p 上一个scree
ctrl+a n 下一个scree
screen -S name 以name命名的会话 【 这个在一开始就拿好名也会用到】
screen -r name/ID //回到名称为name的会话 【实践有些问题,可能是没用好?这个是用来做一些自己前面自己命名好的name返回】
screen -d -r //可以把一个正在运行的会话抢过来 这种情况是在两人都有用screen的情况下打劫
----------------------------------------------------------------------------------------------------------------------
安装完成后可以直接使用screen相关命令操作
1)screen -ls //列出当前有哪些Screen在运行
2)screen -S name //以name命名的会话
3)screen -r name/ID //回到名称为name的会话
4)
[root@test ~]# screen -ls
抢会话: 2542编号
screen -d -r 2542
抢后: 变为attached
screen -ls
There are screens on:
2542.pts-0.localhost (Attached)
2728.name (Attached)
screen -S jackxiang
screen -ls jackxiang这个自己命名的会话出来了
There are screens on:
2542.pts-0.localhost (Attached)
2728.name (Attached)
2851.jackxiang (Attached)
从另一个终端把这个jackxiang抢过来:
screen -d -r jackxiang //这时这个会话给我抢了,被抢的终端显示:[remote detached],并退出。
tty看下:
root@192.168.137.128:~# tty
/dev/pts/10
Ctrl-a S 新建水平分割窗口(大写S,用shift+s写大写,测试Ok)
Ctrl-a Tab 切换窗口 (测试Ok)
---------------------------------------------------------------------------------------------------------------------------------
比如centos32位的,可以执行以下命令安装:
yum install screen
其实就是虚拟终端,你可以用它创建很多虚拟终端,每个终端可以创建1~10个窗口,每个窗口相当于一个linux shell窗口,可以执行的操作和正常shell完全一样。
终端中的窗口操作】(挂载某个终端)
Ctrl-a c 新建 bash screen 终端
Ctrl-a " 列出
Ctrl-a A 重命名
Ctrl-a n 在当前窗口中切换到下一个 screen 终端
Ctrl-a p 在当前窗口中切换到上一个 screen 终端
Ctrl-a 空格 窗口切换
Ctrl+a w :窗口列表
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换
Ctrl+a K(大写) :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)
exit :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)
来自:http://hi.baidu.com/willor/item/3b60db19132035fd65eabfab
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以下来自:http://blog.hackroad.com/read.php/573.htm
代码:Ctrl-a c 新建 bash screen 终端
Ctrl-a " 列出
Ctrl-a A 重命名
Ctrl-a n 在当前窗口中切换到下一个 screen 终端
Ctrl-a p 在当前窗口中切换到上一个 screen 终端
Ctrl-a d 断开所有 screen 终端,返回 screen 执行前状态,但 screen 内所有终端的任务都在执行
screen -ls 列出当前用户的所有 screen 实例,包括联接和断开的
screen -R 重新联接到已断开的 screen 实例,如果有多个已断开的 screen 实例,则用 区分
Ctrl-a 进入选择模式
或 Ctrl-u 光标上移一页
或 Ctrl-d 光标下移一页
或 h 光标左移一格
或 j 光标下移一行
或 k 光标上移一行
或 l 光标右移一格
选择开始,选择结束
退出选择模式
Ctrl-a ] 粘贴选择的内容
----------------------------------------------------------------------------------------------------------------------
如果你没有安装有screen,可以到以下网站搜索适合你的系统的RPM包。
http://www.rpmfind.net/linux/rpm2html/search.php?query=screen
我是6.3能找到如下centos的东东,并下载安装是Ok的:
CentOS 6.3 for x86_64 screen-4.0.3-16.el6.x86_64.rpm
CentOS 6.4 for i386 screen-4.0.3-16.el6.i686.rpm
CentOS 6.3 for i386 screen-4.0.3-16.el6.i686.rpm
CentOS 6.4 for x86_64 screen-4.0.3-16.el6.x86_64.rpm
----------------------------------------------------------------------------------------------------------------------
Screen 用法:
#screen
进入新的终端,然后:ctrl+a+p 回到前终端,再:ctrl+a+n到当前运行screen后的终端。
#screen -ls
参考终端情况, 26889.pts-7.vm19 (Detached)
通过:
screen -r 26889;
wget *.iso 很大
关掉终端!
screen -r 26889
exit推出挂起的screen...
作用:可以在不同tty之间共享
1. 安装rpm包
查询是否有相关安装包:yum search screen
安装:yum install screen.i386
2. 创建窗口:screen
3. 检查是否在screen中:tty
结果应该为:/dev/pts/0
4. 退出:Ctrl+a+d
5. 查看screen编号:screen -ls
6. 再进入screen:screen -r screen名字
7. 关闭screen:Ctrl+d
---------------------------------------------------------------------------------------------------------------------------------------------
功能说明:
使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的 session.screen命令可以解决这个问题。Screen工具是一个终端多路转接器,在本质上,这意味着你能够使用一个单一的终端窗口运行多终端的应用。
语 法:
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]阅读全文
开机启动screen并在后台运行其他程序:
目的:开机启动后能看到输出日志,方便调试代码:
cat /home/irdcops/shell/starteasyswoole/start.sh
测试执行:
chmod a+x /home/irdcops/shell/starteasyswoole/start.sh
sh /home/irdcops/shell/starteasyswoole/start.sh
#screen -ls
3573.easyswoole (Detached)
screen -x 3573
放到开机启动:
vi /etc/rc.local
#开机启动easyswoole
sh /home/irdcops/shell/starteasyswoole/start.sh
screen建立新窗口时更改窗口尺寸:
CentOS 下禁止screen建立新窗口
实践OK来自:https://blog.csdn.net/zbuter/article/details/79520721
时更改窗口尺寸
Xshell或Putty之类的连接到Centos下使用screen时会改变窗口的尺寸,非常烦人,可以通过如下方法修改使其不更改窗口尺寸。
编辑/etc/screenrc或~/.screenrc 加入下面的代码
# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
# (This fixes the "Aborted because of window size change" konsole symptoms found
# in bug #134198)
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
来自: https://www.linuxidc.com/Linux/2015-12/126193.htm
screen中rz/sz无效?貌似无解。参考 https://www.wikivs.com/wiki/screen_vs_tmux ,zmodem transfers是screen only的功能。
Sz 卡死怎么办?杀死它: ps aux|grep screen |grep -v grep|awk '{print "kill -9 " $2}'|sh
安装:
CentOS下安装screen:yum install screen
0、创建screen会话:
screen -S wordname
1、查看当前全部的 screen :
$screen -ls
会显示下面的信息:
[root@localhost uploadPythonTest]# screen -ls
There are screens on:
20893.test (Attached)
21055.jack (Attached)
其中每一条最前面的就是 screen 的 id
2、连接到 detached 的 screen :
$screen -r 1542 //只能一个终端连接,可以用screen -x test (会话名:如果忘记或者刚开始没有指定会话名,执行screen -ls列出当前的会话列表;),或screen -x 20893观看,事家证明观看终端也能修改,只要一个观看终端用exit退出,其它都灰飞烟灭了。如下:
[root@localhost uploadPythonTest]# screen -ls
There are screens on:
20893.test (Attached)
21055.jack (Attached)
特殊情况:
[root@iZ25dcp92ckZ multepoolserver]# screen -ls
There are screens on:
15141.swoole (Detached)
2470.swoole (Detached)
29718.pts-1.iZ25dcp92ckZ (Detached)
[root@iZ25dcp92ckZ multepoolserver]# screen -x 15141.swoole //不能只写:screen -x swoole,因为两个一样的,只是编号不一样,要么写:screen -x 15141也成。screen -r 也是一样的道理。
两人时实看到对方的操作的话可以用 screen命令 相同用户一个再终端输入screen 另一个输入screen -x 然后你们每个人的操作都可以看到对方。
screen -x jack 或: screen -x 21055
3、暂时离开从 screen 中退出(但不关闭 screen 进程):
按 Ctrl-A-D,暂时离开,保留screen会话中的任务或程序,当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a d(即按住Ctrl,依次再按a,d)
4.恢复会话,恢复screen会话:
当回来时可以再执行执行:screen -r wordname 即可恢复到离开前创建的lnmp会话的工作界面。
如果忘记或者刚开始没有指定会话名,执行screen -ls列出当前的会话列表;
screen -d -r yourname -> 结束当前session并回到yourname这个session
screen -d -r swooleHello //不是在screen或screen里可以直接跳转到另一个screen
5、关闭screen会话:
执行:exit ,实践发现:无论用screen -x test多少个terminal进行同时操作演示,一旦任意有一个退出,整个就退了了。不想退出得按ctrl + a +d挂起继续干其它事情。
6、远程演示:
首先在服务器上执行screen -S test创建一个screen的会话,观众可以链接到 远程服务器执行screen -x test 这样观众的屏幕上就会出现和演示者同步的内容。
7、常用的快捷键
Ctrl + a c 在当前screen会话中创建窗口
Ctrl + a w 窗口列表
Ctrl + a n 下一个窗口
Ctrl + a p 上一个窗口
Ctrl + a 0-9 在第0个窗口和第9个窗口之间切换
______________________________________________________
Linux让程序后台运行命令之screen与nohup:
http://www.2cto.com/os/201110/109458.html
Linux Screen 超简单用法:
http://www.cnblogs.com/biggates/archive/2013/01/30/2883164.html
______________________________________________________
===Gaston:
ctrl+a c 创建scree
ctrl+a p 上一个scree
ctrl+a n 下一个scree
===
检查是否在screen中:tty
结果应该为:/dev/pts/0
退出:Ctrl+a+d
===
Linux结束screen进程:
linux screen 全部退出 -- 脚本
来自:http://blog.csdn.net/lucktroy/article/details/7704115
以下是自己实践Ok的:
----------------------------------------------------------------------------------------------------------------------
以下都是在screen里面才能有效的快捷键【ctrl-a】:
首先进入scree里后:也就是如输入screen后,如:screen -S jackxiang ,下面的快捷键才能用。
Ctrl-a c 新建 bash screen 终端 【这个也很有用】
Ctrl-a " 列出 【这个最有用,可以列出来选】
Ctrl-a A 重命名 【这个可以用来做一个终端开发时用,结合上面的Ctrl-a " 很好用】
Ctrl-d 退出当前的screen,如果没有进入screen,该命令失效
进而可以替代上面的 Ctrl-a " 命令,实现快速切换的功能,实践是Ok的。(来自:gastonwu):
ctrl+a c 创建scree
ctrl+a p 上一个scree
ctrl+a n 下一个scree
screen -S name 以name命名的会话 【 这个在一开始就拿好名也会用到】
screen -r name/ID //回到名称为name的会话 【实践有些问题,可能是没用好?这个是用来做一些自己前面自己命名好的name返回】
screen -d -r //可以把一个正在运行的会话抢过来 这种情况是在两人都有用screen的情况下打劫
----------------------------------------------------------------------------------------------------------------------
安装完成后可以直接使用screen相关命令操作
1)screen -ls //列出当前有哪些Screen在运行
2)screen -S name //以name命名的会话
3)screen -r name/ID //回到名称为name的会话
4)
[root@test ~]# screen -ls
抢会话: 2542编号
screen -d -r 2542
抢后: 变为attached
screen -ls
There are screens on:
2542.pts-0.localhost (Attached)
2728.name (Attached)
screen -S jackxiang
screen -ls jackxiang这个自己命名的会话出来了
There are screens on:
2542.pts-0.localhost (Attached)
2728.name (Attached)
2851.jackxiang (Attached)
从另一个终端把这个jackxiang抢过来:
screen -d -r jackxiang //这时这个会话给我抢了,被抢的终端显示:[remote detached],并退出。
tty看下:
root@192.168.137.128:~# tty
/dev/pts/10
Ctrl-a S 新建水平分割窗口(大写S,用shift+s写大写,测试Ok)
Ctrl-a Tab 切换窗口 (测试Ok)
---------------------------------------------------------------------------------------------------------------------------------
比如centos32位的,可以执行以下命令安装:
yum install screen
其实就是虚拟终端,你可以用它创建很多虚拟终端,每个终端可以创建1~10个窗口,每个窗口相当于一个linux shell窗口,可以执行的操作和正常shell完全一样。
终端中的窗口操作】(挂载某个终端)
Ctrl-a c 新建 bash screen 终端
Ctrl-a " 列出
Ctrl-a A 重命名
Ctrl-a n 在当前窗口中切换到下一个 screen 终端
Ctrl-a p 在当前窗口中切换到上一个 screen 终端
Ctrl-a 空格 窗口切换
Ctrl+a w :窗口列表
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换
Ctrl+a K(大写) :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)
exit :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)
来自:http://hi.baidu.com/willor/item/3b60db19132035fd65eabfab
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以下来自:http://blog.hackroad.com/read.php/573.htm
代码:Ctrl-a c 新建 bash screen 终端
Ctrl-a " 列出
Ctrl-a A 重命名
Ctrl-a n 在当前窗口中切换到下一个 screen 终端
Ctrl-a p 在当前窗口中切换到上一个 screen 终端
Ctrl-a d 断开所有 screen 终端,返回 screen 执行前状态,但 screen 内所有终端的任务都在执行
screen -ls 列出当前用户的所有 screen 实例,包括联接和断开的
screen -R 重新联接到已断开的 screen 实例,如果有多个已断开的 screen 实例,则用 区分
Ctrl-a 进入选择模式
或 Ctrl-u 光标上移一页
或 Ctrl-d 光标下移一页
或 h 光标左移一格
或 j 光标下移一行
或 k 光标上移一行
或 l 光标右移一格
选择开始,选择结束
退出选择模式
Ctrl-a ] 粘贴选择的内容
----------------------------------------------------------------------------------------------------------------------
如果你没有安装有screen,可以到以下网站搜索适合你的系统的RPM包。
http://www.rpmfind.net/linux/rpm2html/search.php?query=screen
我是6.3能找到如下centos的东东,并下载安装是Ok的:
CentOS 6.3 for x86_64 screen-4.0.3-16.el6.x86_64.rpm
CentOS 6.4 for i386 screen-4.0.3-16.el6.i686.rpm
CentOS 6.3 for i386 screen-4.0.3-16.el6.i686.rpm
CentOS 6.4 for x86_64 screen-4.0.3-16.el6.x86_64.rpm
----------------------------------------------------------------------------------------------------------------------
Screen 用法:
#screen
进入新的终端,然后:ctrl+a+p 回到前终端,再:ctrl+a+n到当前运行screen后的终端。
#screen -ls
参考终端情况, 26889.pts-7.vm19 (Detached)
通过:
screen -r 26889;
wget *.iso 很大
关掉终端!
[xiangdong2@vm19 ~]$ screen -ls
There is a screen on:
26889.pts-7.vm19 (Detached)
1 Socket in /var/run/screen/S-xiangdong2.
There is a screen on:
26889.pts-7.vm19 (Detached)
1 Socket in /var/run/screen/S-xiangdong2.
screen -r 26889
exit推出挂起的screen...
作用:可以在不同tty之间共享
1. 安装rpm包
查询是否有相关安装包:yum search screen
安装:yum install screen.i386
2. 创建窗口:screen
3. 检查是否在screen中:tty
结果应该为:/dev/pts/0
4. 退出:Ctrl+a+d
5. 查看screen编号:screen -ls
6. 再进入screen:screen -r screen名字
7. 关闭screen:Ctrl+d
---------------------------------------------------------------------------------------------------------------------------------------------
功能说明:
使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的 session.screen命令可以解决这个问题。Screen工具是一个终端多路转接器,在本质上,这意味着你能够使用一个单一的终端窗口运行多终端的应用。
语 法:
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]阅读全文
http://www.fdigg.net/list.aspx?word=CentOS-5.2-x86_64-bin-DVD.iso&level=0&schoolId=0&Input=
FreeBsd:
21% [===========> ] 966,787,336 2.15M/s eta 35m 54s
这个速度我想你喜欢,呵呵呵!
ftp://166.111.8.205/mirror/
FreeBsd:
21% [===========> ] 966,787,336 2.15M/s eta 35m 54s
这个速度我想你喜欢,呵呵呵!
ftp://166.111.8.205/mirror/
一、GNU gcc的编译工具用法
我们先来写一个简单的C程序:hello.c
C代码
定义了一个print_hello函数,调用main函数打印Hello World。 如何编译它呢?
C代码
我们先来写一个简单的C程序:hello.c
C代码
1. #include <stdio.h>
2.
3. void print_hello() {
4. printf("Hello World\n");
5. }
6.
7. int main(int argc, char argv[]) {
8. print_hello();
9. return 0;
10. }
2.
3. void print_hello() {
4. printf("Hello World\n");
5. }
6.
7. int main(int argc, char argv[]) {
8. print_hello();
9. return 0;
10. }
定义了一个print_hello函数,调用main函数打印Hello World。 如何编译它呢?
C代码
1. gcc -o hello -O2 hello.c
阅读全文
通过串口收发短消息(上,下):
http://dev.csdn.net/develop/article/17/17465.shtm
http://dev.csdn.net/develop/article/17/17574.shtm
基于串口的手机短信程序收发源代码:
http://www.xkxz.com/soft/3980.htm
基于串口的手机短信程序收发源代码PHP代码:
http://www.chinaunix.net/jh/27/802131.html
vb中的代码
http://dev.csdn.net/develop/article/17/17465.shtm
http://dev.csdn.net/develop/article/17/17574.shtm
基于串口的手机短信程序收发源代码:
http://www.xkxz.com/soft/3980.htm
基于串口的手机短信程序收发源代码PHP代码:
http://www.chinaunix.net/jh/27/802131.html
vb中的代码
mscomm1.commport=1
mscomm1.setting="9600,n,8,1"
mscomm1.portopen=true
mscomm1.input=0
mscomm1.output="AT CMGF=0" //将发送模式设置成文本模式,最后要加上回车和换行,我给忘怎么加
//了
sleep(200)
mscomm1.output="AT CMGS="13915912345",129" //准备发送信息给13915912345
sleep(200)
mscomm1.output="hello" //最后要加Ctrl z,具体代码里是什么符号我也给忘了
sleep(200)
mscomm1.portopen=false
mscomm1.setting="9600,n,8,1"
mscomm1.portopen=true
mscomm1.input=0
mscomm1.output="AT CMGF=0" //将发送模式设置成文本模式,最后要加上回车和换行,我给忘怎么加
//了
sleep(200)
mscomm1.output="AT CMGS="13915912345",129" //准备发送信息给13915912345
sleep(200)
mscomm1.output="hello" //最后要加Ctrl z,具体代码里是什么符号我也给忘了
sleep(200)
mscomm1.portopen=false
内网机器:
用户名:xiangdong2
密码:123456
删除掉所有的rpm包命令: 为何要删除?请进: http://www.xiangdong.org/blog/post/1426/ ,大家千万别学我这样一个语句把重要的系统库都干掉了,千万不能重新启动!!!
后 rpm qa出现:
rpm: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
发现libstdc++.so.6在rpm的libstdc++-4.1.2-42.el5.i386.rpm中,在其他一台linux机器中:
安装:
查看so文件位置:
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.8
拷贝到有问题的linux上
后再次运行:
rpm -qa
出现:
rpm: error while loading shared libraries: libstdc++.so.6: wrong ELF class: ELFCLASS32
这下就不知道了。。。????
怀疑是不是系统版本以及rpm包是32位还是64位的问题:
出问题的机器:
安装rpm得到libstdc++.so.6的机器:
有Ixxx的全是32位的,有X86—64的全是64位!
有一篇文章如是说:
有的rpm有分i386、i586和i686等不同版本,如:
abc-1.2.3-4.i386.rpm
abc-1.2.3-4.i586.rpm
abc-1.2.3-4.i686.rpm
它们有什么不同呢?
这里的i386、i586、i686指的是适用于intel i386、 i586、i686 兼容指令集的微处理器。一般来说,等级愈高的机器可接受较低等级的rpm文件。你可以透过/proc/cpuinfo这个档案查询你的CPU等级。
比对i686:
比对X86—64:
[root@7158vm08 CentOS]# ldd /bin/rpm
librpm-4.4.so => /usr/lib64/librpm-4.4.so (0x000000339f000000)
librpmdb-4.4.so => /usr/lib64/librpmdb-4.4.so (0x000000339e800000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003218400000)
librpmio-4.4.so => /usr/lib64/librpmio-4.4.so (0x000000339ec00000)
libpopt.so.0 => /usr/lib64/libpopt.so.0 (0x000000321cc00000)
libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0 (0x0000003219000000)
libelf.so.1 => /usr/lib64/libelf.so.1 (0x000000321a400000)
libbeecrypt.so.6 => /usr/lib64/libbeecrypt.so.6 (0x0000003219400000)
libm.so.6 => /lib64/libm.so.6 (0x0000003217c00000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003217400000)
libz.so.1 => /usr/lib64/libz.so.1 (0x0000003218c00000)
librt.so.1 => /lib64/librt.so.1 (0x0000003218800000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003217800000)
libbz2.so.1 => /usr/lib64/libbz2.so.1 (0x00000035f0600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003217000000)
libsepol.so.1 => /lib64/libsepol.so.1 (0x0000003218000000)
/lib64/ld-linux-x86-64.so.2 (0x0000003216c00000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003219800000)
libstdc++.so.6 => not found
对应的目录不一样, libstdc++.so.6一个是: /usr/lib/libstdc++.so.6 (0x00c2f000),一个是:/lib64/libstdc++.so.6 (确定是这个位置!)
一老外说是这个rpm的,但试了还是不行:
compat-libstdc++-33-3.2.3-61.i386.rpm
[root@vm19 /]# rpm -qpl compat-libstdc++-33-3.2.3-61.i386.rpm
/usr/lib/libstdc++.so.5
/usr/lib/libstdc++.so.5.0.7
最后得出得需要装64位的rpm包,而且libstdc++.so.6要通过rpm -qpl ***.rpm对应到:/lib64 才OK!
结果果然:
果然:
libstdc++-4.1.2-42.el5.x86_64.rpm 里面有这个libstdc++.so.6:
如何是好???难道运维人员是用dvd的包安装的?呵呵,接着俺们下个dvd的包就知道了,呵呵,下载中。。。拭目以待!
DVD包的rpm:
[root@vm19 rpm]# rpm -pql libstdc++-4.1.2-42.el5.i386.rpm
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.8
[root@vm19 rpm]# rpm -qpl libstdc++-4.1.2-42.el5.x86_64.rpm
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.8
通过7zip解压后,放到目标机:
[root@7158vm08 ~]# cp libstdc++.so.6 /lib64/
[root@7158vm08 ~]# rpm
rpm: error while loading shared libraries: /lib64/libstdc++.so.6: file too short
还是不行报错...
[root@7158vm08 ~]# cat /etc/redhat-release
CentOS release 5.2 (Final)
我也下载的是CentOS release 5.2啊,天啊。。。
这个哥们也遇到类似问题:
http://f170.blogspot.com/2008/11/libstdclibstdcso6.html
10.210.71.72
用户名:xiangdong2
密码:123456
删除掉所有的rpm包命令: 为何要删除?请进: http://www.xiangdong.org/blog/post/1426/ ,大家千万别学我这样一个语句把重要的系统库都干掉了,千万不能重新启动!!!
rpm -qa|awk '{print "rpm -e " $0 " --allmatches --nodeps"}'|sh
后 rpm qa出现:
rpm: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
ldd /bin/rpm
[xiangdong2@7158vm08 CentOS]$ ldd /bin/rpm
libstdc++.so.6 => not found
libstdc++.so.6 => not found
发现libstdc++.so.6在rpm的libstdc++-4.1.2-42.el5.i386.rpm中,在其他一台linux机器中:
安装:
rpm -ihv libstdc++-4.1.2-42.el5.i386.rpm
查看so文件位置:
rpm -qpl libstdc++-4.1.2-42.el5.i386.rpm
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.8
拷贝到有问题的linux上
cp libstdc++.so.6 /lib64/libstdc++.so.6
后再次运行:
rpm -qa
出现:
rpm: error while loading shared libraries: libstdc++.so.6: wrong ELF class: ELFCLASS32
这下就不知道了。。。????
怀疑是不是系统版本以及rpm包是32位还是64位的问题:
出问题的机器:
[xiangdong2@7158vm08 CentOS]$ uname -rsp
Linux 2.6.18-92.el5xen x86_64
Linux 2.6.18-92.el5xen x86_64
安装rpm得到libstdc++.so.6的机器:
[root@vm19 /]# uname -rsp
Linux 2.6.18-53.el5xen i686
Linux 2.6.18-53.el5xen i686
有Ixxx的全是32位的,有X86—64的全是64位!
有一篇文章如是说:
有的rpm有分i386、i586和i686等不同版本,如:
abc-1.2.3-4.i386.rpm
abc-1.2.3-4.i586.rpm
abc-1.2.3-4.i686.rpm
它们有什么不同呢?
这里的i386、i586、i686指的是适用于intel i386、 i586、i686 兼容指令集的微处理器。一般来说,等级愈高的机器可接受较低等级的rpm文件。你可以透过/proc/cpuinfo这个档案查询你的CPU等级。
比对i686:
[root@vm19 rpm]# ldd /bin/rpm
linux-gate.so.1 => (0x003e9000)
librpm-4.4.so => /usr/lib/librpm-4.4.so (0x00b45000)
librpmdb-4.4.so => /usr/lib/librpmdb-4.4.so (0x0091c000)
libselinux.so.1 => /lib/libselinux.so.1 (0x00895000)
librpmio-4.4.so => /usr/lib/librpmio-4.4.so (0x00a35000)
libpopt.so.0 => /usr/lib/libpopt.so.0 (0x00dd3000)
libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00acd000)
libelf.so.1 => /usr/lib/libelf.so.1 (0x00b2e000)
libbeecrypt.so.6 => /usr/lib/libbeecrypt.so.6 (0x008dc000)
libm.so.6 => /lib/i686/nosegneg/libm.so.6 (0x0080b000)
libdl.so.2 => /lib/libdl.so.2 (0x00805000)
libz.so.1 => /usr/lib/libz.so.1 (0x008ae000)
librt.so.1 => /lib/i686/nosegneg/librt.so.1 (0x008c3000)
libpthread.so.0 => /lib/i686/nosegneg/libpthread.so.0 (0x00834000)
libbz2.so.1 => /usr/lib/libbz2.so.1 (0x00479000)
libc.so.6 => /lib/i686/nosegneg/libc.so.6 (0x006c0000)
libsepol.so.1 => /lib/libsepol.so.1 (0x0084d000)
/lib/ld-linux.so.2 (0x0069e000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x008ce000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00c2f000)
linux-gate.so.1 => (0x003e9000)
librpm-4.4.so => /usr/lib/librpm-4.4.so (0x00b45000)
librpmdb-4.4.so => /usr/lib/librpmdb-4.4.so (0x0091c000)
libselinux.so.1 => /lib/libselinux.so.1 (0x00895000)
librpmio-4.4.so => /usr/lib/librpmio-4.4.so (0x00a35000)
libpopt.so.0 => /usr/lib/libpopt.so.0 (0x00dd3000)
libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00acd000)
libelf.so.1 => /usr/lib/libelf.so.1 (0x00b2e000)
libbeecrypt.so.6 => /usr/lib/libbeecrypt.so.6 (0x008dc000)
libm.so.6 => /lib/i686/nosegneg/libm.so.6 (0x0080b000)
libdl.so.2 => /lib/libdl.so.2 (0x00805000)
libz.so.1 => /usr/lib/libz.so.1 (0x008ae000)
librt.so.1 => /lib/i686/nosegneg/librt.so.1 (0x008c3000)
libpthread.so.0 => /lib/i686/nosegneg/libpthread.so.0 (0x00834000)
libbz2.so.1 => /usr/lib/libbz2.so.1 (0x00479000)
libc.so.6 => /lib/i686/nosegneg/libc.so.6 (0x006c0000)
libsepol.so.1 => /lib/libsepol.so.1 (0x0084d000)
/lib/ld-linux.so.2 (0x0069e000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x008ce000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00c2f000)
比对X86—64:
[root@7158vm08 CentOS]# ldd /bin/rpm
librpm-4.4.so => /usr/lib64/librpm-4.4.so (0x000000339f000000)
librpmdb-4.4.so => /usr/lib64/librpmdb-4.4.so (0x000000339e800000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003218400000)
librpmio-4.4.so => /usr/lib64/librpmio-4.4.so (0x000000339ec00000)
libpopt.so.0 => /usr/lib64/libpopt.so.0 (0x000000321cc00000)
libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0 (0x0000003219000000)
libelf.so.1 => /usr/lib64/libelf.so.1 (0x000000321a400000)
libbeecrypt.so.6 => /usr/lib64/libbeecrypt.so.6 (0x0000003219400000)
libm.so.6 => /lib64/libm.so.6 (0x0000003217c00000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003217400000)
libz.so.1 => /usr/lib64/libz.so.1 (0x0000003218c00000)
librt.so.1 => /lib64/librt.so.1 (0x0000003218800000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003217800000)
libbz2.so.1 => /usr/lib64/libbz2.so.1 (0x00000035f0600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003217000000)
libsepol.so.1 => /lib64/libsepol.so.1 (0x0000003218000000)
/lib64/ld-linux-x86-64.so.2 (0x0000003216c00000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003219800000)
libstdc++.so.6 => not found
对应的目录不一样, libstdc++.so.6一个是: /usr/lib/libstdc++.so.6 (0x00c2f000),一个是:/lib64/libstdc++.so.6 (确定是这个位置!)
一老外说是这个rpm的,但试了还是不行:
compat-libstdc++-33-3.2.3-61.i386.rpm
[root@vm19 /]# rpm -qpl compat-libstdc++-33-3.2.3-61.i386.rpm
/usr/lib/libstdc++.so.5
/usr/lib/libstdc++.so.5.0.7
最后得出得需要装64位的rpm包,而且libstdc++.so.6要通过rpm -qpl ***.rpm对应到:/lib64 才OK!
结果果然:
[root@vm19 rpm]# rpm -qpl libstdc++-4.1.2-42.el5.x86_64.rpm
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.8
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.8
[xiangdong2@vm19 rpm]$ rpm -pql libstdc++-4.1.2-42.el5.i386.rpm
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.8
[xiangdong2@vm19 rpm]$ rpm -pql libstdc++-4.1.2-42.el5.x86_64.rpm
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.8
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.8
[xiangdong2@vm19 rpm]$ rpm -pql libstdc++-4.1.2-42.el5.x86_64.rpm
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.8
果然:
libstdc++-4.1.2-42.el5.x86_64.rpm 里面有这个libstdc++.so.6:
[root@7158vm08 ~]# rm -Rf /usr/lib64/libstdc++.so.6
[root@7158vm08 ~]# cp -Rf libstdc++.so.6 /usr/lib64/
[root@7158vm08 ~]# rpm
rpm: error while loading shared libraries: /lib64/libstdc++.so.6: file too short
[root@7158vm08 ~]# cp -Rf libstdc++.so.6 /usr/lib64/
[root@7158vm08 ~]# rpm
rpm: error while loading shared libraries: /lib64/libstdc++.so.6: file too short
如何是好???难道运维人员是用dvd的包安装的?呵呵,接着俺们下个dvd的包就知道了,呵呵,下载中。。。拭目以待!
DVD包的rpm:
[root@vm19 rpm]# rpm -pql libstdc++-4.1.2-42.el5.i386.rpm
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.8
[root@vm19 rpm]# rpm -qpl libstdc++-4.1.2-42.el5.x86_64.rpm
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.8
通过7zip解压后,放到目标机:
[root@7158vm08 ~]# cp libstdc++.so.6 /lib64/
[root@7158vm08 ~]# rpm
rpm: error while loading shared libraries: /lib64/libstdc++.so.6: file too short
还是不行报错...
[root@7158vm08 ~]# cat /etc/redhat-release
CentOS release 5.2 (Final)
我也下载的是CentOS release 5.2啊,天啊。。。
这个哥们也遇到类似问题:
http://f170.blogspot.com/2008/11/libstdclibstdcso6.html
解包:
打包:
打tar.gz包:
打tar.bz2包:
tar -zcvf ssh_tmp.personal.tar.gz ssh_tmp.personal/出现错误如下:
tar -zcvf 由于前次错误,将以上次的错误状态退出
改为去掉z,tar -cvf 后好了,但是编码乱了,这个z可能是编码吧:
tar -cvf ssh_tmp.personal.tar.gz ssh_tmp.personal/
还是不行,最后用Windows下的git bash命令行脚本结合sed解决了。
tar gz:
tar -zxvf ***.tar.gz
tar -zxvf ***.tar.gz
tar bz2:
tar -jxvf ***.tar.bz2
tar -jxvf ***.tar.bz2
打包:
打tar.gz包:
tar -zcvf ***.tar.gz custormer/
打tar.bz2包:
tar -cjf ***.tar.bz2 customer/
tar -zcvf ssh_tmp.personal.tar.gz ssh_tmp.personal/出现错误如下:
tar -zcvf 由于前次错误,将以上次的错误状态退出
改为去掉z,tar -cvf 后好了,但是编码乱了,这个z可能是编码吧:
tar -cvf ssh_tmp.personal.tar.gz ssh_tmp.personal/
还是不行,最后用Windows下的git bash命令行脚本结合sed解决了。
[实践OK]FreeBSD和Linux开端口的目录在哪儿?以Redis进程作为举例。
Unix/LinuxC技术 jackxiang 2008-12-16 16:53
sockstat -4|grep 6379
redis redis-serv 1056 4 tcp4 172.17.254.227:6379 *:*
#./redis-cli -h 172.17.254.227 -p 6379
172.17.254.227:6379> auth XjklgMe431*8
OK
ps aux | grep redis-serv
redis 1056 0.0 0.2 22324 3260 - Ss 11Nov17 101:13.88 redis-server: /usr/local/redis
来自:http://blog.csdn.net/weixin_38884250/article/details/72675734
redis redis-serv 1056 4 tcp4 172.17.254.227:6379 *:*
#./redis-cli -h 172.17.254.227 -p 6379
172.17.254.227:6379> auth XjklgMe431*8
OK
ps aux | grep redis-serv
redis 1056 0.0 0.2 22324 3260 - Ss 11Nov17 101:13.88 redis-server: /usr/local/redis
来自:http://blog.csdn.net/weixin_38884250/article/details/72675734
uname -rsp
FreeBSD&Linux:/etc/pam.d/
netstat -ntp
查看YUM的RPM包依赖的包由谁来提供,以及对应的包命令yum deplist yumPKg:
yum deplist openssh|grep -i ssl
dependency: libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit)
provider: openssl.x86_64 1.0.1e-57.el6
provider: openssl.x86_64 1.0.1e-57.el6
dependency: libcrypto.so.10(OPENSSL_1.0.1)(64bit)
provider: openssl.x86_64 1.0.1e-57.el6
provider: openssl.x86_64 1.0.1e-57.el6
rpm -q openssh-5.3p1 --requires|grep ssl
CentOS7上面运行yum clean all时会有这个提示:
AutoReqProv no:
--requires list capabilities required by package(s)
--provides list capabilities that this package provides
rpm -qp php-5.6.20-160919111909.el7.centos.x86_64.rpm --requires
libiconv
libmcrypt
mcrypt
mhash
libtool-ltdl-devel
rpm -qp mkvtoolnix-13.0.0-1.x86_64.rpm --requires
hicolor-icon-theme
libFLAC.so.8()(64bit)
libQt5Concurrent.so.5()(64bit)
libQt5Core.so.5()(64bit)
libQt5Core.so.5(Qt_5)(64bit)
libQt5Core.so.5(Qt_5.6)(64bit)
libQt5Gui.so.5()(64bit)
libQt5Gui.so.5(Qt_5)(64bit)
libQt5Multimedia.so.5()(64bit)
libQt5Multimedia.so.5(Qt_5)(64bit)
libQt5Network.so.5()(64bit)
libQt5Network.so.5(Qt_5)(64bit)
libQt5Widgets.so.5()(64bit)
libQt5Widgets.so.5(Qt_5)(64bit)
libboost_filesystem.so.1.53.0()(64bit)
libboost_regex-mt.so.1.53.0()(64bit)
libboost_system.so.1.53.0()(64bit)
rpm -qp php-5.6.20-160919111909.el7.centos.x86_64.rpm --provides
php = 5.6.20-160919111909.el7.centos
php(x86-64) = 5.6.20-160919111909.el7.centos
查询一个包是否被安装
# rpm -q < rpm package name>
列出所有被安装的rpm package
# rpm -qa
-p, --package query/verify a package file
(一)rpm包文件安装位置及列表:
[root@localhost x86_64]# rpm -qpl nginx-1.7.1-el5.x86_64.rpm
/usr/local/nginxinstallbyrpm
/usr/local/nginxinstallbyrpm/conf
/usr/local/nginxinstallbyrpm/conf/fastcgi.conf
/usr/local/nginxinstallbyrpm/conf/fastcgi.conf.default
/usr/local/nginxinstallbyrpm/conf/fastcgi_params
/usr/local/nginxinstallbyrpm/conf/fastcgi_params.default
/usr/local/nginxinstallbyrpm/conf/koi-utf
/usr/local/nginxinstallbyrpm/conf/koi-win
(二)rpm软件依赖检查命令:
[root@localhost x86_64]# rpm -qp nginx-1.7.1-el5.x86_64.rpm -requires
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1
/bin/sh
libc.so.6()(64bit)
libc.so.6(GLIBC_2.10)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libcrypt.so.1()(64bit)
libcrypt.so.1(GLIBC_2.2.5)(64bit)
libcrypto.so.10()(64bit)
libcrypto.so.10(libcrypto.so.10)(64bit)
libpcre.so.1()(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libz.so.1()(64bit)
(三)查看嵌入脚本, -scripts:(preuninstall 卸载前)
[root@localhost x86_64]# rpm -qp nginx-1.7.1-el5.x86_64.rpm -scripts
preuninstall scriptlet (using /bin/sh):
if [ -z "`ps aux | grep nginx | grep -v grep`" ];then
killall nginx >/dev/null
exit 0
fi
(四)查看rpm包的安装信息:
[root@localhost x86_64]# rpm -qpi nginx-1.7.1-el5.x86_64.rpm -scripts
Name : nginx Relocations: (not relocatable)
Version : 1.7.1 Vendor: (none)
Release : el5 Build Date: Thu 10 Mar 2016 11:42:25 AM CST
Install Date: (not installed) Build Host: iZ25dcp92ckZ
Group : Applications/Server Source RPM: nginx-1.7.1-el5.src.rpm
Size : 707923 License: GPL
Signature : (none)
Packager : yunjianfei <yunjianfei1987@gmail.com>
URL : http://nginx.org/
Summary : High Performance Web Server
Description :
nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server
preuninstall scriptlet (using /bin/sh):
if [ -z "`ps aux | grep nginx | grep -v grep`" ];then
killall nginx >/dev/null
exit 0
fi
(五)自动产生rpm包依赖关系:
autoreqprov
默认不写值是1,也就是自动产生依赖关系,而主查对于一些共享库进行依赖(除开写了的外)。
加了autoreqprov=1和autoreqprov=0的rpm包查看如下方法:
rpm -qp nginx-1.7.1-el5.x86_64.rpm --requires
/bin/sh
libc.so.6()(64bit)
libc.so.6(GLIBC_2.10)(64bit)
(六)rpm包的配置文件查看:
rpm -qp /usr/local/nginx/html/centos6.4/x86_64/nginx-1.7.1-el5.x86_64.rpm --configfiles
(七)查看rpm包的安装情况:
[root@localhost x86_64]# rpm -qa perl-Test-Simple
perl-Test-Simple-0.92-141.el6_7.1.x86_64
[root@localhost x86_64]# file pcre-7.8-7.el6.x86_64.rpm
pcre-7.8-7.el6.x86_64.rpm: RPM v3.0 bin i386/x86_64 pcre-7.8-7.el6
(八)rpm包配置文件验证:
[root@localhost /]# rpm -qvV nginx-filesystem
......... /etc/nginx
......... /etc/nginx/conf.d
......... /etc/nginx/default.d
......... /usr/share/nginx
......... /usr/share/nginx/html
(九)rpm伯克利文件存放rpm包安装相关信息:
[root@iZ25dcp92ckZ rpmbuild]# file /var/lib/rpm/* |grep Berkeley
/var/lib/rpm/Basenames: Berkeley DB (Btree, version 9, native byte-order)
/var/lib/rpm/Conflictname: Berkeley DB (Btree, version 9, native byte-order)
/var/lib/rpm/Dirnames: Berkeley DB (Btree, version 9, native byte-order)
(十)rpm安装好的包里反查到属于哪个软件包的方法,rpm里的一个文件反查属于哪个rpm包:
[root@localhost /]# rpm -qf /usr/bin/sz
lrzsz-0.12.20-27.1.el6.x86_64 //ls -lart /var/lib/rpm/Packages 这个表里及相关表反查到的。
(十一)查看rpm包里的配置文件:
查看一下已安装软件的配置文件;
语法格式:rpm -qc 软件名
举例:
#rpm -qa|grep nginx
nginx-1.14.0-180523170757.el7.centos.x86_64
#rpm -qc nginx-1.14.0
/usr/local/nginx/conf/fastcgi.conf
/usr/local/nginx/conf/fastcgi_params
/usr/local/nginx/conf/koi-utf
/usr/local/nginx/conf/koi-win
/usr/local/nginx/conf/mime.types
-c, --configfiles
List only configuration files (implies -l).
rpm -qf /sbin/ifconfig //找不到这个,centos7没网络,没ifconfig咋整的,反查到缺少该包。
net-tools-2.0-0.17.20131004git.el7.x86_64
实践如下:
#chattr +i /var/lib/rpm/Packages ——>添加“i”隐藏属性后,就无法更动这个文件了 ,再rpm -ihv xxx.rpm,提示这个Packages index using db3-Permission denied(13)
举例比如,rpmbuild,咱发现这个命令没有,其它机器上有,又不知道这个文件是哪个rpm包里的于是反查呗:
build:[root@iZ25dcp92ckZ vhost]# whereis rpmbuild
rpmbuild: /usr/bin/rpmbuild
[root@iZ25dcp92ckZ vhost]# rpm -qf /usr/bin/rpmbuild
rpm-build-4.11.3-17.el7.x86_64
yum install rpm-build -y
[root@iZ25dcp92ckZ vhost]# rpm -qf /usr/bin/rz
lrzsz-0.12.20-36.el7.x86_64
[root@iZ25z0ugwgtZ xdebug]# rpm -qf /usr/bin/dig //名字和包一点关系没有如何反查在这儿有用了
bind-utils-9.9.4-29.el7_2.2.x86_64
#显示文件中查看是否存在系统以外的文件
rpm -Vf /bin/ls
rpm -Vf /usr/sbin/sshd
rpm -Vf /sbin/ifconfig
rpm -Vf /usr/sbin/lsof
#检查系统是否有elf文件被替换
(十一)阻塞问题:因为berkeley db对多任务并发操作支持不够好,从而导致数据库死锁而引起进程阻塞。一般处理是杀死相关进程,清空文件,运行yum命令清空:
(十二)配置好源后查看rpm输出信息知道仓库在哪儿:
yum clean all
yum info nginx-1.7.1
Loaded plugins: fastestmirror, security
Repository base is listed more than once in the configuration
Determining fastest mirrors
......
Available Packages
Name : nginx
Arch : x86_64
Version : 1.7.1
Release : el5
Size : 242 k
Repo : extra
Summary : High Performance Web Server
URL : http://nginx.org/
License : GPL
Description : nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server
(十三)yum install nginx-1.7.1,如何检查该包是否已经被安装?
rpm -qi nginx-1.7.1
package nginx-1.7.1 is not installed
(十四)首次及更新yum服务端rpm的索引文件:
yum -y install createrepo
createrepo --u http://192.168.1.245/winrpm -d -p -o . . //实现本机并指定镜像文件在192.168.1.245上。
createrepo --update -d -p .
(十五)yum本地缓存目录:
cat /etc/yum.conf |grep cachedir
cachedir=/var/cache/yum/$basearch/$releasever // /var/cache/yum/x86_64/6/
ls -lart /var/cache/yum/x86_64/6/base/
repomd.xml
packages
gen
cachecookie
11bcf3233241e37e1a0e04d2fde8a609215059b5b0319fd660f796d462bbe6a8-primary.sqlite
(十六)本地缓存的位置及对应关系:
repomd.xml这个文件是一个从服务器上同步的,通过yum clean all可以去掉的:
服务端:
md5sum /usr/local/nginx/html/centos6.4/x86_64/repodata/repomd.xml
792442251ee4d10e68dfedfea2818041 /usr/local/nginx/html/centos6.4/x86_64/repodata/repomd.xml
客户端:
md5sum /var/cache/yum/x86_64/6/extra/repomd.xml
792442251ee4d10e68dfedfea2818041 /var/cache/yum/x86_64/6/extra/repomd.xml
客户端的配置情况[extra]目录对应上面的客户端的extra目录(/var/cache/yum/x86_64/6/extra/):
cat /etc/yum.repos.d/test.repo
[extra] //个[extra]必须是唯一的单词,不能重复。
name=centos-extra
#baseurl=http://192.168.101.227/centos6.4/extra
baseurl=http://192.168.101.227/centos6.4/x86_64
gpgcheck=1
enabled=1
(十七)对不同yum仓库里有相同的rpm包时(不推荐这么搞),如果客户端都配置了,他会去下哪一个呢?
cat /etc/yum.repos.d/yum0.repo
cat /etc/yum.repos.d/yum1.repo
cat /etc/yum.repos.d/yum2.repo
是根据cost值越小来进行下载的:
cost=100
cost=105
cost=103
(十八)指定仓库安装里面的rpm包(被追求完美的系统的管理员排斥,觉得应用把yum服务的实现绑架了,尽量不要采用指定仓库的方式来安装):
(十九) 指定更新仓库索引,大幅度提升索引更新速度:
附录:
rpm包相关信息在本地sql存起来:
sqlite3 /var/cache/yum/x86_64/6/extra/ac3d9311735ae54c215864a35307072dda8b3b03503f272bb17c281e949279b2-primary.sqlite
sqlite> .tables
conflicts db_info files obsoletes packages provides requires
sqlite> .schema packages
CREATE TABLE packages ( pkgKey INTEGER PRIMARY KEY, pkgId TEXT, name TEXT, arch TEXT, version TEXT, epoch TEXT, release TEXT, summary TEXT, description TEXT, url TEXT, time_file INTEGER, time_build INTEGER, rpm_license TEXT, rpm_vendor TEXT, rpm_group TEXT, rpm_buildhost TEXT, rpm_sourcerpm TEXT, rpm_header_start INTEGER, rpm_header_end INTEGER, rpm_packager TEXT, size_package INTEGER, size_installed INTEGER, size_archive INTEGER, location_href TEXT, location_base TEXT, checksum_type TEXT);
CREATE INDEX packageId ON packages (pkgId);
CREATE INDEX packagename ON packages (name);
CREATE TRIGGER removals AFTER DELETE ON packages BEGIN DELETE FROM files WHERE pkgKey = old.pkgKey; DELETE FROM requires WHERE pkgKey = old.pkgKey; DELETE FROM provides WHERE pkgKey = old.pkgKey; DELETE FROM conflicts WHERE pkgKey = old.pkgKey; DELETE FROM obsoletes WHERE pkgKey = old.pkgKey; END;
sqlite> select * from packages;
1|6e099492eb691f0e869c02a7352530ec6a8d0056c1aadcde3613cc1f8e24e52c|pcre|x86_64|7.8|0|7.el6|Perl-compatible regular expression library|Perl-compatible regular expression library.
PCRE has its own native API, but a set of "wrapper" functions that are based on
the POSIX API are also supplied in the library libpcreposix. Note that this
just provides a POSIX calling interface to PCRE: the regular expressions
themselves still follow Perl syntax and semantics. The header file
for the POSIX-style functions is called pcreposix.h.|http://www.pcre.org/|1437770553|1437691568|BSD|CentOS|System Environment/Libraries|c6b8.bsys.dev.centos.org|pcre-7.8-7.el6.src.rpm|1384|11408|CentOS BuildSystem <http://bugs.centos.org>|200564|529027|531768|pcre-7.8-7.el6.x86_64.rpm||sha256
2|f1bced3b528579ba55ef1f3924e03f0979dd188a3ab5a877058a2ef247bc75ca|nginx|x86_64|1.7.1|0|el5|High Performance Web Server|nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server|http://nginx.org/|1457681066|1457581345|GPL||Applications/Server|iZ25dcp92ckZ|nginx-1.7.1-el5.src.rpm|280|5836|yunjianfei <yunjianfei1987@gmail.com>|248156|707923|711684|nginx-1.7.1-el5.x86_64.rpm||sha256
3|b354e7ed72daec3d497ed85fa68e5bd77556f642a2645659d40877dc6449382f|pcre-devel|x86_64|7.8|0|7.el6|Development files for pcre|Development files (Headers, libraries for dynamic linking, etc) for pcre.|http://www.pcre.org/|1437770555|1437691568|BSD|CentOS|Development/Libraries|c6b8.bsys.dev.centos.org|pcre-7.8-7.el6.src.rpm|1384|21612|CentOS BuildSystem <http://bugs.centos.org>|327960|980154|995184|pcre-devel-7.8-7.el6.x86_64.rpm||sha256
createrepo -d -p -o /tmp ../rpm/ //把repodata输出到/tmp目录下,和rpm包分开。
================================================================
如果有修改则会出现sm5....T c /etc/boy.conf //MODE、SIZE、MD5SUM、mtime都改变列出来了。
================================================================
rpm包依赖关系的解除:
在我们安装某一个rpm包的时候,系统有可能提示某一个库文件或者rpm的支持,当想在安装需要该rpm包倚赖的这个库文件或者rpm包时,该库文件或者rpm包又依赖另外的文件或rpm包,导致安装很难快速解决包之间的以来关系达到安装需要的组件的目的。redhat提供的解决方案,安装依赖关系库,就可以解决此问题,该文件可以用find -name rpmdb* 在rpm包所在文件夹中找到,然后运行 rpm -ivh --aid abc.rpm,abc.rpm为需要安装的包即可。当然复杂的时候还需要手动解决少数包依赖关系,简单的情况下,可以一次性解决所有以来关系。阅读全文
yum deplist openssh|grep -i ssl
dependency: libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit)
provider: openssl.x86_64 1.0.1e-57.el6
provider: openssl.x86_64 1.0.1e-57.el6
dependency: libcrypto.so.10(OPENSSL_1.0.1)(64bit)
provider: openssl.x86_64 1.0.1e-57.el6
provider: openssl.x86_64 1.0.1e-57.el6
rpm -q openssh-5.3p1 --requires|grep ssl
CentOS7上面运行yum clean all时会有这个提示:
AutoReqProv no:
--requires list capabilities required by package(s)
--provides list capabilities that this package provides
rpm -qp php-5.6.20-160919111909.el7.centos.x86_64.rpm --requires
libiconv
libmcrypt
mcrypt
mhash
libtool-ltdl-devel
rpm -qp mkvtoolnix-13.0.0-1.x86_64.rpm --requires
hicolor-icon-theme
libFLAC.so.8()(64bit)
libQt5Concurrent.so.5()(64bit)
libQt5Core.so.5()(64bit)
libQt5Core.so.5(Qt_5)(64bit)
libQt5Core.so.5(Qt_5.6)(64bit)
libQt5Gui.so.5()(64bit)
libQt5Gui.so.5(Qt_5)(64bit)
libQt5Multimedia.so.5()(64bit)
libQt5Multimedia.so.5(Qt_5)(64bit)
libQt5Network.so.5()(64bit)
libQt5Network.so.5(Qt_5)(64bit)
libQt5Widgets.so.5()(64bit)
libQt5Widgets.so.5(Qt_5)(64bit)
libboost_filesystem.so.1.53.0()(64bit)
libboost_regex-mt.so.1.53.0()(64bit)
libboost_system.so.1.53.0()(64bit)
rpm -qp php-5.6.20-160919111909.el7.centos.x86_64.rpm --provides
php = 5.6.20-160919111909.el7.centos
php(x86-64) = 5.6.20-160919111909.el7.centos
查询一个包是否被安装
# rpm -q < rpm package name>
列出所有被安装的rpm package
# rpm -qa
-p, --package query/verify a package file
(一)rpm包文件安装位置及列表:
[root@localhost x86_64]# rpm -qpl nginx-1.7.1-el5.x86_64.rpm
/usr/local/nginxinstallbyrpm
/usr/local/nginxinstallbyrpm/conf
/usr/local/nginxinstallbyrpm/conf/fastcgi.conf
/usr/local/nginxinstallbyrpm/conf/fastcgi.conf.default
/usr/local/nginxinstallbyrpm/conf/fastcgi_params
/usr/local/nginxinstallbyrpm/conf/fastcgi_params.default
/usr/local/nginxinstallbyrpm/conf/koi-utf
/usr/local/nginxinstallbyrpm/conf/koi-win
(二)rpm软件依赖检查命令:
[root@localhost x86_64]# rpm -qp nginx-1.7.1-el5.x86_64.rpm -requires
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1
/bin/sh
libc.so.6()(64bit)
libc.so.6(GLIBC_2.10)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libcrypt.so.1()(64bit)
libcrypt.so.1(GLIBC_2.2.5)(64bit)
libcrypto.so.10()(64bit)
libcrypto.so.10(libcrypto.so.10)(64bit)
libpcre.so.1()(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libz.so.1()(64bit)
(三)查看嵌入脚本, -scripts:(preuninstall 卸载前)
[root@localhost x86_64]# rpm -qp nginx-1.7.1-el5.x86_64.rpm -scripts
preuninstall scriptlet (using /bin/sh):
if [ -z "`ps aux | grep nginx | grep -v grep`" ];then
killall nginx >/dev/null
exit 0
fi
(四)查看rpm包的安装信息:
[root@localhost x86_64]# rpm -qpi nginx-1.7.1-el5.x86_64.rpm -scripts
Name : nginx Relocations: (not relocatable)
Version : 1.7.1 Vendor: (none)
Release : el5 Build Date: Thu 10 Mar 2016 11:42:25 AM CST
Install Date: (not installed) Build Host: iZ25dcp92ckZ
Group : Applications/Server Source RPM: nginx-1.7.1-el5.src.rpm
Size : 707923 License: GPL
Signature : (none)
Packager : yunjianfei <yunjianfei1987@gmail.com>
URL : http://nginx.org/
Summary : High Performance Web Server
Description :
nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server
preuninstall scriptlet (using /bin/sh):
if [ -z "`ps aux | grep nginx | grep -v grep`" ];then
killall nginx >/dev/null
exit 0
fi
(五)自动产生rpm包依赖关系:
autoreqprov
默认不写值是1,也就是自动产生依赖关系,而主查对于一些共享库进行依赖(除开写了的外)。
加了autoreqprov=1和autoreqprov=0的rpm包查看如下方法:
rpm -qp nginx-1.7.1-el5.x86_64.rpm --requires
/bin/sh
libc.so.6()(64bit)
libc.so.6(GLIBC_2.10)(64bit)
(六)rpm包的配置文件查看:
rpm -qp /usr/local/nginx/html/centos6.4/x86_64/nginx-1.7.1-el5.x86_64.rpm --configfiles
(七)查看rpm包的安装情况:
[root@localhost x86_64]# rpm -qa perl-Test-Simple
perl-Test-Simple-0.92-141.el6_7.1.x86_64
[root@localhost x86_64]# file pcre-7.8-7.el6.x86_64.rpm
pcre-7.8-7.el6.x86_64.rpm: RPM v3.0 bin i386/x86_64 pcre-7.8-7.el6
(八)rpm包配置文件验证:
[root@localhost /]# rpm -qvV nginx-filesystem
......... /etc/nginx
......... /etc/nginx/conf.d
......... /etc/nginx/default.d
......... /usr/share/nginx
......... /usr/share/nginx/html
(九)rpm伯克利文件存放rpm包安装相关信息:
[root@iZ25dcp92ckZ rpmbuild]# file /var/lib/rpm/* |grep Berkeley
/var/lib/rpm/Basenames: Berkeley DB (Btree, version 9, native byte-order)
/var/lib/rpm/Conflictname: Berkeley DB (Btree, version 9, native byte-order)
/var/lib/rpm/Dirnames: Berkeley DB (Btree, version 9, native byte-order)
(十)rpm安装好的包里反查到属于哪个软件包的方法,rpm里的一个文件反查属于哪个rpm包:
[root@localhost /]# rpm -qf /usr/bin/sz
lrzsz-0.12.20-27.1.el6.x86_64 //ls -lart /var/lib/rpm/Packages 这个表里及相关表反查到的。
(十一)查看rpm包里的配置文件:
查看一下已安装软件的配置文件;
语法格式:rpm -qc 软件名
举例:
#rpm -qa|grep nginx
nginx-1.14.0-180523170757.el7.centos.x86_64
#rpm -qc nginx-1.14.0
/usr/local/nginx/conf/fastcgi.conf
/usr/local/nginx/conf/fastcgi_params
/usr/local/nginx/conf/koi-utf
/usr/local/nginx/conf/koi-win
/usr/local/nginx/conf/mime.types
-c, --configfiles
List only configuration files (implies -l).
rpm -qf /sbin/ifconfig //找不到这个,centos7没网络,没ifconfig咋整的,反查到缺少该包。
net-tools-2.0-0.17.20131004git.el7.x86_64
实践如下:
#chattr +i /var/lib/rpm/Packages ——>添加“i”隐藏属性后,就无法更动这个文件了 ,再rpm -ihv xxx.rpm,提示这个Packages index using db3-Permission denied(13)
举例比如,rpmbuild,咱发现这个命令没有,其它机器上有,又不知道这个文件是哪个rpm包里的于是反查呗:
build:[root@iZ25dcp92ckZ vhost]# whereis rpmbuild
rpmbuild: /usr/bin/rpmbuild
[root@iZ25dcp92ckZ vhost]# rpm -qf /usr/bin/rpmbuild
rpm-build-4.11.3-17.el7.x86_64
yum install rpm-build -y
[root@iZ25dcp92ckZ vhost]# rpm -qf /usr/bin/rz
lrzsz-0.12.20-36.el7.x86_64
[root@iZ25z0ugwgtZ xdebug]# rpm -qf /usr/bin/dig //名字和包一点关系没有如何反查在这儿有用了
bind-utils-9.9.4-29.el7_2.2.x86_64
#显示文件中查看是否存在系统以外的文件
rpm -Vf /bin/ls
rpm -Vf /usr/sbin/sshd
rpm -Vf /sbin/ifconfig
rpm -Vf /usr/sbin/lsof
#检查系统是否有elf文件被替换
(十一)阻塞问题:因为berkeley db对多任务并发操作支持不够好,从而导致数据库死锁而引起进程阻塞。一般处理是杀死相关进程,清空文件,运行yum命令清空:
(十二)配置好源后查看rpm输出信息知道仓库在哪儿:
yum clean all
yum info nginx-1.7.1
Loaded plugins: fastestmirror, security
Repository base is listed more than once in the configuration
Determining fastest mirrors
......
Available Packages
Name : nginx
Arch : x86_64
Version : 1.7.1
Release : el5
Size : 242 k
Repo : extra
Summary : High Performance Web Server
URL : http://nginx.org/
License : GPL
Description : nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server
(十三)yum install nginx-1.7.1,如何检查该包是否已经被安装?
rpm -qi nginx-1.7.1
package nginx-1.7.1 is not installed
(十四)首次及更新yum服务端rpm的索引文件:
yum -y install createrepo
createrepo --u http://192.168.1.245/winrpm -d -p -o . . //实现本机并指定镜像文件在192.168.1.245上。
createrepo --update -d -p .
(十五)yum本地缓存目录:
cat /etc/yum.conf |grep cachedir
cachedir=/var/cache/yum/$basearch/$releasever // /var/cache/yum/x86_64/6/
ls -lart /var/cache/yum/x86_64/6/base/
repomd.xml
packages
gen
cachecookie
11bcf3233241e37e1a0e04d2fde8a609215059b5b0319fd660f796d462bbe6a8-primary.sqlite
(十六)本地缓存的位置及对应关系:
repomd.xml这个文件是一个从服务器上同步的,通过yum clean all可以去掉的:
服务端:
md5sum /usr/local/nginx/html/centos6.4/x86_64/repodata/repomd.xml
792442251ee4d10e68dfedfea2818041 /usr/local/nginx/html/centos6.4/x86_64/repodata/repomd.xml
客户端:
md5sum /var/cache/yum/x86_64/6/extra/repomd.xml
792442251ee4d10e68dfedfea2818041 /var/cache/yum/x86_64/6/extra/repomd.xml
客户端的配置情况[extra]目录对应上面的客户端的extra目录(/var/cache/yum/x86_64/6/extra/):
cat /etc/yum.repos.d/test.repo
[extra] //个[extra]必须是唯一的单词,不能重复。
name=centos-extra
#baseurl=http://192.168.101.227/centos6.4/extra
baseurl=http://192.168.101.227/centos6.4/x86_64
gpgcheck=1
enabled=1
(十七)对不同yum仓库里有相同的rpm包时(不推荐这么搞),如果客户端都配置了,他会去下哪一个呢?
cat /etc/yum.repos.d/yum0.repo
cat /etc/yum.repos.d/yum1.repo
cat /etc/yum.repos.d/yum2.repo
是根据cost值越小来进行下载的:
cost=100
cost=105
cost=103
(十八)指定仓库安装里面的rpm包(被追求完美的系统的管理员排斥,觉得应用把yum服务的实现绑架了,尽量不要采用指定仓库的方式来安装):
(十九) 指定更新仓库索引,大幅度提升索引更新速度:
附录:
rpm包相关信息在本地sql存起来:
sqlite3 /var/cache/yum/x86_64/6/extra/ac3d9311735ae54c215864a35307072dda8b3b03503f272bb17c281e949279b2-primary.sqlite
sqlite> .tables
conflicts db_info files obsoletes packages provides requires
sqlite> .schema packages
CREATE TABLE packages ( pkgKey INTEGER PRIMARY KEY, pkgId TEXT, name TEXT, arch TEXT, version TEXT, epoch TEXT, release TEXT, summary TEXT, description TEXT, url TEXT, time_file INTEGER, time_build INTEGER, rpm_license TEXT, rpm_vendor TEXT, rpm_group TEXT, rpm_buildhost TEXT, rpm_sourcerpm TEXT, rpm_header_start INTEGER, rpm_header_end INTEGER, rpm_packager TEXT, size_package INTEGER, size_installed INTEGER, size_archive INTEGER, location_href TEXT, location_base TEXT, checksum_type TEXT);
CREATE INDEX packageId ON packages (pkgId);
CREATE INDEX packagename ON packages (name);
CREATE TRIGGER removals AFTER DELETE ON packages BEGIN DELETE FROM files WHERE pkgKey = old.pkgKey; DELETE FROM requires WHERE pkgKey = old.pkgKey; DELETE FROM provides WHERE pkgKey = old.pkgKey; DELETE FROM conflicts WHERE pkgKey = old.pkgKey; DELETE FROM obsoletes WHERE pkgKey = old.pkgKey; END;
sqlite> select * from packages;
1|6e099492eb691f0e869c02a7352530ec6a8d0056c1aadcde3613cc1f8e24e52c|pcre|x86_64|7.8|0|7.el6|Perl-compatible regular expression library|Perl-compatible regular expression library.
PCRE has its own native API, but a set of "wrapper" functions that are based on
the POSIX API are also supplied in the library libpcreposix. Note that this
just provides a POSIX calling interface to PCRE: the regular expressions
themselves still follow Perl syntax and semantics. The header file
for the POSIX-style functions is called pcreposix.h.|http://www.pcre.org/|1437770553|1437691568|BSD|CentOS|System Environment/Libraries|c6b8.bsys.dev.centos.org|pcre-7.8-7.el6.src.rpm|1384|11408|CentOS BuildSystem <http://bugs.centos.org>|200564|529027|531768|pcre-7.8-7.el6.x86_64.rpm||sha256
2|f1bced3b528579ba55ef1f3924e03f0979dd188a3ab5a877058a2ef247bc75ca|nginx|x86_64|1.7.1|0|el5|High Performance Web Server|nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server|http://nginx.org/|1457681066|1457581345|GPL||Applications/Server|iZ25dcp92ckZ|nginx-1.7.1-el5.src.rpm|280|5836|yunjianfei <yunjianfei1987@gmail.com>|248156|707923|711684|nginx-1.7.1-el5.x86_64.rpm||sha256
3|b354e7ed72daec3d497ed85fa68e5bd77556f642a2645659d40877dc6449382f|pcre-devel|x86_64|7.8|0|7.el6|Development files for pcre|Development files (Headers, libraries for dynamic linking, etc) for pcre.|http://www.pcre.org/|1437770555|1437691568|BSD|CentOS|Development/Libraries|c6b8.bsys.dev.centos.org|pcre-7.8-7.el6.src.rpm|1384|21612|CentOS BuildSystem <http://bugs.centos.org>|327960|980154|995184|pcre-devel-7.8-7.el6.x86_64.rpm||sha256
createrepo -d -p -o /tmp ../rpm/ //把repodata输出到/tmp目录下,和rpm包分开。
================================================================
如果有修改则会出现sm5....T c /etc/boy.conf //MODE、SIZE、MD5SUM、mtime都改变列出来了。
================================================================
rpm包依赖关系的解除:
在我们安装某一个rpm包的时候,系统有可能提示某一个库文件或者rpm的支持,当想在安装需要该rpm包倚赖的这个库文件或者rpm包时,该库文件或者rpm包又依赖另外的文件或rpm包,导致安装很难快速解决包之间的以来关系达到安装需要的组件的目的。redhat提供的解决方案,安装依赖关系库,就可以解决此问题,该文件可以用find -name rpmdb* 在rpm包所在文件夹中找到,然后运行 rpm -ivh --aid abc.rpm,abc.rpm为需要安装的包即可。当然复杂的时候还需要手动解决少数包依赖关系,简单的情况下,可以一次性解决所有以来关系。阅读全文
实践OK,您是否需要模拟初始登录,您可以使用它sudo -s来获取root shell。
来自:https://qa.1r1g.cn/serverfault/ask/25709631/
首先,提升用户至root
#su - (注意后面的-)
2、添加文件写权限。
chmod u+w /etc/sudoers (注:linux下)
chmod u+w /usr/local/etc/sudoers (注:FreeBSD下)
3、添加下面这一行至上述文件
username ALL=(ALL) ALL(注:linux下)
username ALL=(ALL) SETENV: ALL(注:FreeBSD下)
我的FreeBSD:
4、保存并退出
5、取消文件写权限
否则出现:sudo: /usr/local/etc/sudoers is mode 0640, should be 0440 (注:FreeBSD下)
chmod u-w /etc/sudoers (注:linux下)
chmod u-w /usr/local/etc/sudoers (注:FreeBSD下)
好了,这样就可以了。(最好重新登陆改账号!)
PS:
多谢那位兄弟的提醒。。。
来自:https://qa.1r1g.cn/serverfault/ask/25709631/
首先,提升用户至root
#su - (注意后面的-)
2、添加文件写权限。
chmod u+w /etc/sudoers (注:linux下)
chmod u+w /usr/local/etc/sudoers (注:FreeBSD下)
3、添加下面这一行至上述文件
username ALL=(ALL) ALL(注:linux下)
username ALL=(ALL) SETENV: ALL(注:FreeBSD下)
我的FreeBSD:
xiangdong2 ALL=(ALL) SETENV: ALL
4、保存并退出
5、取消文件写权限
否则出现:sudo: /usr/local/etc/sudoers is mode 0640, should be 0440 (注:FreeBSD下)
chmod u-w /etc/sudoers (注:linux下)
chmod u-w /usr/local/etc/sudoers (注:FreeBSD下)
好了,这样就可以了。(最好重新登陆改账号!)
PS:
多谢那位兄弟的提醒。。。
在邮件的smtp协议中通常对内容进行base64编码传输,在邮箱的path路径下如果是外域过来的信件一般都是经过编码的,自己本域的信件可能是明文存放,为此,出现了base64解码和编码,前些javascrip都可以实现,有专门写了个界面去干这事:
http://www.cnd8.com/down/24926.htm?no=1 可以下载!
http://www.cnd8.com/down/24926.htm?no=1 可以下载!
去sun下载一个jdk的bin包:
https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFilteredProducts-SingleVariationTypeFilter
然后对这个包:
chmod a+x jdk-6u11-linux-i586.bin
./jdk-6u11-linux-i586.bin
确认安装即可,然后将解压的文件放到自己的一个目录,修改PATH变量,然后在终端运行:
即可!
https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFilteredProducts-SingleVariationTypeFilter
然后对这个包:
chmod a+x jdk-6u11-linux-i586.bin
./jdk-6u11-linux-i586.bin
确认安装即可,然后将解压的文件放到自己的一个目录,修改PATH变量,然后在终端运行:
java
javac
javac
即可!
兄弟部门在全国N台服务器的空间放一些视频文件,由于只给我开放FTP帐号,于是找了一款Linux命令行下的FTP客户端软件──ncftp,用来作整个目录批量上传。ncftpput是它的一个附带程序,在shell脚本中调用ncftpput上传文件到FTP服务器,非常方便。
详细内容见其官方网站:http://www.ncftp.com/
编译安装:
示例:将本地/data0/htdocs/videofile/flv/games/目录内的所有文件和目录,上传到FTP服务器的flv/games/目录内(如果不存在flv/games/目录则自动创建)。
本人在freebsd安装了一下,没有问题,也能安装喔。。!
详细内容见其官方网站:http://www.ncftp.com/
编译安装:
wget ftp://ftp.ncftp.com/ncftp/ncftp-3.2.2-src.tar.gz
tar zxvf ncftp-3.2.2-src.tar.gz
cd ncftp-3.2.2/
./configure --prefix=/usr/local/ncftp
make && make install
tar zxvf ncftp-3.2.2-src.tar.gz
cd ncftp-3.2.2/
./configure --prefix=/usr/local/ncftp
make && make install
示例:将本地/data0/htdocs/videofile/flv/games/目录内的所有文件和目录,上传到FTP服务器的flv/games/目录内(如果不存在flv/games/目录则自动创建)。
/usr/local/ncftp/bin/ncftpput -u FTP帐号 -p FTP密码 -P FTP端口 -m -R 192.168.1.2 flv/games/ /data0/htdocs/videofile/flv/games/*
本人在freebsd安装了一下,没有问题,也能安装喔。。!
有一个文件如下:
我现在想显示每一行, 但每一行的最后一个字段不显示, 例如结果为:
请问应该怎么实现啊, 先谢谢了
awk '{$NF="";print}'
$NF是最后一个字段的内容,把最后一个字段清空!
二)AWK显示最后一列的写法,$NF最后一列的使用方法:
但是如何获取最后一列呢?
可以使用awk -F',' '{print $NF}' 来获取,mark一下
来自:https://blog.csdn.net/slx_2011/article/details/19827307
ls -lart /data/logs/nginx/*|awk '{print $NF}'
/data/logs/nginx/error.log
/data/logs/nginx/access.log
/data/logs/nginx/jackxiang.txt
/data/logs/nginx/jackX.tt
三)单独的NF是一个分割多少列的值:
NF 表示的是浏览记录的域的个数
$NF 表示的最后一个Field(列),即输出最后一个字段的内容
[root@localhost SHELL]# free -m | grep buffers\/
-/+ buffers/cache: 1815 1859
[root@localhost SHELL]# free -m | grep buffers\/ | awk '{print $NF}'
1859
[root@localhost SHELL]# free -m | grep buffers\/ | awk '{print NF}'
4
[root@localhost SHELL]#
---------------------
作者:lm_123_456
来源:CSDN
原文:https://blog.csdn.net/github_33736971/article/details/54286736
版权声明:本文为博主原创文章,转载请附上博文链接!
w aa n t ax d
t ch ae f
d jh ah s t ih s
t ch ae f
d jh ah s t ih s
我现在想显示每一行, 但每一行的最后一个字段不显示, 例如结果为:
w aa n t ax
t ch ae
d jh ah s t ih
t ch ae
d jh ah s t ih
请问应该怎么实现啊, 先谢谢了
awk '{$NF="";print}'
awk '{$NF="";print}' test.txt
$NF是最后一个字段的内容,把最后一个字段清空!
[root@vm19 ~]# awk '{$NF="";print}' test.txt
w aa n t ax
t ch ae
d jh ah s t ih
w aa n t ax
t ch ae
d jh ah s t ih
二)AWK显示最后一列的写法,$NF最后一列的使用方法:
但是如何获取最后一列呢?
可以使用awk -F',' '{print $NF}' 来获取,mark一下
来自:https://blog.csdn.net/slx_2011/article/details/19827307
ls -lart /data/logs/nginx/*|awk '{print $NF}'
/data/logs/nginx/error.log
/data/logs/nginx/access.log
/data/logs/nginx/jackxiang.txt
/data/logs/nginx/jackX.tt
三)单独的NF是一个分割多少列的值:
NF 表示的是浏览记录的域的个数
$NF 表示的最后一个Field(列),即输出最后一个字段的内容
[root@localhost SHELL]# free -m | grep buffers\/
-/+ buffers/cache: 1815 1859
[root@localhost SHELL]# free -m | grep buffers\/ | awk '{print $NF}'
1859
[root@localhost SHELL]# free -m | grep buffers\/ | awk '{print NF}'
4
[root@localhost SHELL]#
---------------------
作者:lm_123_456
来源:CSDN
原文:https://blog.csdn.net/github_33736971/article/details/54286736
版权声明:本文为博主原创文章,转载请附上博文链接!
Fedora7安装Beryl手记
http://hi.baidu.com/busybox/blog/item/3447378210883794f603a6bb.html
Compiz Fusion新增两大特效!“Vista”和“Leopard”:
http://hi.baidu.com/busybox/blog/item/3447378210883794f603a6bb.html
资料:
http://bbs.wuyou.com/viewthread.php?tid=104536&extra=page%3D5
http://cpublic.bloghome.cn/posts/94671.html
http://www.pmme.cn/archives/vista-vs-ubuntu-beryl/
http://hi.baidu.com/busybox/blog/item/3447378210883794f603a6bb.html
Compiz Fusion新增两大特效!“Vista”和“Leopard”:
http://hi.baidu.com/busybox/blog/item/3447378210883794f603a6bb.html
资料:
http://bbs.wuyou.com/viewthread.php?tid=104536&extra=page%3D5
http://cpublic.bloghome.cn/posts/94671.html
http://www.pmme.cn/archives/vista-vs-ubuntu-beryl/
cherokee 号称是目前最快的 web 服务器软件,在性能上,甚至比 Nginx 还略胜一筹。与 Apache、Lighttpd、Nginx 等其他同类软件的对比,大家不妨看看这个测试页面。我在本机安装了 Cherokee,一番使用下来,Cherokee 给我的感觉是,其易用性做得也很不错。
Cherokee 的功能包括支持 FastCGI、SCGI、PHP、CGI、TLS 及 SSL 加密连接,虚拟主机,授权认证,实时编码,载入均衡,与 Apache 兼容的 log 文件等等。阅读全文
Cherokee 的功能包括支持 FastCGI、SCGI、PHP、CGI、TLS 及 SSL 加密连接,虚拟主机,授权认证,实时编码,载入均衡,与 Apache 兼容的 log 文件等等。阅读全文