当前位置: 首页 > news >正文

使用 UNIX 的 10 个良好习惯

原文地址:http://hi.baidu.com/xolee/blog/item/54f823ee3ec71ae8b3fb9549.html

The Linux Cookbook 一书的作者 Michael Stutz 凭借自己多年使用 UNIX 的经验,总结了 10 个良好习惯,个人认为真的很受用,现摘要如下与大家分享。

 

1. 建立层级目录:使用 mkdir 的 -p 选项,如 mkdir -p tmp/a/b/c。
2. 解包到指定的目录:使用 tar 的 -C 选项,如 tar xvf newarc.tar.gz -C tmp/a/b/c。
3. 联合命令:使用 ;、&&、|| 等控制运算符,如 cd tmp/a/b/c && tar xvf ~/archive.tar。
4. 小心使用变量:把变量放到 “” 中,如

~ $ ls tmp/
a b
~ $ VAR="tmp/*"
~ $ echo $VAR
tmp/a tmp/b
~ $ echo "$VAR"
tmp/*
~ $ echo $VARa 
~ $ echo "$VARa"

~ $ echo "${VAR}a"
tmp/*a
~ $ echo ${VAR}a
tmp/a
~ $


5. 长命令的输入:使用 \ 分行折断,如

~ $ cd tmp/a/b/c || \
> mkdir -p tmp/a/b/c && \
> tar xvf -C tmp/a/b/c ~/archive.tar

6. 分组命令:使用 ()、{} 来分组命令,如

~ $ ( cd tmp/a/b/c/ || mkdir -p tmp/a/b/c && \
> VAR=$PWD; cd ~; tar xvf -C $VAR archive.tar ) \
> | mailx admin -S "Archive contents"

7. 使用 xargs:可以过滤输出,如

~/tmp $ ls -l | xargs
-rw-r--r-- 7 joe joe 12043 Jan 27 20:36 December_Report.pdf -rw-r--r-- 1 \
root root 238 Dec 03 08:19 README drwxr-xr-x 38 joe joe 354082 Nov 02 \
16:07 a -rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar -rwxr-xr-x 1 \
joe joe 3239 Sep 30 12:40 mkdirhier.sh
~/tmp $

8. 使用 grep 的 -c 选项可以计算输出的行数,它比使用管道的 wc -l 更快,如

~ $ time grep and tmp/a/longfile.txt | wc -l
2811 
real 0m0.097s
user 0m0.006s
sys 0m0.032s
~ $ time grep -c and tmp/a/longfile.txt
2811

real 0m0.013s
user 0m0.006s
sys 0m0.005s
~ $


9. 匹配输出的字段:使用 awk,如

~/tmp $ ls -l | awk '$6 == "Dec"'
-rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar
-rw-r--r-- 1 root root 238 Dec 03 08:19 README
~/tmp $


10. 停用 cat 的管道输出:可用 grep 代替,如

~ $ time cat tmp/a/longfile.txt | grep and
2811 
real 0m0.015s
user 0m0.003s
sys 0m0.013s
~ $ time grep and tmp/a/longfile.txt
2811

real 0m0.010s
user 0m0.006s
sys 0m0.004s
~ $

 

相关文章:

  • vmstat参数说明
  • KDE致力于发展Wayland和Frameworks 5.0
  • about jni
  • poj1978
  • 从高朋裁员说起——山寨,不是创新的“中国模式”
  • linux系统下查看硬件信息
  • 领域驱动设计和实践
  • Windows 7的预备知识系列之一:Windows 7启动与停止
  • C#后台,执行前台js 脚本
  • VMware vCenter 添加ESX(i)宿主机
  • 美国人的婚姻方式
  • 软件设计:“度”、“裁剪”与“变通”
  • mantis 汉化的有效方法
  • windows 2003活动目录如何选择dns类型
  • oracle 类型转换函数 oracle 隐式转换规则总结
  • 【Amaple教程】5. 插件
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 0x05 Python数据分析,Anaconda八斩刀
  • 2017前端实习生面试总结
  • ComponentOne 2017 V2版本正式发布
  • CSS 专业技巧
  • CSS实用技巧干货
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • vue-loader 源码解析系列之 selector
  • 关于springcloud Gateway中的限流
  • 两列自适应布局方案整理
  • 微信公众号开发小记——5.python微信红包
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 移动端唤起键盘时取消position:fixed定位
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 通过调用文摘列表API获取文摘
  • (办公)springboot配置aop处理请求.
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转载)Linux网络编程入门
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .chm格式文件如何阅读
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 分布式技术比较
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .net打印*三角形
  • .NET开发者必备的11款免费工具
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • 。Net下Windows服务程序开发疑惑
  • [ACTF2020 新生赛]Upload 1
  • [Android Pro] AndroidX重构和映射
  • [CareerCup] 17.8 Contiguous Sequence with Largest Sum 连续子序列之和最大
  • [CentOs7]iptables防火墙安装与设置
  • [Codeforces] number theory (R1600) Part.11