Showing posts with label shell. Show all posts
Showing posts with label shell. Show all posts

Friday, September 16, 2011

批量修改文件目录权限 bash chmod

/usr/share/vim/vimfiles/doc/Untitled.html
 1 我有一些在NTFS分区复制的文件,文件层次和数量都非常多;因为普通文件它都带执行权限属性,我现在想改变一下权限。
 2 要求就是:
 3 1、将当前目录中的所有“子目录”的权限设置为755;
 4 2、将当前目录中的所有“文件”的权限设置为644。
 5 
 6 谢谢。
 7 
 8 已经解决。方案:
 9 chmod 644 -R *
10 chmod 755 `find -type d`
11 
12 用find彻底些
13 find /path -type f -exec chmod 644 {} \;
14 find /path -type d -exec chmod 755 {} \;
15 
16 假设我们要把所在目录下的所有目录的权限递归设置为755,我们可以这样写(两条语句的功能一样的):
17 1、 find -type d -exec chmod 755 {} \;    (这句的句末有分号)
18 2、 find -type d|xargs chmod 755
19 假如我们要把所在目录下的所有文件权限递归地改成644:
20 1、 find -not -type d -exec chmod 644 {} \;
21 2、 find -not -type d|xargs chmod 644

autoreboot my tp-link router 320g+

~/myworksource/routerautorestart/autorebootrouter.html
 1 自动重启我的路由器,家里的无线路由是tp-link 320G+,当开机时间过长的话就会断网
 2 
 3 于是就想让它过一定的时间自动重启.
 4 
 5 思路很简单:就是用python的urllib库获取网页然后提交特定的命令就可以了
 6 
 7 于是就上网搜索了搜索,找到了如下的代码.
 8 
 9 使用python的示例如下
10 
11 import urllib
12 
13 print urllib.urlopen("http://admin:admin @ 192.168.1.1 /userRpm/MenuRpm.htm?MainID=0&SubID=0 ").read()
14 
15 可是对html一点基础也没有,只有上网继续搜索了,在cpyug的邮件列表里找到2个比较
16 实用的例子
17 
18 1. 使用python的
19 site_root = 'http://192.168.1.1'
20 username = 'admin'
21 password = '123456'
22 
23 passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
24 passman.add_password(None, site_root, username, password)
25 
26 authhandler = urllib2.HTTPBasicAuthHandler(passman)
27 
28 opener = urllib2.build_opener(authhandler)
29 
30 urllib2.install_opener(opener)
31 
32 pagehandle = urllib2.urlopen(site_root)
33 
34 2,使用 wget的
35 
36 wget --http-use=admin --http-password=admin http://192.168.1.1/userRpm/SysRebootRpm.htm?Reboot=重启路由器 -O /dev/null
37 
38 这个好用,不用写python了直接使用shell就可以完成任务了,然后自己做个crontab,
39 让它定时执行就ok
40 
41 完整的代码如下
42 
43 #!/bin/bash
44 
45 wget --http-use=admin --http-password=admin http://192.168.1.1/userRpm/SysRebootRpm.htm?Reboot=重启路由器 -O /dev/null

Thursday, September 15, 2011

[转载] 终端软件的选择:rxvt-unicode

原文地址:http://forum.ubuntu.org.cn/viewtopic.php?t=66302&highlight=rxvt-unicode

为什么是rxvt-uicode

终端软件有很多,gnome有gnome terminal,kde有konsole,还有xfce-terminal,xterm,rxvt, aterm, eterm等等,这里我选择的是rxvt-unicode。主要因为我们所需要的终端,需要具有以下的特性:
  • 快速(rxvt-unicode基于rxvt,rxvt基于xterm,xterm的快速是毋庸置疑的);
  • 支持utf8,否则不能正确显示简体和繁体中文(从rxvt-unicode的名字就可以看出来了);
  • 易配置,更换系统时只需要保留配置文件就能恢复(rxvt-unicode配置可以写在~/.Xdefaults或者~/.Xresources中);
  • 支持透明,因为我们需要eyecandy来防止审美疲劳(rxvt-unicode不光支持伪透明,也可以做到真透明,不过我没有试过)。

符合上面条件的,以我所知,就只有rxvt-unicode(如果我错了请纠正我)。除了这些特性,rxvt-unicode还具有以下特性:
  • 可以以server/client模式启动,更加节省系统资源(urxvtcd);
  • 显示彩色man page。


rxvt-unicode的配置

代码:
Xft.dpi:96
!! RXVT-unicode setting
URxvt.geometry:             80x36+80+80
URxvt.background:           black
URxvt.foreground:           white
URxvt.scrollBar:            False
URxvt.scrollstyle:          next
! Use shift+pageup/down to scroll in screen
URxvt.secondaryScroll:  True
!set the artificial transparency of the v.t.
URxvt.inheritPixmap:        True
URxvt.tintColor:            grey
URxvt.shading:              500
URxvt.saveLines:            1500
URxvt.preeditType:          Root
URxvt.borderLess:           False
URxvt.title:                roylez's urxvt
!italicFont and boldItalicFont undefined
URxvt.font:-*-fixed-medium-r-*-*-15-*-*-*-*-*-*-*,\
xft:wenquanyi bitmap song:medium:pixelsize=15:antialias=False
URxvt.boldFont:-*-fixed-bold-r-*-*-15-*-*-*-*-*-*-*,\
xft:wenquanyi bitmap song:bold:pixelsize=15:antialias=False
!URxvt.font:xft:terminus:medium:size=13:antialias=false,\
!xft:wenquanyi bitmap song:medium:pixelsize=13:antialias=False

!redefine color to use tango theme in vim
!Black
URxvt.color0:           #000000
URxvt.color8:           #555753
!Red
URxvt.color1:           #CC0000
URxvt.color9:           #EF2929
!Green
URxvt.color2:           #4E9A06
URxvt.color10:          #8AE234
!Yellow
URxvt.color3:           #C4A000
URxvt.color11:          #FCE94F
!Blue
URxvt.color4:           #3465A4
URxvt.color12:          #729FCF
!Magenta
URxvt.color5:           #75507B
URxvt.color13:          #AD7FA8
!Cyan
URxvt.color6:           #06989A
URxvt.color14:          #34E2E2
!White
URxvt.color7:           #D3D7CF
URxvt.color15:          #EEEEEC


这个配置中有几个地方需要说明一下。

1 字体配置。

字体使用了fixed和文泉驿的组合,两个都是点阵字体。使用点阵字体的好处首先是快,然后就是够sharp。Truetype字体在大字号确实比较好看,但是在终端显示方面,效果明显不如点阵来得美观。

可 惜的是,适合中文的点阵字体实在不多。有个unifont ,不过我没有尝试过。文泉驿是个不错的选择,简体繁体都不错,可惜没有楷体和斜体,所以我没有定义Urxvt.italicFont。但是文泉驿的英文字 型不适合终端显示,扩展ascii的字符部分尤其差,所以一定要搭配一个合适的英文字型。这里我用的是misc-fixed,如果你愿意用更小的字型,你 可以尝试terminus。

图片

2 颜色配置。

可以看出,我把rxvt里面的颜色重新定义了,定义成了tango风格配色,在vim中搭配tango.vim,可以达到很好的效果。tango.vim可以在这里下载。这是我对tango.vim进行了小小修改之后的效果。

图片

Shell配置


shell的选择

我的选择是zsh,因为它的补全功能很贴心,而且我特别喜欢它的walters提示符。如果用bash,bash_completion是一定要装的。

定义更多的ls颜色

大家也许注意到了,ls有颜色显示,是因为有这样一个alias的存在的缘故
代码:
alias ls='ls --color=auto -X'


我喜欢把自己常用的文件种类都加上颜色,怎么做呢?首先,把默认的颜色配置输出为.lscolor
代码:
dircolors -p ~/.lscolor


然后,在.bashrc/.zshrc里面ls的alias前面加上这么一句,以后需要添加新的文件种类,编辑.lscolor就是了。
代码:
eval '`dircolors -b $HOME/.lscolor`'


有用的alias

在.bashrc或者.zshrc里面加入下列alias,可以实现彩色grep,df/du的时候用K/M显示大小,用del命令把文件删除到gnome回收站。用smth上newsmth.org,用hkday上hkday.net,而且发帖不会乱码。
代码:
alias grep='grep --color=always'
alias less='less -R'
alias df='df -Th'
alias du='du -h'
del() {mv -vi -- $* ~/.Trash}
alias smth='luit -encoding gbk -- telnet newsmth.org'
alias hkday='luit -encoding big5 -- telnet hkday.net'

图片

必不可少的screen


什么是screen

screen 这个名字老实说起得很有误导作用,它代表的是一个叫做gnu screen的软件。这个软件的主要作用说简单了,就是给你的终端添加tab的功能。也许你会问,为什么不用gnome- terminal/console/mlterm之类本身就有tab功能的终端呢?为什么不用fluxbox的标题栏tab功能呢?原因很简单,在ssh 或者telnet远程登录的时候,能够让你还能使用tab的,只有screen!
图片

screen的配置
代码:
# 这是配置那个tab bar
hardstatus alwayslastline
hardstatus string '%{=b}%{b}%-w%{.BW}%10>[%n %t]%{-}%+w%< %=%{G}%C%A, %Y-%m-%d'

termcapinfo xterm|rxvt ti@:te@

# screen里面的所有进程退出,screen就自动退出
autodetach on               # default: on

# 退出vim/nano之后自动刷新屏幕
altscreen on

# 启动等待,显示版本
msgwait 2
version
# 启动信息
startup_message off # default: on

# 启用beep报错
vbell off

# 默认的shell,不设置的话就是bash
shell zsh

##    Keybindings    ##

# F10改标题
bindkey -k k; title
# F11左边的tab
bindkey -k F1 prev
# F12右边的tab
bindkey -k F2 next


我没有给开新的tab(screen)一个快捷键,因为我觉得无论是敲screen还是ctrl+a
ctrl+c都不是很麻烦。

换个encoding上bbs

screen 可以动态更改encoding,比如想上繁体bbs,只需要依此敲入ctrl+a :encoding big5,然后telnet到你想要上的bbs就行啦。再次看出文泉驿的好处,繁体字都能显示^_^。当然,这样上bbs不如用luit的alias来得 方便。
图片

给特定程序绑个tab

如果你经常用mutt/irssi,或者上某个bbs,可以在screenrc里面加这样几句
代码:
bind 'm' screen -t email mutt
bind 'i' screen -t chat irssi
bind 's' screen -t smth luit -encoding gbk -- telnet newsmth.org


不过我更加倾向于直接在bashrc/zshrc里面用alias
代码:
alias mutt='screen -t email mutt'


代码:
_______________________
< 是不是应该给点掌声? >
-----------------------
        \   ^__^
          \ (oo)\_______
            (__)\          )\/\
                  ||----w |
                  ||        ||