分类目录归档:linux学习

Unix下tee指令的使用-演道网

在平时使用输出重定向一般都是使用“>”和“>>”把需要输出的内容指定到一个文件里,前者如果在后面的指定文件已存在,那么这个文件会被重写;后者则是追加,把内容追加到文件的末尾保存,这2个方法都不能重定向在屏幕上显示内容。但在有些时候需要把屏幕查看信息重定向或者是需要把一个内容重定向到多个文件里那么就要使用tee指令了,通过man帮助得到以下参数选项:

-a:向文件中重定向时使用追加模式;

-i:忽略中断(interrupt)信号。

其中-a不难理解就是和“>>”的效果是一样的,-i的意思是不在接收中断信号,当我们使用tee输出重定向时使用[Ctrl]c发送终止信号时是不会接收无效的,只能使用[Ctrl]d发送EOF结束,如果我们需要把一份内容重定向到多个文件就可以这样写:

[root@linuxidc data]# cat file |tee file1 file2

转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn

CentOS 6.5下Zabbix2.4.8安装配置-演道网

一、Zabbix特性简介

Zabbix可以监控网络和服务的监控状况. Zabbix利用灵活的告警机制,允许用户对事件发送基于Email的告警. 这样可以保证快速的对问题作出相应. Zabbix可以利用存储数据提供杰出的报告及图形化方式. 这一特性将帮助用户完成容量规划。

二、本次实战环境

名称 主机名 ip
zabbix server server134 192.168.159.134
zabbix agent server135 192.168.159.135 

三、服务器安装步骤

3.1、安装开发软件包及zabbix安装所依赖的软件包

[root@server134 ~]yum groupinstall “Development Tools”

[root@server134 ~]# yum install php-common php-odbc php-pear curl curl-devel perl-DBI php-xml ntpdate  php-bcmath mysql httpd php-mysql mysql-server php php-gd  ntpdate

3.2、同步服务端的时间,避免时间不同导致不可用的监控数据

[root@server134 ~]# ntpdate pool.ntp.org

8 Feb 18:41:20 ntpdate[2871]: step time server 85.199.214.100 offset 4.665038 sec

3.3、创建zabbix服务运行的用户和组

[root@server134 ~]# groupadd -g 201 zabbix

[root@server134 ~]# useradd -g zabbix -u 201 -m zabbix

3.4、启动mysql、创建zabbix数据库、设置用户密码访问

[root@server134 ~]# /etc/init.d/mysqld start

[root@server134 ~]# mysql -u root -p

mysql> create database zabbix character set utf8;

Query OK, 1 row affected (0.08 sec)

mysql> grant all privileges on *.* to ‘zabbix’@’%’ identified by ‘zishang77’;

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

因本文使用的是mysql5.7,MySQL默认开启了validate_password插件,进行密码验证,需要很强的密码强度才能通过认证此版本对密码的要求比较严格,本文做了如下调整

查阅官方文档后发现有以下三种密码策略:

Policy Tests Performed
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file

mysql> select @@validate_password_policy;

+—————————-+

| @@validate_password_policy |

+—————————-+

| MEDIUM                    |

+—————————-+

1 row in set (0.00 sec)

mysql> SHOW VARIABLES LIKE ‘validate_password%’;

+————————————–+——–+

| Variable_name                        | Value  |

+————————————–+——–+

| validate_password_check_user_name    | OFF    |

| validate_password_dictionary_file    |        |

| validate_password_length            | 8      |

| validate_password_mixed_case_count  | 1      |

| validate_password_number_count      | 1      |

| validate_password_policy            | MEDIUM |

| validate_password_special_char_count | 1      |

+————————————–+——–+

7 rows in set (0.08 sec)

mysql> set global validate_password_policy=0;#设置密码的策略为low

Query OK, 0 rows affected (0.00 sec)

 

mysql> set global validate_password_mixed_case_count=0#设置指定了密码中大小字母的长度

    -> ;

Query OK, 0 rows affected (0.00 sec)

 

mysql> set global validate_password_number_count=2;#设置指定了密码中数据的长度

Query OK, 0 rows affected (0.00 sec)

 

mysql> set global validate_password_special_char_count=0;#设置密码中的特殊字符为0

Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=6;#设置密码长度为6

Query OK, 0 rows affected (0.00 sec)

 

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on *.* to ‘zabbix’@’%’ identified by ‘zabbix’;

Query OK, 0 rows affected, 1 warning (0.06 sec)

 

3.5、安装zabbix,并导入zabbix包中的数据到mysql的zabbix数据库中

[root@server134 mnt]# tar zxvf zabbix-2.4.8.tar.gz

[root@server134 mnt]# cd zabbix-2.4.8

[root@server134 mnt]# cd zabbix-2.4.8

[root@server134 zabbix-2.4.8]# mysql -uzabbix -pzabbix zabbixconfigure: error: MySQL library not found

[root@server134 zabbix-2.4.8]# yum install mysql-devel

[root@server134 zabbix-2.4.8]# make &&make install

 

3.6、Copy zabbixserver端跟agent端的启动脚本,并设置执行权限

[root@server134 zabbix-2.4.8]# cp misc/init.d/tru64/zabbix_agentd /etc/init.d/

[root@server134 zabbix-2.4.8]# cp misc/init.d/tru64/zabbix_server /etc/init.d/

[root@server134 zabbix-2.4.8]# chmod +x /etc/init.d/zabbix_*

[root@server134 zabbix-2.4.8]# cp misc/init.d/tru64/zabbix_agentd /etc/init.d/

[root@server134 zabbix-2.4.8]# cp misc/init.d/tru64/zabbix_server /etc/init.d/

[root@server134 zabbix-2.4.8]# chmod +x /etc/init.d/zabbix_*

[root@server134 zabbix-2.4.8]# mkdir /var/www/html/zabbix

[root@server134 zabbix-2.4.8]# cp -a frontends/php/* /var/www/html/zabbix/

[root@server134 zabbix-2.4.8]# chown -R apache.apache /var/www/html/zabbix/

 

3.7、调整使用zabbix服务所需的php参数

[root@server134 zabbix-2.4.8]# vi /etc/php.ini

date.timezone = Asia/Shanghai

max_execution_time = 300

max_input_time = 300

post_max_size = 32M

memory_limit = 128M

mbstring.func_overload = 0

[root@server134 zabbix-2.4.8]# service httpd restart

 

3.8、调整zabbix服务所需的参数

[root@server134 ~]# vi /etc/zabbix/zabbix_server.conf

DBHost=192.168.159.134

DBName= zabbix

DBUser=zabbix

DBPassword=zabbix

DBSocket=/var/lib/mysql/mysql.sock

StartPollers=30        开启多线程数,一般不要超过30个

StartTrappers=20        trapper线程数

StartPingers=10        fping线程数

StartDiscoverers=120   

ListenIP=0.0.0.0

MaxHousekeeperDelete=5000     

CacheSize=128M        用来保存监控数据的缓存数,根据监控主机的数量适当调整

StartDBSyncers=8      数据库同步时间

HistoryCacheSize=128M 

TrendCacheSize=128M    总趋势缓存大小

HistoryTextCacheSize=128M

AlertScriptsPath=/etc/zabbix/alertscripts

LogSlowQueries=1000

[root@server134 ~]# service httpd restart

[root@server134 ~]# /etc/init.d/zabbix_server start

3.8、图形化安装zabbix

http://192.168.159.134/zabbix/setup.php

更多详情

转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn

搭建PXE服务器安装Linux系统-演道网

PXE是在没有软驱、硬盘、CD-ROM的情况下引导计算机的一种方式,也就是BIOS将使用PXE协议从网络引导。

DHCP服务器:用来动态分配IP地址(同时分配子网掩码、网关、TFTP服务器地址、启动文件名、DNS服务器、时间服务器等等)。

TFTP服务器:用来提供启动文件的下载

简单说来,PXE服务器就是DHCP服务器+TFTP服务器。网络启动过程大概是这样的(可能并不严谨):客户端发送动态获得IP地址的广播包到 网络上,DHCP服务器在收到该广播包后,发送给客户端分配IP地址的回应包,客户端收到回应包后设置自己的IP地址,然后从DHCP服务器获得启动服务 器的IP地址(DHCP服务器066选项,这就是TFTP服务器的IP地址)及启动文件名(DHCP服务器067选项,这里的启动文件名就是 pxelinux.0或者支持pxe的grub4dos的grldr,当然,也可以是startrom.n12或者使用3com Image Edit创建的pxe启动菜单文件,总之,它应该是一种由pxe启动规范规定的固定格式的可执行文件),然后客户端到联系启动服务器(TFTP服务器)获 得启动文件并执行,这样基本上就完成了pxe启动过程。

在Unix或者Linux系统下,DHCP服务器和TFTP服务器一般都是分开设置的,两台服务器甚至可以在两台不同的机器上,其实 Windows下的设置也是一样的,但在Windows下,我们可以通过使用HaneWin DHCP服务器软件或TFTPD32一个软件就搞定(我个人推荐使用HaneWin DHCP服务器软件,但TFTPD32设置起来更简单一些,就是效率有些低),详细的设置方法请自己摸索,你只要知道,在设置PXE服务器时,要设置好 DHCP和TFTP两个服务器,其中DHCP服务器要设置启动服务器名和启动文件名。

搭建环境:

推送服务器:

Ip:192.168.189.138

系统:CentOS 5.8

推送系统:RHEL 5.4

1:配置dhcpd服务。

如果没有安装dhcpd服务,请安装:

# yum -y install dhcp.x86_64
# vi /etc/dhcpd.conf
option domain-name “766.com”;
default-lease-time 6000; 
max-lease-time 11400; 
authourtative; 
next-server 192.168.189.138;
ddns-update-style ad-hoc; 
log-facility local7; 
subnet 192.168.189.0 netmask 255.255.255.0{ 
range 192.168.189.150 192.168.189.195;
option domain-name-servers 192.168.189.254; 
option domain-name “766.com”;
option netbios-name-servers 192.168.189.254; 
option routers 192.168.189.254; 
option broadcast-address 192.168.189.255;
default-lease-time 6000; 
max-lease-time 11400; 
filename “/kickstart/ks.cfg”;
}
 
 
option space PXE; 
 
class “PXE” { 
    match if substring(optionvendor-class-identifier, 0, 9) = “PXEClient”; 
    optionvendor-encapsulated-options 01:04:00:00:00:00:ff; 
    option boot-size 0x1; 
    filename”pxelinux.0″; 
    option tftp-server-name “192.168.189.138”; 
    option vendor-class-identifier”PXEClient”; 
    vendor-option-space PXE; 
}

2:开启tftp服务:

如果没有tftp服务软件,请安装:

# yum -y installtftp.x86_64
# yum -y installxinetd.x86_64 
# yum -y installtftp-server.x86_64
 
配置tftp
# vi/etc/xinetd.d/tftp
service tftp
{
        socket_type            = dgram
        protocol              = udp
        wait                = yes
        user                = root
        server              = /usr/sbin/in.tftpd
        server_args            = -s /tftpboot
        disable              = no
        per_source            = 11
        cps                = 100 2
        flags                = IPv4
 }

3:准备推送所需的文件与目录。

把光盘或iso文件中的isolinux目录下的文件,拷贝到/tftpboot。

把pxelinux.0文件拷贝到/tftpboot:

# cp /usr/lib/syslinux/pxelinux.0 /tftpboot

创建RHEL5.4目录,把initrd.img、vmlinuz两个文件拷贝进去:

# mkdir -p /tftpboot/RHEL5.4
# mv /tftpboot/initrd.img /tftpboot/RHEL5.4
# mv /tftpboot/vmlinuz /tftpboot/RHEL5.4

创建pxelinux.cfg目录,把isolinux.cfg文件拷贝进去,并改名default:

# mv isolinux.cfg pxelinux.cfg/default
 
修改default文件参数
# vi /tftpboot/pxelinux.cfg/default
default linux
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label RHEL5.4
 kernel RHEL5.4/vmlinuz
 append ksdevice=eth0 load_ramdisk=1 initrd=RHEL5.4/initrd.img noipv6

配置boot.msg,添加加载选项:

# vi /tftpboot/boot.msg
Install RHEL5.4  —> RHEL5.4

4:提供安装镜像或者内容,这里使用nfs方式。

把光盘镜像或内容拷贝到/home/RedHat下。

使用nfs方式,把/home/redhat共享给192.168.189.0/24网段:

# vi/etc/exports
/home/redhat 192.168.189.0/24(rw,async,no_root_squash)

5:启动各个所需服务,并测试安装。

# service dhcpd start
# service xinetd start
# service nfs start

启动计算机,F12,选择从网卡启动,正常的话则可进入安装引导界面:

写入RHEL5.4,进入安装。

选择安装介质获取方式,选择nfs:

填写服务器ip与介质路径:

进入图形安装界面,说明可以安装了:

使用ks文件实现全自动安装:

使用system-config-kickstart创建ks文件模版(system-config-kickstart无法创建LVM,若要使用LVM,许在生成ks文件后,手动编辑)

LVM配置:

partpv.01 –size=10000 –grow
volgroupvg-001 pv.01
logvol/ –vgname=vg-001 –size=10000 –name=lv-001

ks文件中指定了键盘,语言,安装方式,分区等配置。

配置default文件,指定ks文件路径(可用nfs,ftp等方式):

append ksdevice=eth0 load_ramdisk=1 initrd=RHEL5.4/initrd.img ks=nfs:192.168.189.138:/home/redhat/ks.cfg noipv6 

启动客户端,测试自动安装。

更多RedHat相关信息见RedHat 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=10

转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn

Ubuntu下安装数字摄影暗房软件 Darktable 2.2.2-演道网

Darktable可以被称之为Linux版的Lightroom,这是一款帮助专业摄影师的进行照片管理及后期处理的图形工具,也可以称之为暗房软件。官方网站:http://www.darktable.org/。通它你可以用来调整及渲染你的数码照片,使之更加漂亮。Darktable使用gtk+/cairo构建,后台数据库使用sqlite3。

Ubuntu下安装数字摄影暗房软件 Darktable 2.2.2

Darktable 2.2.2带来的新变化 点击这里看详细

新功能:

  • color look up table module: include preset for helmholtz/kohlrausch monochrome
  • Lens module: re-enable tiling
  • Darkroom: fix some artefacts in the preview image (not the main view!)
  • DNG decoder: support reading one more white balance encoding method
  • Mac: display an error when too old OS version is detected
  • Some documentation and tooltips updates

漏洞修复:

  • Main view no longer grabs focus when mouse enters it. Prevents accidental catastrophic image rating loss.
  • OSX: fix bauhaus slider popup keyboard input
  • Don’t write all XMP when detaching tag
  • OSX: don’t do PPD autodetection, gtk did their thing again.
  • Don’t show database lock popup when DBUS is used to start darktable
  • Actually delete duplicate’s XMP when deleting duplicated image
  • Ignore UTF-8 BOM in GPX files
  • Fix import of LR custom tone-curve
  • Overwrite Xmp rating from raw when exporting
  • Some memory leak fixes
  • Lua: sync XMPs after some tag manipulations
  • Explicitly link against math library

基础支持:

  • Canon PowerShot SX40 HS (dng)
  • Fujifilm X-E2S
  • Leica D-LUX (Typ 109) (4:3, 3:2, 16:9, 1:1)
  • Leica X2 (dng)
  • Nikon LS-5000 (dng)
  • Nokia Lumia 1020 (dng)
  • Panasonic DMC-GF6 (16:9, 3:2, 1:1)
  • Pentax K-5 (dng)
  • Pentax K-r (dng)
  • Pentax K10D (dng)
  • Sony ILCE-6500

Noise Profiles:

  • Fujifilm X-M1
  • Leica X2
  • Nikon Coolpix A
  • Panasonic DMC-G8
  • Panasonic DMC-G80
  • Panasonic DMC-G81
  • Panasonic DMC-G85

Ubuntu 用户安装命令:

sudo add-apt-repository ppa:pmjdebruijn/darktable-release

Ubuntu下安装数字摄影暗房软件 Darktable 2.2.2 

sudo apt-get update

Ubuntu下安装数字摄影暗房软件 Darktable 2.2.2 

sudo apt-get install darktable

Ubuntu下安装数字摄影暗房软件 Darktable 2.2.2

卸载 Darktable命令:

sudo apt-get remove darktable

其他Linux系统安装方法

Ubuntu下安装数字摄影暗房软件 Darktable 2.2.2 

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn

Ubuntu 16.04安装图像处理软件 RawTherapee 5.0-演道网

先介绍一下 RawTherapee,这是一款简单、实用的跨平台图像处理软件,快速、高效的帮助您处理所需图片工作。Raw 图像文件也越来越常见,有时候为了调整一下,不得不打开 Photoshop 来处理,有了 Raw Therapee 一切变得方便快捷。

Raw 图像文件包含着从数码相机或扫描仪的图像传感器上直接得到的仅经过最少处理的原始数据。 Raw 格式之所以称之为 Raw ,就是因为他们未经任何处理。因此通常不能直接使用位图编辑器进行编辑、打印、或者在浏览器上显示这些图片。一般来说,图像文件可以使用 Raw 转换工具,在一个大色域中进行精确的调整,然后转换为 TIFF 、 JPEG 等图像文件以便于保存和打印。通常转换后的文件是设备相关的(device-dependent)。 Raw 格式经常被认为是单一的格式,因而被称为 Raw 文件。事实上各种不同型号的数码设备(例如数码相机和扫描仪)使用了数十种甚至上百种 Raw 格式。

Ubuntu 16.04安装图像处理软件 RawTherapee 5.0

软件的功能很强大,什么曝光补偿,亮度,高光,对比度,旋转,剪裁统杀。支持历史记录,和快照(就是把当前的处理状态临时保存下来)。

关于新版本的介绍点击这里

Ubuntu 16.04安装,有PPA安装非常方便,输入以下三条命令:

sudo add-apt-repository ppa:dhor/myway

Ubuntu 16.04安装图像处理软件 RawTherapee 5.0

sudo apt-get update

sudo apt-get install rawtherapee

Ubuntu 16.04安装图像处理软件 RawTherapee 5.0

下载命令:

sudo apt-get remove rawtherapee

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn

Linux高级文本处理之gawk的使用-演道网

1.取出linux中eth0的IP地址

[root@localhost ~]# ifconfig eth0 |awk -F '[ :]+' 'NR==2 {print $4}'
192.168.1.8

说明: “+”为正则表达式模式匹配至少重复一次。

2.统计文件中所有行单词出现的次数

[root@localhost ~]# awk '
>{for(i=1;i<=NF;i++)
>{count[$i]++}}
>END{for(j in count)
>{print j,count[j]}}' /etc/init.d/functions

3.统计文件中每行的单词出现的次数

[root@localhost ~]# awk '
>{for(i=1;i<=NF;i++)
>{count[$i]++};
>for(j in count)
>print j,count[j];
>delete count}' /etc/init.d/functions

4.统计当前系统上所有tcp连接的各种状态数

[root@localhost ~]# ss -tan | awk '!/^State/{state[$1]++}END{for(i in state)print i,state[i]}'
ESTAB 1
LISTEN 4

5.统计制定的web访问日志中各ip的访问资源次数

[root@localhost ~]# awk '{ip[$1]++}END{for(i in ip) print i,ip[i]}' /var/log/httpd/access_log
192.168.1.101 3
192.168.1.6 297

6.Nginx日志分析

1)统计日志中访问最多的10个IP

思路:对第一列进行去重,并输出出现的次数

方法1:

$ awk '{a[$1]++}END{for(i in a)print a[i],i|"sort -k1 -nr|head -n10"}' access.log

方法2:

$ awk '{print $1}' access.log |sort |uniq -c |sort -k1 -nr |head -n10

说明:a[$1]++ 创建数组a,以第一列作为下标,使用运算符++作为数组元素,元素初始值为0。处理一个IP时,下标是IP,元素加1,处理第二个IP时,下标是IP,元素加1,如果这个IP已经存在,则元素再加1,也就是这个IP出现了两次,元素结果是2,以此类推。因此可以实现去重,统计出现次数。

2)统计日志中访问大于100次的IP

方法1:

$ awk '{a[$1]++}END{for(i in a){if(a[i]>100)print i,a[i]}}' access.log

方法2:

$ awk '{a[$1]++;if(a[$1]>100){b[$1]++}}END{for(i in b){print i,a[i]}}' access.log

说明:方法1是将结果保存a数组后,输出时判断符合要求的IP。方法2是将结果保存a数组时,并判断符合要求的IP放到b数组,最后打印b数组的IP。

3)统计2016年4月9日一天内访问最多的10个IP

思路:先过滤出这个时间段的日志,然后去重,统计出现次数

方法1:

$ awk '$4>="[9/Apr/2016:00:00:01" && $4<="[9/Apr/2016:23:59:59" {a[$1]++}\
END{for(i in a)print a[i],i|"sort -k1 -nr|head -n10"}' access.log

方法2:

$ sed -n '/\[9\/Apr\/2016:00:00:01/,/\[9\/Apr\/2016:23:59:59/p'\
access.log |sort |uniq -c |sort -k1 -nr |head -n10  #前提开始时间与结束时间日志中必须存在

4)统计当前时间前一分钟的访问数

思路:先获取当前时间前一分钟对应日志格式的时间,再匹配统计

$ date=$(date -d '-1 minute' +%d/%b/%Y:%H:%M);awk -vdate=$date '$0~date{c++}END{print c}' access.log

$ date=$(date -d '-1 minute' +%d/%b/%Y:%H:%M);awk -vdate=$date\ 
'$4>="["date":00" && $4<="["date":59"{c++}END{print c}' access.log

$ grep -c $(date -d '-1 minute' +%d/%b/%Y:%H:%M) access.log

说明:date +%d/%b/%Y:%H:%M --> 09/Apr/2016:01:55

5)统计访问最多的前10个页面($request)

$ awk '{a[$7]++}END{for(i in a)print a[i],i|"sort -k1 -nr|head -n10"}' access.log

6)统计每个URL访问内容的总大小($bodybytessent)

    $ awk '{a[$7]++;size[$7]+=$10}END{for(i in a)print a[i],size[i],i}' access.log

7)统计每个IP访问状态码数量($status)

    $ awk '{a[$1" "$9]++}END{for(i in a)print i,a[i]}' access.log

8)统计访问状态码为404的IP及出现次数

 

$ awk '{if($9~/404/)a[$1" "$9]++}END{for(i in a)print i,a[i]}' access.log

7.只处理用户ID为奇数的行,并打印用户名和ID号

    # awk -F: '{if($3%2 == 0) next;print $1,$3}' /etc/passwd

8.显示系统的普通用户,并打印用户及ID

# awk -F: '{if($3>=500)print $1,$3}' /etc/passwd

9.显示系统用户是“/bin/bash"的用户,并打印用户名

# awk -F: '{if($NF== "/bin/bash")print $1}' /etc/passwd

10.统计普通用户的个数

# awk -F: -v sum=0 '{if($3>=500) sum++}END{print sum}' /etc/passwd

11.统计文本的总行数

# awk 'END{print NR}' /etc/passwd

12.利用awk显示文件名

# awk 'END{print FILENAME}' /etc/fstab

13.格式化输出统计数据

# awk -F: '{printf "username= %s UID:%d\n",$1,$3}' /etc/passwd

14.只显示ID为1000的用户的相关信息

# awk -F: '$3=="1000" {print $0}' /etc/passwd
mageedu:x:1000:1000:mageedu:/home/mageedu:/bin/bash

# awk -F: '$3=="1000" {print $1,$3,$NF}' /etc/passwd
mageedu 1000 /bin/bash

15.查找“root”关键字的行

# awk '/[Rr]oot/' /etc/passwd

16.利用awk模拟tail -1 的效果

# awk 'END{ print }' /etc/passwd

17.打印一个表头,并且打印用户名和ID

# awk -F: 'BEGIN{print "Name\t\tID\n--------"} {print $1"\t\t"$3}' /etc/passwd

18.打印一个表头和表尾,并打印用户名,ID,及shell

# awk -F: 'BEGIN{print "username    ID    shell"}{printf "%-20s%-10s%-10s\n",$1,$3,$7}\
END{print "-----end of report-----"}' /etc/passwd

19.对文本中的字段进行字符个数统计

# awk '/^[[:space:]]*linux16/{i=1;while(i<=NF){print $i,length($i);i++}}' /etc/grub2.cfg

20.打印字符个数大于等于8的字段

# awk -F: '{i=1;while(i<=NF){if(length($i)>=8){print $i};i++}}' /etc/passwd

21.统计系统中shell的类型,并打印shell引用的次数

# awk -F: '$NF!~/^$/{BASH[$NF]++}END{for(A in BASH){printf "%15s:%i\n" ,A,BASH[A]}}' /etc/passwd

22.统计fstab文件中,各文件系统被引用的次数

# awk '/^UUID/{filesystem[$3]++}END{for (i in filesystem) {print i,filesystem[i]}}' /etc/fstab

23.统计正与系统建立连接的IP地址(ESTABLISHED),并统计建立连接的连接数量

# netstat -tn | awk '/^tcp\>/{split($5,ip,":");count[ip[1]]++}END{for(i in count)print i,count[i]}'
# netstat -tan | awk '{print $5}' | sort  -n | cut -d: -f1 | uniq -c | sort -n

24.将文本的重复行去掉

# awk '!a[$0]++' FILE      $ awk '{if($9~/404/)a[$1" "$9]++}END{for(i in a)print i,a[i]}' access.log

25.打印偶数行

$ seq 1 5 |awk '!(i=!i)'

$ seq 1 5 |awk 'NR%2==0'

26.打印奇数行

$ seq 1 5 |awk 'i=!i'

$ seq 1 5 |awk 'NR%2!=0'

27.打印九九乘法表

[root@localhost ~]# awk '
>BEGIN{for(n=0;n++<9;)
>{for(i=0;i++printf i"x"n"="i*n" ";print ""}}'
1x1=1 
1x2=2 2x2=4 
1x3=3 2x3=6 3x3=9 
1x4=4 2x4=8 3x4=12 4x4=16 
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

28.删除重复行

[root@localhost ~]# awk '!a[$0]++' num #!优先级高于++

29.找出两个文件相同的行

[root@localhost ~]# awk 'FNR==NR{a[$0];next}($0 in a)' num num1

转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn

Linux系统中root密码忘记了怎么办-演道网

在实际生产环境中root的密码应该要严格保存,如果忘记密码。当然一般情况下root的密码都有相应的备份,但是如果你的备份丢失,或者说客户忘记root的密码,并且无法正常的进入系统时,那么就要使用grub修改内核来改密码了。

首先在,你要在机房里在启动Linux时按任意键,进入grub选择菜单

在这里按“e”选择你系统中最新的内核(一般是有升级过内核的机器)

在这里的说明中说有5个按键:

b:进入boot

e:进入grub shell编辑界面

o:在光标所在行下增加一行

d:删除光标所在的行

c:进入grub shell的命令行交互界面

这里选择kernel直接按“e”进入grub shell的编辑界面输入single

回车保存,然后按“b”boot进入单用户维护模式,系统会以root权限给你一个无环境变量的shell

在里面执行passwd修改你的root密码,再reboot重启后使用新密码,不得不说在实际生产环境中必需要避免root密码忘记的情况,如果忘记将是一个比较严重的事件。

转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn

Linux sed命令的基本使用-演道网

sed(Stream Editor):流编辑器

一次只读取一行

模式空间

1、sed语法:

sed [option] “script” FILE…

2、选项:

-n:静默模式,不输出模式空间中的内容

-r:使用扩展的正则表达式

-f:/path/to/sed_script_file:指定sed脚本文件

-e ‘script’ -e ‘script’ :指定多个编辑脚本

-i:直接修改读取的文件内容,而不是输出到终端

3、编辑命令:

d:删除

p:打印

i \text:匹配内容上面增加text内容

a \text:匹配内容西面增加text内容

r /path/to/somefile:在制定位置把另外一个文件的内容插入进来

w /path/to/somefile:将符合条件的所有行保存至指定得文件中

= :显示符合条件行的行号

例如:# sed -n ‘/^UUID/=’ /etc/fstab

s///:查找条件可以使用模式,但要替换的内容不行

4、地址定界:

startline,endline:1,3

/pat1/,/pat2/

/pattern/

用法:

sed [options] ‘addr1[,addr2]编辑命令’ FILE …

sed [options] “addr1[,addr2]编辑命令” FILE …

5、正则表达式:

基本的:

字符:

    .

    []

    [^]

次数:

    *

    \?

    \{m,n\}

锚定:

    ^

    $

    \<,\b     \>,\b

分组:

    \(\)

引用:

    \1,\2,…

扩展:

字符:

    .

    []

    [[:lower:]],[[:punct:]],[[:alnum:]]

次数:

    *

    ?

    +

    {m,n}

锚定:

    ^

    $

    \>,\b

    \<,\b 或:     a|b 分组:     () 引用:     \1,\2,... sed '地址定界s@查找条件@替换文本@' 6、修饰符: g:global,全局替换 i:ignore-case,不区分字符大小写 7、例子: 1、将selinux的enforcing改成disabled # sed 's@^SELINUX=enforcing@SELINUX=disabled@g' /etc/selinux/config 2、删除/etc/init.d/functions文件中的空白行 # sed '/^$/d' /etc/init.d/functions 3、删除/etc/inittab文件中位于行首的#号 # sed 's@^#@@g' /etc/inittab 4、删除/etc/rc.d/rc.sysinit文件夹中以#后跟至少一个空白字符开头的行的行首的#和空白字符 # sed 's@^#[[:space:]]\{1,\}@@g' /etc/rc.d/rc.sysinit 5、删除/boot/grub/grub.conf文件中行首的空白字符 # sed 's@^[[:space:]]\{1,\}@@' /boot/grub/grub.conf 6、取出一个文件路径的目录名称 # echo /etc/sysconfig/network/ | sed 's@[^/]\{1,\}/\?$@@'

转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn

Ubuntu LTS 系统入门体会及工具软件集锦-演道网

Ubuntu LTS 系统学习体会和工具软件汇总 6.04 8.04 10.04 12.04 14.04 16.04

Ubuntu入门必备pdf英文版:

PDF文件可以到Linux公社资源站下载:

——————————————分割线——————————————

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2017年资料/1月/29日/Ubuntu LTS 系统入门体会及工具软件集锦/

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

——————————————分割线——————————————

最早接触Ubuntu是在10年前(6.04),之前用过Red HatFedora),Debian等,觉得Ubuntu如果需要长期使用的话,还是需要用LTS版本的。现在Ubuntu下软件仓库里的软件也越来越多了。

其实第一次用Ubuntu主要是觉得桌面绚丽啊,3D特效的效果不错(Compiz)。后来发现这款系统其他功能也挺好用的。很多机器人开源算法和软件(ROS)都是基于Linux系统开发的,Ubuntu可以直接用的也非常多,就一直用到现在。

Ubuntu和Linux学习可以在网上找到很多资料。如果你对Linux系统比较陌生,推荐看这个网址:

Unix和Linux操作系统的初学者指南。 八个简单的教程,涵盖UNIX / Linux命令的基础。

http://www.ee.surrey.ac.uk/Teaching/Unix/

下面推荐一些,非常常用的Ubuntu工具软件,主要针对版本(14.04和16.04)。

ubuntu-tweak:14.04可以直接下载deb包使用,16.04参考下面网址:

http://www.linuxidc.com/Linux/2017-01/140063.htm

已经不更新了。作为替代品可以用BleachBit。直接在Ubuntu软件中就可以下载到。


新立德软件包管理器:编译编码或者安装deb包时会有很多依赖库,用这个比较方便,之前都是系统自带的,现在需要自己安装,在终端输入:

  1. ~$ sudo apt-get install synaptic   
  2. [sudo] relaybotbox 的密码:   
  3. 正在读取软件包列表… 完成 
  4. 正在分析软件包的依赖关系树         
  5. 正在读取状态信息… 完成         
  6. synaptic 已经是最新版 (0.83)。 
  7. 升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。 
~$ sudo apt-get install synaptic 
[sudo] relaybotbox 的密码: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
synaptic 已经是最新版 (0.83)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。

目前0.83版。


文档办公类依据使用习惯还是WPS,使用还不错的。

网址:http://wps-community.org/

下载请安装a21和fonts:http://wps-community.org/downloads



浏览器火狐谷歌:其中flash播放问题如下:

火狐

  1. ~$ sudo apt-get install flashplugin-installer flashplugin-nonfree-extrasound   
  2. 正在读取软件包列表… 完成 
  3. 正在分析软件包的依赖关系树         
  4. 正在读取状态信息… 完成         
  5. flashplugin-nonfree-extrasound 已经是最新版 (0.0.svn2431-5ubuntu1)。 
  6. flashplugin-installer 已经是最新版 (11.2.202.637ubuntu0.16.04.1)。 
  7. 升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。 
~$ sudo apt-get install flashplugin-installer flashplugin-nonfree-extrasound 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
flashplugin-nonfree-extrasound 已经是最新版 (0.0.svn2431-5ubuntu1)。
flashplugin-installer 已经是最新版 (11.2.202.637ubuntu0.16.04.1)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。


谷歌

 

先更新components,然后在plugins启用,就ok了,如下:



flash版本23.0.0.185。

QQ之前有介绍可参考。

如果要使用windows程序,比较简单的就是安装wine(1.9),然后装一个配置工具方便使用,虚拟机也可以:

  1. ~$ sudo apt-get install winetricks   
  2. 正在读取软件包列表… 完成 
  3. 正在分析软件包的依赖关系树         
  4. 正在读取状态信息… 完成         
  5. winetricks 已经是最新版 (0.0+20141009+svn1208-2ubuntu1)。 
  6. 升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。 
~$ sudo apt-get install winetricks 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
winetricks 已经是最新版 (0.0+20141009+svn1208-2ubuntu1)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。

 

这样就可以打开部分exe,如prezi课件。


如果,需要使用Mac界面,使用Macbuntu,输入法自带的就挺好用的。

视频播放器推荐SMPlayer,直接在ubuntu软件中安装:



截屏录像Kazam


视频编辑OpenShot


图形处理:BlenderGIMPInkscape

开发工具:EclipseQT

51单片机仿真:MCU 51 IDE


机器人仿真:V-RepROSGazeboMRPT



Matlab


其他留待以后再补充吧。

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn

Ubuntu 16.04 安装Docker-演道网

记录下在Ubuntu 16.04 中安装Docker的过程。

1 更改apt源,更改前先对sources.list文件进行备分

linuxidc@linuxidc:~$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

修改sources.list文件

sudo gedit /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

更新apt源

linuxidc@linuxidc:~$ sudo apt-get update

2 安装Docker

linuxidc@linuxidc:~$ sudo apt-get install docker.io

 安装完成后,需要重启下系统。

sudo reboot

3 验证

linuxidc@linuxidc:~$ sudo docker info
Containers: 0
Images: 0
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 0
 Dirperm1 Supported: true
Execution Driver: native-0.2
Kernel Version: 4.4.0-22-generic
Operating System: Ubuntu 16.04 LTS (containerized)
CPUs: 4
Total Memory: 3.842 GiB
Name: linuxidc
ID: H6MK:VMBX:ARD3:R4GN:VMVW:WHPW:AM35:JYVZ:QVYV:2L4M:AWCQ:QOPJ
WARNING: No swap limit support
linuxidc@linuxidc:~$

更多Docker相关教程见以下内容

Docker安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm

Ubuntu 14.04安装Docker  http://www.linuxidc.com/linux/2014-08/105656.htm

Ubuntu使用VNC运行基于Docker的桌面系统  http://www.linuxidc.com/Linux/2015-08/121170.htm

阿里云CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm

Ubuntu 15.04下安装Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm

在Ubuntu Trusty 14.04 (LTS) (64-bit)安装Docker http://www.linuxidc.com/Linux/2014-10/108184.htm

在 Ubuntu 15.04 上如何安装Docker及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm

Ubuntu 16.04上Docker使用手记 http://www.linuxidc.com/Linux/2016-12/138490.htm

Docker 的详细介绍请点这里
Docker 的下载地址请点这里

转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn