@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. phxsql安装小记

    PhxSQL具有服务高可用.数据强一致.高性能.运维简单.和MySQL完全兼容的特点. 服务高可用:PhxSQL集群内只要多数派节点存活就能正常提供服务:出于性能的考虑,集群会选举出一个Master节 ...

  2. 通知:spark meetup 第六次会议在北京举行

    通知: Spark北京Meetup第六次活动(­机器学习专题) 将于北京时间3月21日 下午14:00-18:00 在微软亚太研发集团总部大厦1号楼举行,主题包括: Julien Pierre  Pr ...

  3. Eclipse 生成jar包

    Eclipse 生成jar包 打开 Jar 文件向导 Jar 文件向导可用于将项目导出为可运行的 jar 包. 打开向导的步骤为: 在 Package Explorer 中选择你要导出的项目内容.如果 ...

  4. Python 爬虫实战5 模拟登录淘宝并获取所有订单

    经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 本篇内容 python模拟登录淘宝网页 获取登录用户的所有订单详情 ...

  5. 微信小程序 快键键

    快捷键 格式调整 - Ctrl+S:保存文件 - Ctrl+[, Ctrl+]:代码行缩进 - Ctrl+Shift+[, Ctrl+Shift+]:折叠打开代码块 - Ctrl+C Ctrl+V:复 ...

  6. hdu 2586(最近公共祖先LCA)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 思路:在求解最近公共祖先的问题上,用到的是Tarjan的思想,从根结点开始形成一棵深搜树,非常好 ...

  7. maven打包加速(转) (开启多线程,之前发现只占用一核CPU100%,其他CPU闲置的情况)

    采用maven打包时,发现速度超慢,打包一次5-10分钟或者更长时间过去了,严重浪费了一天的时间.因此整理了一下maven打包加速的问题.1.在maven打包中去掉, maven clean, mav ...

  8. 2、easyUI-创建 CRUD可编辑dataGrid(表格)

    在介绍这节之前,我们先看一下效果图: 双击可以进入编辑

  9. hdu 5185(DP)

    不错的一道dp题目,一开始想了一种N*N的dp,后面就一直想怎么优化,然后就一直都在坑中了. 这题题解还是看早了,应该再多想会的,多换种表示状态的方法再想想. dp[i][j]=dp[i-j][j]+ ...

  10. python清除字符串中间空格的方法

    1.使用字符串函数replace >>> a = 'hello world' >>> a.replace(' ', '') 'helloworld' 看上这种方法真 ...