3月 16

命令行中复制移动时显示进度条

“世间最痛苦的事莫过于等待”,相信使用过Shell中cp或者mv命令操作大文件的朋友们都有这种感慨。要是能显示复制或者移动的进度,把无尽的等待变成有限的期待,那该多好呀!其实,确实有显示进度条的方法,而且方法还不止一种:

1
2
3
4
5
6
7
8
9
10
11
12
13
wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.4.tar.gz
tar xvzf coreutils-8.4.tar.gz
cd coreutils-8.4/
wget http://beatex.org/web/advcopy/advcpmv-0.3-8.4.patch
patch -p1 -i advcpmv-0.3-8.4.patch
./configure
make
sudo cp src/cp /usr/local/bin/cpg
sudo cp src/mv /usr/local/bin/mvg
 
#vim ~/.bashrc
alias cpg="/usr/local/bin/cpg -g"
alias mvg="/usr/local/bin/mvg -g"

PS: An update is scheduled to be released in just three weeks, on March 24, 2012
Continue reading

3月 08

[转]Linux Shell学习与实践系列

Linux Today上有一系列Linux Shell学习与实践短文,现汇总如下。
此主题的内容仍在继续更新中,有兴趣的朋友可以持续关注Linux Today。

  • Linux Shell学习系列

linux crontab应用和实例
linux命令基础:文件和目录的操作命令
yum常用命令介绍和yum源下载
Linux命令基础:用户、组管理命令
Bash shell的十个技巧提升linux操作效率
linux系统的命令使用规范
文件显示命令:cat、more、less、tail、touch详解
Shell的使用简述
改变文件或目录存取权限命令: chown,chmod,umask
联机帮助命令:man、help
有关进程管理的命令:ps、kill、sleep
linux中用date命令获取昨天、明天或多天前后的日期
较完整的Bash快捷键,让命令更有效率
linux shell 脚本中”2>&1″的含义解释
Linux常用命令大全速查备忘
Linux sed 批量替换字符串和更多用法
Linux下2种定时执行任务方法
Linux Shell 脚本编程速查笔记<上>
Linux Shell 脚本编程速查笔记<下>
Linux Shell 编程常用技巧、实例(一)
Linux Shell 编程常用技巧、实例(二)
Linux Shell 编程常用技巧、实例(四)
Linux Shell 常用命令总结
Continue reading

11月 29

shell中的bash与dash

Linux中的shell有多种类型,其中最常用的几种是Bourne   shell(sh)、C   shell(csh)和Korn   shell(ksh)。三种shell各有优缺点。Bourne   shell是UNIX最初使用的shell,并且在每种UNIX上都可以使用。Bourne   shell在shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell。Linux操作系统缺省的shell是Bourne   Again   shell,它是Bourne   shell的扩展,简称Bash,与Bourne   shell完全向后兼容,并且在Bourne   shell的基础上增加、增强了很多特性。Bash放在/bin/bash中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,它还包含 了很多C   shell和Korn   shell中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。……【阅读全文】

11月 29

在Shell脚本中显示进度条

注意:如果你使用的是Ubuntu,第一行中的程序路径一定要写/bin/bash而不是/bin/sh;其他版本的两者皆可,因为/bin/sh只是/bin/bash的一个软链接;在Ubuntu中/bin/sh是/bin/dash的软链接。

  • 方法一

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    #!/bin/bash
     
    b=''
    for ((i=0;$i<=100;i+=2))
    do
           printf "progress:[%-50s]%d%%r" $b $i
           sleep 0.1
           b=#$b
    done
    echo

    Continue reading