当前位置:  建站>运营/SEO
本页文章导读:
    ▪Putty下实现可区分的显示动态Title标题窗口效果 [UbuntuSRV]      《 设置UbuntuSRV环境变量控制Putty窗口标题动态显示 》 2013-5-13                 嗷,卖葛! 这次完了~    关错服务器了,,,     &.........
    ▪一步步理解Linux之信号      一步步理解Linux之信号 作者:gaopenghigh ,转载请注明出处。 (原文地址) 信号的使用 信号的概念 信号是通知进程发生了某件事的技术。每个信号都有一个名字,这些名字都以”SIG.........
    ▪一种权限管理系统      一种权限管理系统 目录 1需求描述... 1 1.1 有一系列可扩展的权限... 1 1.2 针对权限有不同身份的管理员,拥有不同权限... 1 2 功能设定... 1 2.1 有一系列可扩展的权限配置文件,包括了权限定义名.........

[1]Putty下实现可区分的显示动态Title标题窗口效果 [UbuntuSRV]
    来源: 互联网  发布时间: 2013-10-27
《 设置UbuntuSRV环境变量控制Putty窗口标题动态显示 》 2013-5-13     

 

 

 

     嗷,卖葛! 这次完了~    关错服务器了,,,

 

          :(   经常会犯这样的错误,因为桌面上开着N多个Putty远程连接,它们都长成一个样子,一不小心就会弄错! 有什么好办法能让我更好地区分它们呢?

 

              下面给出好的解决方案

 

  (以下场景执行Putty工具,使用root用户远程登录,SSH主机是 Ubuntu Server ) 

 

● 使用不带任何参数的 cd 命令,进入到 ~ 目录下面

 

●  由于 Ubuntu Server 13 的 ~/ 下没有.bash_profile , 我们先用 touch .bash_profile 创建一个全新的

 

●  用 vi 编辑之,输入以下内容

 

---------------------------------------

# .bash_profile

 

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

       . ~/.bashrc

fi

 

# User specific environment and startupprograms

# PATH=$PATH:$HOME/bin

# export PATH

 

# add following statement to the END offile  ~/.bash_profile

# auto add env parameter $PROMPT_COMMANDwhen use non-Linux tty login by ssh.

 

if [ "$SSH_CONNECTION" != '' ]; then

     export HOSTIP=`echo $SSH_CONNECTION |awk '{print $3}' |awk -F: '{if ($1== "") print $4; else print $1}'`

     export PROMPT_COMMAND='echo -ne"\033]0;${USER}@'$HOSTIP':[${HOSTNAME%%.*}]:${PWD/#$HOME/~}  \007"'

     env |grep PROMPT_COMMAND

 

      # Set the DISPLAY env var for Xmanagerforward

     # export DISPLAY=`echo $SSH_CONNECTION |awk '{print $1}' |awk -F: '{if($1 == "") print $4; else print $1}'`:0.0

fi

---------------------------------------

 

 

● 上面的脚本第一二句会执行一些环境参数设置的脚本 ~/.bashrc,经研究,由于 Ubuntu 下的默认设置脚本某些参数会与我们想要的效果冲突,所以要编辑并屏蔽掉部分内容。

 

     用 vi 编辑 ~/.bashrc 将下面的两段代码给注释屏蔽掉(将第一行最前加注释符号 # )

 

 

---------------------------------------

第一段:

# set a fancy prompt (non-color, unless weknow we "want" color)

case "$TERM" in

   xterm-color) color_prompt=yes;;

esac

 

---- 注释后 -------

# case "$TERM" in

#   xterm-color) color_prompt=yes;;

# esac

 

 

第二段:

# If this is an xterm set the title touser@host:dir

case "$TERM" in

xterm*|rxvt*)

   PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"

   ;;

*)

   ;;

esac

 

---------------------------------------

   下面给出配置完毕后登录时自动显示相关信息的效果图


 

              enjoy !!     :) 


 

作者:temp77 发表于2013-5-13 13:37:20 原文链接
阅读:63 评论:0 查看评论

    
[2]一步步理解Linux之信号
    来源: 互联网  发布时间: 2013-10-27
一步步理解Linux之信号

作者:gaopenghigh ,转载请注明出处。 (原文地址)

信号的使用 信号的概念

信号是通知进程发生了某件事的技术。每个信号都有一个名字,这些名字都以”SIG”开头。 需要注意的是,SIGUSR1和SIGUSR2这两个信号是给用户自定义的,可用于应用程序。

对于信号,内核有三种处理方式:

  • 忽略。但有两种信号不能被忽略:SIGKILL和SIGSTOP,因为它们为超级用户提供了使进 程终止或停止的可靠方法。 * 捕捉信号。前提是要提前通知内核在某个信号发生时调用用户的某个函数。 * 执行系统默认动作。对大部分信号的默认动作是终止进程。
signal函数

signal函数是关于信号最基本的函数。

#include <signal.h>
void (*signal(int signo, void (*func)(int)))(int);

这个函数非常不直观,用正常一点的语言来说就是:

  • signal函数的返回指是一个函数地址,该函数没有返回值(void),并且需要一个int型 的参数。
  • signal函数需要两个参数,第一个参数是signo,整型,代表信号名;第二个参数是func ,这是一个函数地址,该函数没有返回值(void),且需要一个int型的参数。
  • 总的来说signal函数就是注册一个信号signo,当这个信号发生时,调用func函数去处理 ,同时signal函数返回注册之前该信号的处理程序的指针。

参数func可以是SIG_DFL,代表使用默认处理动作,还可以是SIG_IGN,代表忽略,当 然更可以是其他具体的处理函数,这个函数就叫做信号处理程序(signal handler) 或者信号捕捉程序(signal-catching function),此时处理动作就叫做捕捉。

从signal的定义来看,不改变进程对信号的处理方式,就不能知道进程原本对信号的处理 方式,稍后介绍的sigaction函数能解决这个问题。

信号相关的术语

信号产生(generation)后,内核会递送(delivery)这个信号给进程,在产生和递送的 这个时间间隔内,称信号是“未决的(pending)”。

进程可以选择对一些信号“阻塞”,当为进程产生了一个信号,且进程对该信号设置了阻塞 ,且进程对该信号的处理方式是默认或者捕捉,那么该进程就将该信号保持为未决 (pending)状态,直到阻塞被解除,或者进程对该信号的动作改为忽略。

如果进程对一个信号接触阻塞之前,该信号发生了多次,那么解除阻塞后,内核也只递送 这个信号一次。

每个进程都有一个“信号屏蔽字(signal mask),它规定了进程当前要阻塞的信号集。

kill和raise函数

kill发送信号给进程或进程组。 raise允许进程发送一个信号给自己。

#include <signal.h>
int kill(pid_t pid, int signo);
int raise(int signo);
/* 成功时返回0,出错返回-1 */
/* raise(signo) 等价于 kill(get_pid(), signo) */
/*
* 参数pid的4种不同情况:
* pid > 0     发送给pid进程
* pid == 0    发送给同一进程组的所有进程
* pid < 0     发送给进程组ID等于pid绝对值的所有进程
* pid == -1   发送给有权限发送的所有进程
*/
alarm和pause函数

alarm函数用来设置一个定时器,定时器超时后会产生一个SIGALRM信号,对该信号的默认 处理方式是终结进程。

#include <signal.h>
unsigned int alarm(unsigned int secondes);
/* 返回值:0或者以前设置的闹钟时间的余留秒树 */

如果在调用alarm时,以前也设置过一个闹钟且该闹钟还没有超时,那么该闹钟的余留时间 将作为这次alarm调用的返回值,以前登记的闹钟也会被新的闹钟所代替。

pause函数使调用进程挂起,直到接收到一个信号。

#include <unistd.h>
int pause(void);
/* 返回-1,并将errno设置为EINTR */
信号集

数据类型sigset_t表示一个信集,有下面几个处理信号集的函数:

#include<signal.h>
int sigemptyset(sigset_t *set); /* 清空信号集 */
int sigfillset(sigset_t *set);  /* 填满信号集,使其包含每一个可能的信号 */
int sigaddset(sigset_t *set, int signo);
int sigdelset(sigset_t *set, int signo);
int sigismember(const sigset_t *set, int signo);
sigprocmask和sigpending函数

进程有一个信号屏蔽字,它规定了当前阻塞哪些进程。调用sigprocmask函数可以检查和 更改进程的信号屏蔽字:

#include <signal.h>
int sigprocmask(i      
    
[3]一种权限管理系统
    来源: 互联网  发布时间: 2013-10-27

一种权限管理系统

目录

1需求描述... 1

1.1 有一系列可扩展的权限... 1

1.2 针对权限有不同身份的管理员,拥有不同权限... 1

2 功能设定... 1

2.1 有一系列可扩展的权限配置文件,包括了权限定义名,和权限数字... 1

2.2 针对权限有不同权限的管理员身份定义,拥有不同权限... 2

2.3 每个人 拥有不同的身份从而拥有不同权限... 2

 

 

1需求描述 1.1 有一系列可扩展的权限

 

1.2 针对权限有不同身份的管理员,拥有不同权限 2 功能设定 2.1 有一可扩展的权限配置文件,包括了权限定义名,和权限含义(基础权限数组)

形如

Array(

“p_user_edit”  => “用户编辑”,

“p_data1_edit”  => “数据1编辑”,

“p_data2_edit”  => “数据2编辑”,

 

);

2.2 针对权限有不同权限的管理员身份定义,拥有不同权限

例如

系统管理员

Array(

“p_user_edit”  => 1,

“p_data1_edit”  => 1,

“p_data2_edit”  => 1,  

);

其中,可以是  0:无编辑权限  1:有编辑权限

 

 2.3 每个人 拥有不同的身份从而拥有不同权限

 User表,定义用户的基础信息

 

 User_privilege定义 用户id和身份id的关联

 

3数据库结构 3.1 user表

id

name

email

 

3.2  privilege表                      

id

name

auth

description

 

 

3.3 user_privilege 表


id

user_id

privilege_id

 

3 功能实现 3.1 添加权限身份

 1)将基础权限展开成可选框

2)填写权限身份名

3)填写权限身份描述

4)将选择的基础权限名对应的值提交

5)将得到的权限数组json编码后入库

 

3.2 添加用户及身份

 1)填写用户名

2)填写用户邮件

3)选择身份id                                                                              

4)提交数据

5)生成用户id,关联到身份id

 

 

作者:zzz_781111 发表于2013-5-13 17:02:23 原文链接
阅读:53 评论:0 查看评论

    
最新技术文章:
▪SQVI和SAP查询QUERY的区别和使用注意事项    ▪彻底理解Cisco/Linux/Windows的IP路由    ▪Exchange 2010 处于禁止发送用户自动收到来自IT...
▪MB_CHANGE_DOCUMENT使用方法    ▪ALV的html表头    ▪【译】如何精确判断最终用户响应时间过长的...
▪apache2.4.4启用deflate压缩    ▪使用vmware 配置centos 6.0+ 网络出现的各种问题...    ▪十句话教你学会Linux数据流重定向
▪centos6.x已经安装的系统添加图形界面    ▪Linux查看CPU和内存使用情况    ▪win7问题解决,凭据管理器和无法访问,不允...
▪Dynamics CRM 2013 初体验(4):不再被支持的功...    ▪win7下制作ubuntu系统安装启动盘和U盘安装ubuntu...    ▪Linux cp -a用法
▪Windows Server时间服务器配置方法    ▪Tomcat+memcached实现Session共享    ▪Linux修改系统环境变量PATH路径的方法
▪Citrix 服务器虚拟化之二十七 XenApp6.5发布服务...    ▪搭建本地Ubuntu 镜像服务器    ▪Create local metadata resource of yum
▪tsm ANS0326E问题处理    ▪Windows SVN变化邮件通知(Python2.7实现)    ▪linux下的内核测试工具——perf使用简介
▪Nginx TCP Proxy模块的编译安装    ▪OSX: SSH密钥使用日记(2)    ▪OSX: SSH密钥使用日记(1)
▪Manually start and stop Oracle XE in Ubuntu    ▪Disable autostart of Oracle-xe in Ubuntu    ▪tar命令-linux
▪xtrabackup-2.1.2-611安装    ▪无废话ubuntu 13.4文件共享配置    ▪Unix文本处理工具之sed
▪hpux 操作系统 磁带备份与恢复    ▪HP DL360 G7通过iLO部署系统    ▪Redhat 6.0中VNC Server的配置方法
▪hpux 操作系统磁带备份与恢复    ▪用C++编程调用libvirt的API来创建KVM虚拟机    ▪hpux- hp小型机日常硬件故障处理case(一)
▪web集群时session同步的几种方法(统计)    ▪inux常用命令大全    ▪BAT 批处理实现循环备份N天文件夹
▪BIND9私有DNS服务器小环境搭建实验    ▪Exchange2013增量备份    ▪OSSEC Monitor your App log file
▪《深入理解Nginx》阅读与实践(三):使用upstre...    ▪如何给Fedora 15创建磁盘分区    ▪Packet Sniffer Code in C using sockets
▪Error, some other host already uses address    ▪修改uCOS_II以实现“优先级+时间片”联合调度    ▪weblogic开发模式与生产模式介绍
▪Wireshark 高级特性    ▪ubuntu13.04版本下安装RabbitVCS,类似windows的Tortoi...    ▪Apache 一台主机绑定多个域名及虚拟主机
▪linux安全设置    ▪RHEL双网卡绑定    ▪Linux shell if参数
▪Windows配置路由时可以指定源地址啦    ▪centos安装vim7.4    ▪S3C2410 实验三——块拷贝、字拷贝(寄存器的...
▪系统运维——日志处理    ▪ip_conntrack缓存neighbour    ▪关键在封装并发出了帧-IP冲突也无所谓
▪weblogic11g 安装——linux 无图形界面    ▪《数据通信与网络》笔记--SCTP    ▪《数据通信与网络》笔记--TCP中的拥塞控制
▪weblogic11g 安装集群 —— win2003 系统、单台主...    ▪weblogic11g 节点管理器 nodemanager    ▪Citrix 服务器虚拟化之二十六 应用程序虚拟化...
▪如何将windows下的文件夹挂载到linux虚拟机下    ▪在64位AIX6.1下安装SAP JCo    ▪Outlook启动时提示“找不到文件Outlook.pst文件”...
▪weblogic8.1 登陆5 ip 限制    ▪weblogic 内存 及 内存溢出    ▪手把手教你在Windows端搭建Redmine项目管理软件
▪启动及重新启动nginx,重启nginx后丢失nginx.pid问...    ▪Win7实现快速启动栏并实现靠左边的终极操作...    ▪《深入理解Nginx》阅读与实践(二):配置项...
▪Windows Server时间服务器配置方法    ▪Tomcat+memcached实现Session共享    ▪Linux修改系统环境变量PATH路径的方法 iis7站长之家
▪centOS安装chrome浏览器    ▪Slackware 14 安装完全指南    ▪SharePoint 2013的100个新功能之内容管理(三)
▪Citrix 服务器虚拟化之二十一 桌面虚拟化之部...    ▪[问,ask]ubuntu13.04安装vncserver后只显示桌面,不显...    ▪Win7中IIS出现“HTTP 错误 404.17 - Not Found 请求的...
▪CentOS快速安装最新版本的SaltStack    ▪CentOS 6.4 快速安装Nginx笔记    ▪磁盘管理——RAID 0
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3