shell

There are 4 entries for the tag shell

Linux下高效编写Shell——shell特殊字符汇总

MitchellChu 2014-06-02 Unix & Linux 编程语言

Linux下无论如何都是要用到shell命令的,在Shell的实际使用中,有编程经验的很容易上手,但稍微有难度的是shell里面的那些个符号,各种特殊的符号在我们编写Shell脚本的时候如果能够用的好,往往能给我们起到事半功倍的效果,为此,特地将Shell里面的一些符号说明罗列成对照表的形式,以便快速的查找。看看你知道下表中哦你的哪些Shell符号呢? Shell符号及各种解释对照表: Shell符号 使用方法及说明 # 注释符号(Hashmark[Comments]) ...

Linux下如何批量建立文件软连接(极简版)

MitchellChu 2014-05-21 Unix & Linux

在上一篇里面是通过创建了Shell脚本文件的方式来批量创建文件的软链接,由于Shell脚本处在(Linux)菜鸟阶段,那个脚本文件的编写完全是现学现卖——Shell语法都没看完,这我会告诉你吗,告诉你会信吗?所以引出的一个问题是:此脚本虽然能正确处理任务但肯定还有很多地方的处理值得商榷。为此也花了一些时间思考了一下如何不要使用shell脚本文件来处理批量建立软链接的问题,后来确有一些思路,在上篇成文之时已经有了一些方法,所以当时卖了一个关子。 要一行脚本代码来建立批量的文件软链,Mitchell的思路主要在通道的使用上,我希望能够这样: ## 代码是示意,并不能正常运行 ls /tmp/*.log | ln -s ..... 但在Linux下这个通道我并没有知道合适的传递参数的方法。只能告一个段落。换种思路,就是将文件列表用for循环来处理。于是,有了下面的脚本: ## 获取目录下要软链接的文件,让后用for遍历文件来创建软链接。 FILES=`ls *.log`;for FILE in $FILES;do ln -s '/tmp/'$FILE '/tmp/lnk_'$FILE;done 但这个只能放到目标目录下,这是/tmp目录,然后运行,因为FILE遍历出来不能含有路径。为了改善这个缺点,做了改进: ## 使用basename来将路径过滤掉,只取文件名称 FILES=`ls /tmp/*.log`;for FILE in $FILES;do ln -s $FILE '/tmp/lnk_'`basename $FILE`;done 后来发现,此处还可以继续改进,在Linux下你可以这样: ## create all files' soft link in '/tmp/' which subfix is log, and all link files' save to /tmp/ with prefix 'lnk_' for FILE in /tmp/*.log;do ln -s $FILE '/tmp/lnk_'`basename $FILE`;done  这样就可以在任意位置下运行这个代码,只要修改目标路径和存放链接的路径即可。  很酷吧,这样就可以实现上一篇的那么东西。来吧,看看更酷的,回到前面的通道,我们虽然没有办法直接将数据直接传递给ln,但是我们可以这样批量建立软链接: ## Create a batch of soft-link files with pipeline ls /tmp/*.log | xargs -L 1 -i sh -c "ln -s {} '/tmp/lnk_'\$(basename {})"  哇噢~ 原来通道也可以这么来做,当然,Mitchell对Linux的命令还不是很了解,但我相信肯定可以在这个基础上,再精简出更酷的代码的。 恩,看了上面两种方法,是不是瞬间觉得好有难度——恭喜,Same as me。搞这个软链接,需要这么消耗脑细胞吗。记得原来的cp好像有个参数是创建连接的,于是,翻看了cp的命令帮助,加之网络搜索大神附身,不多久,出来了cp版: ## create a batch of soft-link files with cp command. ## this command can not create soft-link file with prefix or subfix ## so...

Linux下如何用Shell脚本批量创建文件软链接

MitchellChu 2014-05-21 Unix & Linux

这篇是个人Shell脚本的初作,功能是批量创建文件的软链接。文中值得商榷之处肯定非常多,欢迎大家指点。 —— MitchellChu 最近在Linux,具体说是CentOS (v 6)下,因为自定义安装的软件太多,而自定义安装之后,由于系统的PATH中没有安装软件的路径,每次都需要将安装后的软件可执行文件在PATH里面有的bin目录下创建软链接,以此来达到直接可以调用的目的。一个文件两个文件也许还好,可有的软件需要弄出个一大堆的文件要软链接,在Shell下一个一个命令的敲,确实不是一个事情。也正因此,才有了此篇博文——Linux下用Shell脚本来批量创建文件的软链接。 要批量创建文件的软链接,自然要想想下我的shell脚本应该是能够提供什么样功能的(需求):由于初期没有什么特别要求,只要批量创建软链接即可,但创建软链接是使用ln -s target_file link_file的格式来的,所以,1. shell脚本要可以接收到这两个关键因素!2.如果仅仅是接受这两个参数,就没有批量创建软链接一说了,因此,还应该有个文件过滤器,能够将需要批量创建的文件筛选出来。 需求明确成:shell脚本能够过滤出需要创建软链接的文件,并通过ln命令在目标目录中批量创建软链接文件。 根据这个需求,捣鼓了一下,弄出了BatchLinkFilesCreater.sh: #!/bin/sh ######################## ## ARGUMENTS: ## TARGET_DIR: the directory where the link file to link. ## FILES_FILTER: this is the arguments of the ls command. ## LINK_DIR: where is the link file to save. ######################## function usagehelp() { echo -e "Usage:batchCreateLink.sh -t TARGET_DIR -f FILES-FILTER -l LINK-DIR\n\n TARGET_DIR: the directory where the link file to link\n\n FILES_FILTER: arguments of ls command, to filter the list...

终端上常用的及一些高级Shell命令汇总

MitchellChu 2014-05-09 Unix & Linux

在Linux下不像Windows下这样是鼠标的天下,Linux主要的使用键盘啊亲,Shell命令的重要性自然不言而喻,然而Linux系统那么多的Shell命令,有些让人应接不暇,这种情况下,就只能记住一些常用的,有用的命令了 —— 本文记录就是这样一些Shell命令。 System运行中的kernel和system信息 uname -a ## 获取kernel版本(和BSD版本) lsb_release -a ## 打印本系统发行版的所有信息,比如发行版的ID,描述信息,具体版本,代号。LSB (Linux Standard Base) cat /etc/debian_version ## 获取Debian 版本,Ubuntu:/etc/DISTR-release, DISTR= lsb。通用/etc/issue。 uptime ## 显示系统已经运行(加载)的时间 hostname ## 系统的主机名 hostname -i ## 显示本地主机的IP地址 man hier ## 描述文件系统的层次结构 last reboot ## 显示系统重启的历史记录 硬件信息Kernel检测到的硬件 dmesg ##检测到的硬件和启动信息 lsdev ## 已经安装的硬件信息 dd if=/dev/mem bs=1k skip=768 count=256 2>/dev/null | strings -n 8 ## 读取 BIOS cat /proc/cpuinfo ## CPU model cat /proc/meminfo ## 硬件中内存的信息 grep MemTotal /proc/meminfo ## 显示系统的物理内存 watch -n1 'cat /proc/interrupts' ## 连续动态监测中断状态 free -m ## 已经使用和空闲内存(m=MB) cat /proc/devices ## 已配置的设备 lspci -tv ## PCI设备 lsusb -tv ## USB设备 lshal ## 显示所有设备的属性清单 dmidecode ## DMI/SMBIOS: 来自BIOS的硬件信息 Load, statistics 和 messages下面的命令在找出运行于系统上的程序信息非常有用. top ## 动态显示cpu进程信息 mpstat 1 ## 进程的相关统计信息 vmstat 2 ## 虚拟内存统计信息 iostat 2 ## I/O统计信息 (2s间隔) systat -vmstat 1 ## BSD系统统计汇总 (1s) systat -tcp...

关于博主

  一枚成分复杂的网络IT分子,属于互联网行业分类中的杂牌军。