配色: 字号:
Linux下的基本操作
2012-04-03 | 阅:  转:  |  分享 
  
Linux下的基本操作速查



===常识===

linux"/"而非"\"来分隔目录,/dir/.表示/dir这个目录,而/dir1/dir2/..表示/dir1这个目录。

shell总是有一个当前目录,文件的相对路径(不以"/"开头的路径)从当前目录开始计算

catsort等处理文件内容的命令,在没有文件名时处理标准输入(键盘输入)

和?是文件名通配符,代表示任意数量字符,?代表单个字符。通配符由shell而非命令自身解释,因此ren.bak.sav这样的dos操作是不可能的。 ===目录相关===

pwd

cd/dir1/dir2 修改当前目录为/dir1/dir2

cd/ 修改当前目录为根目录

cd~ 修改当前目录为用户主目录

cd.. 返回当前目录的父目录

cd- 返回上一个目录

mkdirnewdir 在当前目录下建立新目录newdir

mkdir-pdir1/dir2 创建多层目录

rmdirolddir 在当前目录下删除空目录olddir

rm-rdir 在当前目录下删除非空目录dir

rm-i 删除时提示用户确认

rm-f 删除时忽略不存在的文件,无提示

ls-l 按长格式列出当前目录下文件

ls-la 按长格式列出包括以"."开头的隐含文件

ls-d 列出目录的信息,而不是文件和子目录

ll 按长格式列举当前目录下的文件

ls–R 递归地列出所有子目录中的文件信息

ls–F 在项目后显示类型指示符

ls–lh 使用长列表,文件大小按习惯显示 ===解决乱码或者其他中文字符集问题===

exportLC_ALL=

exportLC_CTYPE=zh_CN.gbk ===文件操作===

rmfoobaretc foobaretc

mvfoobar 文件改名foo1改成bar

mvsrc1src2…dst 把文件移动到dst目录

cpsrcdst 把文件src拷贝为dst

cpsrc1src2…dst 把文件拷贝到dst目录

scp…root@host:path 把文件拷贝到主机host的目录path下

scproot@host:pathdst. 把文件从主机host的目录path下拷贝到当前目录

chmoda+rxfoo 让所有用户有读取和执行foo文件的权限

chmodgo-rxfoo 取消同组和其他用户读取和执行foo的权限

chmod741foo 本人可读写执行,同组用户可读,其他用户可执行foo

touchfoo 改变foo文件的日期

ln-soldnew 为文件old建一个符号连接new

lnoldnew 为文件old创建硬链接new ===文件内容操作===

atfoo 显示文件foo的内容

morefoo 按屏幕一屏一屏显示foo的内容

head-n100foo 查看文件foo的前100行

tail-n100foo 查看文件foo的尾100行

tail-n+5foo 从第5行开始查看文件foo

cmpfoobar 比较两文件是否相同

diff-ufoobar 对比文件foo和bar

sortfoo 按字母排序文件foo

sort-nfoo 按数字排序文件foo

sortfoo|uniq-c 统计文件foo中每行出现了多少次

fgrepxxxfiles 在文件中检索字符串xxx

wc-lfoo 统计文件foo中的行数

wc-wfoo 统计文件foo中的单词数

wc-cfoo 统计文件foo中的字符数 ===查看帮助===

manbash 查看bashshell的内部命令,按q退出

infocoreutils 查看最常用的那些命令,按q退出

manls 查看命令ls的帮助

man-aprintf 查看printf的所有帮助,按q切换到下一个帮助。像printf这样同时出现在shell/c/perl等多个环境中的命令会有多个帮助。

man-Kprintf 在所有的帮助文件中搜索printf

在man手册中

bf 向前/向后翻页

/xxx 关键词查找

q 退出手册

===简单管理===

ps aux PID和COMMAND两列

top 实时显示当前系统负载和最活跃的进程。 按1显示多cpu详情,按shift-m显示内存最多的进程

按u查看某用户的进程

kill 1234 杀死PID为1234的进程(信号为TERM)

kill -91234 强行杀死PID为1234的进程(信号为KILL)

kill-l 查看所有信号的含义和编号

netstat –anp 列出当前所有的tcp/udp连接以及相关的进程 ===打包===

一般用tar打包,包有.tar.gz(.tgz)以及.tar.bz2两种格式

tar cvzfa.tar.gzfoo 把foo下的所有文件打包成a.tar.gz

tar xvzfa.tar.gz 把a.tar.gz解包到当前目录

tar xvjfa.tar.bz2 把a.tar.bz2解包到当前目录

如何使用VIM编辑文件

首先,正确的设置vim环境会使用更加舒服,执行以下命令设置环境:

echo-e"setnocp\nsyntaxon\nsetts=4\nsetsw=4\nsetsi\n">>~/.vimrc

vim foo 启动vim,并编辑文件foo

vim和Windwos的编辑器不一样,它有2种模式:命令模式和编辑模式。刚启动vim时处于命令模式,此时可以移动光标和发布命令。常用命令:

i r o 进入编辑模式

离开编辑模式

:q :q! 退出/强制退出

:w :w! 存盘/强制存盘

:wq :wq! 存盘退出/强制存盘退出

:setnumber 显示行号

:setnonumber 隐藏行号

hjkl 向左/下/上/右移动一行

wb 移动到下一个/上一个单词的开头

^或0$ 移动到行首/行末

nG:n 移动到第n行

? / 向前/向后查找文本

gg G 移动到文件头/文件尾

xdwdd 删除当前字符/单词/行

rcwcc 替换当前字符/单词/行

ylywyy 复制当前字符/单词/行

v V 开始选择文本/开始按行选择文本

y 将v/V选中的文本放入剪贴板

p 粘贴剪贴版的内容

:7,9move$ 将第7~9行移到行尾

J 将下一行拼到当前行尾

:%s/old/new/g 全文替换old为new

. 重复执行上一次的命令

u 撤销上一次的命令

如果有maketags的话,查找当前标识符的定义

Shell进阶

===egrep正则表达式检索===

egreppatternfiles 在文件中检索pattern,显示匹配的行

pattern由若干atom组成,atom定义如下

. 匹配任意字符

[abc] 匹配abc三个字母任何一个

[^abc] 匹配除abc三个字母以外的任何字符

[a-h] 匹配abcdefgh中的任何一个

? ?前一个atom匹配0~1次

+ +前一个atom匹配至少1次

前一个atom匹配任意次

| 匹配两个atom中的任何一个

(…) 用"("和")"把多个atom编成一组

\ 转义符,例如"\."精确匹配".","\t"匹配tab字符

^ 表示一行的开始

$ 表示一行的结束

其他普通字符都是atom

例子:

([a-z]+\.)+[a-z]+ 匹配任何纯由小写字母组成的域名

egrep常用参数

-o 显示匹配上pattern的串

-v 显示没有匹配pattern的那些行

-n 显示行号 ===输入输出重定向和管道===

一般情况下程序从键盘读取用户输入,输出到显示器。我们可以通过"<"">""|"操作符来改变这种行为。

ls>file 把ls的结果存到文件file,file原有的内容被销毁i

ls>>file 把ls的结果存到文件file原有内容的尾部

catf1f2f3>file 把f1、f2、f3组合成一个文件file

who|wc-l 统计用户数

ls-xxx&>file 把ls的错误信息和正常输出都存到文件file

foo
ls|sort 把ls的结果做为sort的输入

ls2>&1|sort 把ls的结果和出错信息一起做为sort的输入

ls|teefile 利用tee命令把ls的结果存到文件file并同时显示在荧幕上。 ===后台任务===

在程序运行的过程中,按ctrl-z可以把程序切换到后台挂起,此时程序暂停执行。

启动程序的时候,在命令行的最后加"&",可以让程序直接在后台执行

grepxxxfile>yyy& 在后台执行grep命令

jobs 显示当前后台有哪些程序

fg9 把第9号后台程序切换到前台

bg9 让第9号后台程序恢复执行(用于ctrl-z挂起的程序)





















献花(0)
+1
(本文系非常尛貝首藏)