Tips for Unix/Linux
@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的更多相关文章
- 50个最常用的UNIX/Linux命令
转自http://get.jobdeer.com/493.get 1. tar command examples Create a new tar archive. $ tar cvf archive ...
- 请使劲回答一个关于UNIX/Linux自己主动扩展stack的问题
有本事就出来,没本事就当鳖! 假设让我回答关于进程栈,线程栈的问题,仅仅要问题不笼统,仅仅要问题明白.我会一五一十地回答,正确率上九成,然而,可悲的是,问题往往他妈的都不是非常明白,因此,游戏到此结束 ...
- Unix&Linux技术文章目录(2015-12-22更新)
Unix & Linux 方面的博客整理.归纳分类,要坚持不懈的学习Unix &Linux,加油!技术需要累积和沉淀.更需要锲而不舍的精神.持之以恒的毅力!借此下面名句勉励自己! 书上 ...
- 28个Unix/Linux的命令行神器_转
28个Unix/Linux的命令行神器 下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具,有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的.这些工具 ...
- 《UNIX/Linux网络日志分析与流量监控》新书发布
本书从UNIX/Linux系统的原始日志(Raw Log)采集与分析讲起,逐步深入到日志审计与计算机取证环节.书中提供了多个案例,每个案例都以一种生动的记事手法讲述了网络遭到入侵之后,管理人员开展系统 ...
- 《Unix/Linux网络日志分析与流量监控》获2015年度最受读者喜爱的IT图书奖
<Unix/Linux网络日志分析与流量监控>获2015年度最受读者喜爱的IT图书奖.刊登在<中华读书报>( 2015年01月28日 19 版) 我的2015年新作刊登在< ...
- 【程序员技术练级】熟悉Unix/Linux Shell和常见的命令行(一)文件系统结构和基本操作
作为程序猿,熟悉一些unix/linux命令行是非常必要的,因为部署服务的服务器现在基本上用的都是unix/linux系统,很少在windows上部署服务的. 今天我们就介绍一些在linux上的文件系 ...
- How to locate a path? - Unix & Linux Stack Exchange
How to locate a path? - Unix & Linux Stack Exchange http://unix.stackexchange.com/questions/2955 ...
- linux运维的认知及RHEL7 Unix/Linux 系统 介绍和安装
如何成为一个优秀的linux运维人员? 如果你有机会和条件:环境能够磨练一个人的能力和意志. 大胆的做你从未做过的项目,每一个项目都是对自身的极大提升. 有好的环境资源不 ...
随机推荐
- sql语句单据编号生成防并发
有用户反馈说发现重复单据号,检查发现以下单据号被分配给了不同的两个职工 系统中使用语句exec GetNewOrderNumber 'pwgnumber','PWG',1, @pwg_number o ...
- 辛星让mysql跑的更快第一节之优化的方向和数据库建模
近期计划写一套书目,也就是关于mysql的优化的.那么首先在博客上写写,然后整理成pdf的文档的形式,当然也期待各位的关注了.对于mysql的优化是一个比較大的话题.可优化的地方也非常多,大致想了一下 ...
- php画图应用之验证码
在画图里面,就像之前所说的.php的画图是真正动态画图,尽管自己承认会出的图是非常不好看的.但我们主要关注的应该还是数据处理. 验证码我们差点儿无处不见,它的产生和画图技术是密不可分的.事实上,简单的 ...
- C语言指针解说
指针是C语言的一种数据类型.类似于C中的其它类型,比如int ,char 等.既然指针是一种类型,当我们定义该类型变量.该类型变量就称为指针变量. C中有了指针就有了指向. 指向:指针变量指向本身保存 ...
- 带你了解UIKit动力学
一.简单介绍 1.什么是UIDynamic UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象如:重力.弹性碰撞等现象 ...
- lcd中像素深度bpp和像素格式(比如RGB,YUV)的关系
像素深度(bits per pixel,简称bpp) 一个像素的颜色在计算机中由多少个字节数据来描述.计算机中用二进制位来表示一个像素的数据,用来表示一个像素的数据位越多,则这个像素的颜色值更加丰富. ...
- consul eureka区别(来自Consul官网)
consul 与 eureka Eureka是一个服务发现工具.该体系结构主要是客户端/服务器,每个数据中心有一组Eureka服务器,通常每个可用区域一个.通常Eureka的客户使用嵌入式SDK来注册 ...
- Linux make语法
make是一种控制编译或者重复编译软件的工具. make可以自动关键软件的编译内容.方式和时机,从而使程序员把更多的精力集中在编写代码上. make主要的机制是在命令行键入make命令,make会自动 ...
- JavaScript 代码块
JavaScript 语句通过代码块的形式进行组合. 块由左花括号开始,由右花括号结束. 块的作用是使语句序列一起执行. JavaScript 函数是将语句组合在块中的典型例子. 下面的例子将运行可操 ...
- tcp/iP协议族——IP工作原理及实例具体解释(下)
IP协议具体解释 上一篇文章文章主要介绍了IP服务的特点,IPv4头部结构IP分片.并用tcpdump抓取数据包,来观察IP数据报传送过程中IP的格式,以及分片的过程.本文主要介绍IP路由,IP ...