@1: 在单个命令中创建目录树:
不要逐层创建目录,尽量使用mkdir的-p选项:

~$ mkdir -p one/two/three    # 假设目录one不存在

创建复杂的目录树:

~$ mkdir -p ./{a/{c,d/e/{f/h,g/i}},b}    # 假设目录a不存在

@2: 使用选项 -C 来解压缩 .tar 文件到指定的目录(如tmp/a/b/c)

~$ tar xvf -C tmp/a/b/c filename.tar.gz

@3: Be careful of the wildcard.

一般最好将变量调用包括在双引号中,除非您有不这样做的足够理由。

lxw@ubuntu:~$ ls Music/
a b
lxw@ubuntu:~$ var="Music/*"
lxw@ubuntu:~$ echo $var
Music/a Music/b
lxw@ubuntu:~$ echo "$var"
Music/*
lxw@ubuntu:~$ echo "${var}a"
Music/*a
lxw@ubuntu:~$ echo ${var}a
Music/a
lxw@ubuntu:~$

@4: xargs:
#1:

find可以到指定的目录的子目录中查找, grep -r也可以, 但如果指定了查找的文件的类型, 可能用find会更方便.

比如下面的例子, 要达到完全等效的效果, 用grep写可能会稍微麻烦些

~$ find ./ -name "*.sh"|xargs grep "string"

#2:

~$ ls|xargs file

@5: time: 执行命令所耗费的时间

~$ time find ./ -name "*.sh"|xargs grep "string"
./dirInfo.sh: #read -p: If there are some 'Escape Characters' in the prompt string, there will be something unexpected. real 0m0.007s
user 0m0.004s
sys 0m0.000s

@6: grep不需要cat

提倡

~$ time grep "lxw" basicShellScripts.sh
Author: lxw real 0m0.003s
user 0m0.000s
sys 0m0.000s

不提倡:

~$ time cat basicShellScripts.sh|grep "lxw"
Author: lxw real 0m0.004s
user 0m0.000s
sys 0m0.000s

@7: 查找文件命令locate,find也可以但比较慢

locate命令用来查找名字中包含指定字符串的文件和目录,locate是在系统的文件/目录名称数据库中查询,速度较快。

与updatedb命令搭配使用,可以使查询结果更加准确、及时。

@8: 要查看某个运行着的命令(通过ps查到pid)具体是哪个目录下的哪个文件执行的,可以通过如下方式查看:

通过ps查到pid:

lxw ~$ ps aux|grep lxw
...
lxw 0.2 1.6 ? Sl : : gnome-terminal
lxw 0.0 0.0 ? S : : gnome-pty-helper
lxw 0.0 0.3 pts/ Ss+ : : bash
lxw 0.4 0.3 pts/ Ss : : bash
...

假设我们现在想看gnome-terminal这个进程是哪个文件执行的结果.我们可以通过下面得到命令来实现:

lxw ~$ cd /proc//
lxw $ ls -l
total
dr-xr-xr-x lxw lxw Feb : attr/
-rw-r--r-- lxw lxw Feb : autogroup
-r-------- lxw lxw Feb : auxv
-r--r--r-- lxw lxw Feb : cgroup
--w------- lxw lxw Feb : clear_refs
-r--r--r-- lxw lxw Feb : cmdline
-rw-r--r-- lxw lxw Feb : comm
-rw-r--r-- lxw lxw Feb : coredump_filter
-r--r--r-- lxw lxw Feb : cpuset
lrwxrwxrwx lxw lxw Feb : cwd -> /home/lxw/
-r-------- lxw lxw Feb : environ
lrwxrwxrwx lxw lxw Feb : exe -> /usr/bin/gnome-terminal*
...

请注意exe是指向/usr/bin/gnome-terminal的符号链接. 因此, 我们知道6043进程是/usr/bin/gnome-terminal这个程序执行的产生的.

/proc/pid/cwd 链接到进程的当前工作目录

/proc/pid/exe 链接到进程的执行命令文件(绝对路径)

@9: 查看Linux系统和服务日志:syslog

http://blog.sina.com.cn/s/blog_4d45ec960100ugqg.html

参考文章:

UNIX 高手的 10 个习惯:http://www.admin10000.com/document/3696.html

Tips for Unix/Linux的更多相关文章

  1. 50个最常用的UNIX/Linux命令

    转自http://get.jobdeer.com/493.get 1. tar command examples Create a new tar archive. $ tar cvf archive ...

  2. 请使劲回答一个关于UNIX/Linux自己主动扩展stack的问题

    有本事就出来,没本事就当鳖! 假设让我回答关于进程栈,线程栈的问题,仅仅要问题不笼统,仅仅要问题明白.我会一五一十地回答,正确率上九成,然而,可悲的是,问题往往他妈的都不是非常明白,因此,游戏到此结束 ...

  3. Unix&Linux技术文章目录(2015-12-22更新)

    Unix & Linux 方面的博客整理.归纳分类,要坚持不懈的学习Unix &Linux,加油!技术需要累积和沉淀.更需要锲而不舍的精神.持之以恒的毅力!借此下面名句勉励自己! 书上 ...

  4. 28个Unix/Linux的命令行神器_转

    28个Unix/Linux的命令行神器 下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具,有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的.这些工具 ...

  5. 《UNIX/Linux网络日志分析与流量监控》新书发布

    本书从UNIX/Linux系统的原始日志(Raw Log)采集与分析讲起,逐步深入到日志审计与计算机取证环节.书中提供了多个案例,每个案例都以一种生动的记事手法讲述了网络遭到入侵之后,管理人员开展系统 ...

  6. 《Unix/Linux网络日志分析与流量监控》获2015年度最受读者喜爱的IT图书奖

    <Unix/Linux网络日志分析与流量监控>获2015年度最受读者喜爱的IT图书奖.刊登在<中华读书报>( 2015年01月28日 19 版) 我的2015年新作刊登在< ...

  7. 【程序员技术练级】熟悉Unix/Linux Shell和常见的命令行(一)文件系统结构和基本操作

    作为程序猿,熟悉一些unix/linux命令行是非常必要的,因为部署服务的服务器现在基本上用的都是unix/linux系统,很少在windows上部署服务的. 今天我们就介绍一些在linux上的文件系 ...

  8. How to locate a path? - Unix & Linux Stack Exchange

    How to locate a path? - Unix & Linux Stack Exchange http://unix.stackexchange.com/questions/2955 ...

  9. linux运维的认知及RHEL7 Unix/Linux 系统 介绍和安装

    如何成为一个优秀的linux运维人员?      如果你有机会和条件:环境能够磨练一个人的能力和意志.      大胆的做你从未做过的项目,每一个项目都是对自身的极大提升.      有好的环境资源不 ...

随机推荐

  1. php 结合md5的加密,解密方法

    php 结合md5的加密,解密方法 张映 发表于 2012-06-28 分类目录: php 标签:md5, php 最近在整理代码发现了一个不错的东西,结合md5的加解密算法.网上关于php结合md5 ...

  2. Spring @Transactional

    在service类前加上@Transactional,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务. Spring默认情况下会对运行期例外(RunTimeExcep ...

  3. Unity3d中模型导入轴向不对的解决方法

    在unity3d中导入模型,经常会遇到模型的轴向与unity中默认的轴向不符合的情况. 网上有很多解决办法都是说在3dmax中导出模型时修改模型的轴向,那么我接下来讲的就是如何在unity里面修改模型 ...

  4. Java Stream 官方文档翻译

    先立个flag https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html

  5. linux IP动态变动之后 , 需要做的杂项操作

    linux的动态ip经常变来变去,目前还没找到固定它不变化的方法.所以每次变动之后都需要做以下的操作,极其麻烦.(必须找到让linux IP 固定的方法) 1.先找到变化之后的动态ip地址 ifcon ...

  6. windows下mysql表名不自动转换小写配置

    mysql5.6版本配置文件有两个 1.默认的配置在program files/MySQL/MySQL Server 5.6/my-default.ini 2.一个在programData/MySQL ...

  7. Linux 比较重要且难掌握命令 集合

    1. find find path –option [-print] [-exec command] {} \; find . -maxdepth 1 -name aa find . -maxdept ...

  8. 第一百九十四节,jQuery EasyUI,Droppable(放置)组件

    jQuery EasyUI,Droppable(放置)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 Droppable(放置)组件的使用方 ...

  9. (转载)将一段符合XML格式规范字符串插入已有XML文档当中

    想我们已经存在一个XML文档,结构如下:   < xmlversion="1.0"encoding="utf-8">< employees&g ...

  10. vim杂记

    "clang-completelet g:clang_complete_copen=1let g:clang_periodic_quickfix=1let g:clang_snippets= ...