查询相关
find
按规则查找某个文件或文件夹,包括子目录 ? find . -name '*.sh' -- 以.sh结尾的文件
? find . -name '*channel*' -- 包含channel字符的文件 ? find . -name 'build*' -- 以build开头的文件
? find . -name 'abc??' -- abc后面有两个字符的文件
grep
查找内容包含指定的范本样式的文件,Global Regular Expression Print ? grep -n pattern files -- 规则 -n表示显示行号 ? grep -n 'PostsActivity' AndroidManifest.xml ? grep -n '\\d' AndroidManifest.xml
? grep 'aapt' build-channel.xml -- 文件中包含字符串的所有地方
? grep -n 'aapt' build-channel.xml -- 文件中包含字符串的所有地方,并显
示行号
? ps -e | grep java -- 所有java进程
? ps -e | grep -i qq --所有qq进程,不区分大小写
? find . -name '*channel.xml' | xargs grep -n 'aapt' -- 在以channel.xml
结尾的文件中查找包含‘aapt’关键字的地方
? ls | grep 'channel' -- 包含channel关键字的文件
which
在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果 ? which zip ? which grep
查看命令
tail
tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File]
从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。
? tail -f test.log,循环查看文件内容,Ctrl+c来终止 ? tail -n 5 test.log,显示文件最后5行内容
?
tail -n +5 test.log,从第5行开始显示文件
more
more [-dlfpcsu] [-num] [+/ pattern] [+linenum] [file...]
more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。 ? more +3 test.log,显示文件中从第3行起的内容 ? more -5 test.log,设定每屏显示行数 ? ls -l | more -5,每页显示5个文件信息
? more +/day3 test.log,查找第一个出现\字符串的行,并从该处前两行
开始显示输出
less
less [options] [file...] 与more命令一样,less命令也用来分屏显示文件的内容。但是二者存在差别:less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。
? less test.log,查看文件
? ps -ef | less,查看进程信息并通过less分页显示
? history | less,查看命令历史使用记录并通过less分页显示 ? less test1.log test2.log,浏览多个文件,n和p切换文件
watch
watch [options] command
每隔一段时间重复运行一个命令,默认间隔时间是2秒。要运行的命令直接传给shell(注意引用和转义特殊字符)。结果会展示为全屏模式,这样你可以很方便的观察改变
? watch -n 60 date,执行date命令每分钟一次,输入^C 退出 ? watch -d ls -l,查看目录变化
? watch -d ’ls -l | fgrep joe’,想找joe用户的文件
? watch -d 'ls -l|grep scf',监测当前目录中 scf' 的文件的变化 ? watch -n 10 'cat /proc/loadavg',10秒一次输出系统的平均负载 ? watch -n 1 -d netstat -ant,每隔一秒高亮显示网络链接数的变化
? watch -n 1 -d 'pstree | grep http',每隔一秒高亮显示http链接数的变
化
文件相关
vi
vi file
? 按i键,进入编辑模式
? 按esc键,进入命令模式 ? ? ? ? ? ? ?
:w 保存文件但不退出vi
:wfile 将修改另外保存到file中,不退出vi :w! 强制保存,不推出vi :wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi q: 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
chmod
change mode,变更文件或目录的读、写、运行权限 chmod [-cfvR] [--help] [--version] mode file...
? mode:权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...]
? u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,
o 表示其他以外的人,a 表示这三者皆是
? + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
? r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录
或者该档案已经被设定过为可执行。
? chmod也可以用数字来表示权限,语法为:chmod abc file,如chmod 777 file ? 其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 r=4,
w=2,x=1
? chmod 777 file,等同于 chmod a=rwx file
? chmod ug=rwx,o=x file,等同于 chmod 771 file ? chmod 4755 filename,可使此程序具有root的权限 ? ls -l 可以查看列出当前用户的文件权限
zip
zip -r filename.zip filesdir
? zip -r test.zip ./*,把当前所有文件压缩到test.zip
? zip -r test.zip test,把test文件所有文件及目录,要是到test.zip ? zip -d test.zip test.txt,删除压缩文件中test.txt文件
? zip -m test.zip ./test.txt,向压缩文件中test.zip中添加test.txt文件 ? zip -r test.zip file1 file2 file3 filesdir,处理多个文件和目录,空
格隔开
unzip
? ? ? ? ? ?
unzip zip-file,解压到当前目录
unzip -d dst-dir zip-file,解压到指定的目录,-d后为指定目录 unzip -n zip-file,不覆盖已经存在的文件,-n为不要覆盖原有的文件
unzip -n -d dst-dir zip-file,解压到指定的目录,不覆盖已经原有的文件 unzip -o -d dst-dir zip-file,-o不必先询问用户覆盖原有文件 unzip -l zip-file,仅查看压缩文件内所包含的文件
tar
? ? ? ? ?
tar cvf test.tar test,把test下所有文件和目录做备份
tar czvf test.tar.gz test,把test下所有文件和目录做备份并进行压缩 tar xzvf test.tar.gz,把这个备份文件还原并解压缩
tar tvf test.tar | more,查看备份文件的内容,并以分屏方式显示在显示器上
tar czvf test.tar.gz test --exclude=test/svn,备份压缩并排除目录
touch
内存相关
ps
显示瞬间行程(process)的动态,ps [options] [--help] ? ps -A,列出所有的进程
? ps -w,显示加宽可以显示较多的资讯 ? ps -au,显示较详细的资讯
? ps -aux,显示所有(包含其他用户)的进程 ? ps命令详解 ? ps命令介绍
linux上进程有5种状态:
运行(正在运行或在运行队列中等待)
中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放) 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
1. 2. 3. 4. 5.
top
动态观察程序的变化,top [-d] | top [-bnp] ? top -d 2,每两秒钟更新一次
? top -b -n 2 > /tmp/top.txt,将top的信息进行2次,然后将结果输出到
/tmp/top.txt
? top -d 2 -pid 10604,仅观察PID=10604的程序
? top命令介绍 free
free [options]
free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一 ? free -m,以MB为单位显示内存使用情况 ? free -g,以GB为单位显示内存使用情况 ? free -s 10,周期性的查询内存使用信息
kill
kill [-s signal_name] pid...
发送指定的信号到相应进程,The kill utility sends a signal to the processes specified by the pid operand(s) ? kill -l,列出所有信号名称
? kill -l SIGKILL,得到指定信号的数值,SIGKILL=9 ? kill -9 pid,强行中止进程,强大和危险的命令迫使进程在运行时突然终止,
进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。 ? kill -HUP PID,停止和重启进程,该命令让Linux和缓的执行进程关闭,然后
立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。
? kill -l PID,以优雅的方式结束进程,-l选项告诉kill命令用好像启动进程的
用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。
? ps -ef | grep vim,查找进程
网络相关
ping
ping [参数] [主机名或IP地址]
确定网络和各外部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络。
? ping -b 192.168.1.1,ping网关
? ping -c 10 192.168.1.2,ping指定次数
? ping -c 10 -i 0.5 192.168.1.2,时间间隔和次数限制的ping ? ping -c 5 www.http://www.diyifanwen.net/,通过域名ping公网上的站点
netstat