您的位置:首页 > 其它

c第二天

2015-03-04 11:00 127 查看
第二课 vi与shell脚本

一、Unix的常用命令

1.创建链接:ln

1)硬链接:一份文件数据与多个文件路径相关联。

ln 目标文件 硬链接文件

1.txt -> hello <- 2.txt

通过一个文件名对文件进行修改,通过其他硬链接的文件名可以看到上述修改。

通过rm删除文件,实际上只是删除了一个硬链接,只有当文件的硬链接数变成0的时候,文件数据才真正被删除。

2)软连接:在一个文件(链接文件)中保存另一个文件(目标文件)的路径信息。

ln -s 目标文件 软链接文件

2.txt -> 1.txt -> hello

通过一个文件名对文件进行修改,通过其他软链接的文件名可以看到上述修改。

通过rm删除了目标文件,则与其关联的所有软连接文件都将失效。

2.显示文件内容:cat/more/head/tail

cat 文件

显示文件的全部内容,不分屏。

more 文件

显示文件的全部内容,分屏,<Enter>滚一行,<空格>滚一屏,<q>结束显示。

head -n 文件

显示文件的前n(缺省10)行。

tail -n 文件

显示文件的后n(缺省10)行。

tail -f 文件

跟踪文件的增长,显示其追加的内容。

3.查找文件或目录:find

find 目录 条件

条件:

-name 文件名或目录名

按照文件名或目录名查找。

-perm 权限数(同chmod)

按照权限查找。

-user 属主

按照属主查找。

-group 属组

按照属组查找。

-ctime/atime/mtime -n/+n

按照文件创建时间/最后访问时间/最后修改时间查找。-n表距离现在n天以内,+n表示n天之前。

find . -mtime +10

查找当前目录下最后修改时间距离现在10天以前的文件或目录。

-size n

查找大小为n块的文件或目录。

-size nc

查找大小为n字节的文件或目录。

-type d/f/l/p/b/c

d:目录

f:普通文件

l:软链接

p:管道

b:块设备文件

c:字符设备文件

4.查找内容:grep

grep 选项 正则表达式 文件或目录

-n(数字)

显示匹配行的上下n行。

-c

只显示匹配的行数,不显示匹配行内容。

-l

只显示包含匹配行的文件名。

-L

只显示不包含匹配行的文件名。

-n(字符n)

显示行号。

-v

显示不匹配的行。

-w

将表达式作为一个完整的单词处理。

5.查看进程:ps

ps

以简略的方式显示当前用户有控制终端的进程信息。

1)BSD风格的常用选项

a:所有用户的有控制终端的进程。

x:包括无控制终端。

u:以详尽方式显示。

w:加宽显示。

进程状态:

R:运行(正在执行或已就绪等待调度)

S:可唤醒的睡眠(等待资源)

D:不可唤醒的睡眠(通过wake_up调用唤醒)

T:暂停(收到SIGSTOP信号,收到SIGCONT信号继续)

W:等待内存分页(2.6以后内核取消)

X:死亡(不可见)

Z:僵尸(已经结束,但是父进程尚未获得此状态)

<:高优先级。

N:低优先级。

L:有被锁入内存的分页(实时进程)。

s:会话首进程。

l:多线程化进程。

+:在前台进程组中。

2)SVR4风格的常用选项

-e或-A:所有用户的进程。

-a:当前终端的进程。

-u 用户名或用户ID:特定属主的进程。

-g 组名或组ID:特定属组的进程。

-f:按完整格式显示。

-F:按更完整格式显示。

-l:按长格式显示。

ps -eFl

静态优先级=常数(80)+NICE(-20~19),60~99,值越小的进程优先级越高。

动态优先级,内核在静态优先级的基础上对进程实施奖惩。

IO消耗型进程:奖励

处理机消耗型进程:惩罚

6.杀死进程:kill

kill 进程ID

杀死特定的进程。

kill -信号名/信号值 进程ID

向特定的进程发送特定的信号。

kill -l

打印信号列表。

SIGINT(2):终端中断符信号

当用户按下中断键(Ctrl+C)时,产生此信号,并送至前台进程组的所有进程。

默认动作:终止。

SIGQUIT(3):终端退出符信号

当用户按下退出键(Ctrl+\)时,产生此信号,并送至前台进程组的所有进程。

默认动作:终止+core。

SIGFPE(8):算数异常信号

除0,浮点溢出

默认动作:终止+core。

SIGALRM(14):闹钟信号

当以alarm()函数设置定时器,一旦时间到,进程就会受到此信号。

默认动作:终止。

SIGKILL(9):终止信号

不能被捕获,不能被忽略,常用于杀死进程。

默认动作:终止。

7.切换用户:su

su 用户名

切换到特定的用户,不写用户名,表示切换到root用户。

su - 用户名

以新的用户名重新登录,环境变量,用户主目录都会同时切换为新用户的。

8.修改密码:passwd

passwd

修改当前用户的密码。

passwd 用户名

修改特定用户的密码,只有root用户可以使用此命令。

二、文件通配符

1.“*”通配若干个任意字符。

2.“?”通配一个任意字符。

3.“[]”通配一个特定字符集中的字符。

三、输入输出重定向

1.输出重定向:>

2.追加:>>

3.输入重定向:<

四、管道

管道符“|”:连接多个命令,使前一个命令的输出成为后一个命令的输入。

五、命令分隔符

“;”:在一个命令行中分隔多个命令。

六、续行符

“\”:将一条命令分多行输入。

七、文本编辑器vi/vim的使用

1.vi的命令选项

vi

编辑一个无名的空文件。

vi 不存在的文件

编辑一个有名的空文件。

vi 存在的文件

打开并编辑一个已存在的文件。

vi +n 文件

打开并编辑文件,光标置于第n行之首。

vi + 文件

打开并编辑文件,光标置于文件末行。

vi +/pattern 文件

打开并编辑文件,光标置于与pattern匹配的行首。

vi -r 文件

上次编辑过程中崩溃,用这个命令可以恢复文件。

vi -R 文件

以只读方式打开文件。

vi 文件1 文件2 ...

同时打开多个文件。

注意:vi不对文件加锁,多人同时编辑一个文件,只有最后保存的数据被保留下来。

2.三种工作模式

<Esc> <:>/</>/<?>

编辑 ---------->命令 -----------> 底行

模式 <---------- 模式 <---------- 模式

<i>/<a>/<o> <Enter>/<Esc>

<i>:在光标位置之前插入

<a>:在光标位置之后插入

<o>:在光标所在行之下插入

< :>:输入底行命令

</>:从当前位置向文件尾方向搜索

<?>:从当前位置向文件首方向搜索

3.基本命令

1)移动光标

h:左移一个字符

l:右移一个字符

k:上移一行

j:下移一行

Backspace:向文件首的方向移动一个字符

空格:向文件尾方向移动一个字符

Enter:向文件尾方向移动一行

H:光标移到屏幕顶行首

M:光标移到屏幕中行首

L:光标移到屏幕末行首

0:光标移至当前行首

$:光标移至当前行尾

G:光标移至末行首

nG:光标移至第n行首

n$:光标下移n行(含当前行)至行尾

n+:光标下移n行至行首

n-:光标上移n行至行首

2)翻滚屏幕

Ctrl+u:向文件首方向翻半屏

Ctrl+d:向文件尾方向翻半屏

Ctrl+b:向文件首方向翻一屏

Ctrl+f:向文件尾方向翻一屏

3)插入文本

i:在当前位置之前插入

I:在当前行首插入

a:在当前位置之后插入

A:在当前行尾插入

o:在当前行下插入

O:在当前行上插入

nr:替换从当前位置开始的n(缺省1)个字符

R:进入替换状态,直到按<Esc>位置

4)删除文本

nx:删除从当前位置开始的n(缺省1)个字符

nX:删除当前位置之前的n(缺省1)个字符

d0:删至行首

d$:删至行尾

ndd:删除从当前行开始的n(缺省1)行

5)查找替换

/pattern:从当前位置开始向文件尾方向查找与pattern匹配的文本

?pattern:从当前位置开始向文件首方向查找与pattern匹配的文本

n:沿相同的方向继续查找

N:沿相反的方向继续查找

:s/p1/p2/g:将当前行中所有的p1全部替换为p2

:n1,n2 s/p1/p2/g:将第n1到n2行中所有的p1全部替换为p2

:g/p1/s//p2/g:将文件中所有的p1全部替换为p2

6)复制粘贴

yw:复制一个单词

yy:复制一行

p:粘贴

7)撤销和重复

u:撤销先前的命令

:undo:撤销先前的命令

.:重复先前的命令

8)底行命令

:n:光标移至第n行首

:n1 co n2:将第n1行拷贝到第n2行之下

:n1,n2 co n3:将第n1-n2行拷贝到第n3行之下

:n1 m n2:将第n1行移动到第n2行之下

:n1,n2 m n3:将第n1-n2行移动到第n3行之下

:w:保存

:w!:保存只读文件

:q:退出

:q!:不保存退出

:wq:保存退出

:x:保存退出

:x!:保存只读文件退出

:e 文件名:在当前vi中打开另一文件

:e!:重新载入当前文件,之前的修改全部放弃。

:! 命令:不离开vi环境执行shell命令

9)设置选项

:set all:显示所有的选项当前值

:set nu/nonu:显示行号/不显示行号

:set autoindent/noautoindent:自动缩进/不自动缩进

:syntax on/off:打开语法加亮/关闭语法加亮

4.配置文件

用户主目录下的.exrc文件。可以将set选项写到该文件中,每次启动vi都会根据该文件中的信息设置编辑环境。

八、环境变量

九、简单shell脚本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: