linux work 2 -vi

1、调用vi


vi filename
打开或创建一个文件


vi
打开一个新文件, 最后才取名

2、
i
在光标当前位置插入


a
在光标所在位置后插入


o
在光标所在行下插入一空行


<Esc>
退出插入状态


delete text


x
删除一个字符


dw
删除当前词(没办法识别所有的英文单词,是连续多个字母,当碰到标点符号时,为一个词)


3dw
删除三个词


dd
删除当前行(从光标所在行开始)


5dd
删除五行(从光标所在行开始)


:5,10d  (底行模式:5到10行删除)


change text:


r
替换一个字符


cw
替换一个单词


cc
替换一行


C
替换从光标至行尾


copy text :


yw
拷贝词(光标放在一个单词的开始位置)(p:在光标的下个位置黏贴;P:在光标的上个位置)


yy
拷贝行(或Y)


p
当前行下粘贴


:1,2co3
拷贝行1,行2在行3之后


:4,5m6
移动行4,行5在行6之后


save quit text:


:w
存盘


:w newfile
存成新文件


:wq
存盘退出Vi(或ZZ,或:x先检测有没有改变,如果没有改变,不存盘)


:q!
强行退出不存盘


~
改变大小写


J
把当前行和下一行连起来


u
废除刚才的编辑操作(undo)(存盘退出,不能废除)


:set nu
显示行代码 (:set nonu)


:21
光标停在指定行


21G
光标停在指定行 (G 到文件尾,1G 到文件头)


/串
从当前行往下查找


?串
从当前行往上查找


n
查找继续


:r file2
在光标所在位置插入另一个文件


:1,$s/旧串/新串/g
替换全文(或 :$s/旧串/新串/g)


 $:表示最后一行

3、id:查用户的信息


id root


id -a root 

4、 显示当前已登录本系统的所有用户信息


who
用来查询目前有那些人在线上。





w
用来查询目前有那些人在线上,同时显示出那些人目前的工作。


. 显示你真实的用户ID


who am i


. 仅显示当前登录用户名


whoami

7、find:根据指定的条件从文件系统中搜寻指定的文件或目录,然后做处理


比如现在时间为2016年7月27日 晚上8点,刚过去的24小时不算


find -mtime 4 是找到所有前5天后前4天前被更改的档案文件,


2016年7月21日 晚上8点~2016年7月22日晚上8点


find -mtime -4 是4天内被改的档案,


2016年7月22日晚上8点-2016年7月26日 晚上8点


find -mtime +4 是4天前被改的档案。


2016年7月22日晚上8点之前

 
find -mtime -1 今天的

  find /export/home/html -name "*.html" -print | xargs \


 
perl -p -i.bak -e “s/Copyright 2004/Copyright 2005/g;”
将/export/home/html目录下所有后缀为html的文件中“/Copyright 2004”内容替换为” /Copyright 2005”;其中xargs为一个命令, 然后作用perl作为参数. 这个功能非常强大. 在windows下面大家看看可以找得出这么强大的命令吗? 


xargs:将前面结果作为后面命令(perl)的参数


eg: echo passwd.txt | xargs | rm 


perl:对文件内容进行处理


-p :按模式处理


-i.bak:对文件进行处理之前,先备份


index.bak 之后再处理


-e :excut 执行


eg:将一个文件中的字符进行替换,替换之前进行备份

8、grep:从管道或文件中搜寻所满足条件的行

9、wc:从文件或管道中统计行数、字符个数、单词个数


wc[options] filename(s)


-l 行数


-w 字数


-c 字符数

10、ps:用来查看系统中正在运行的进程的信息


什么是进程:一个程序的运行过程





1)ps -a 显示现行终端机下的所有程序,包括其他用户的程序。


2)ps -A   显示所有程序。


3)ps c    列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。


4)ps -e  此参数的效果和指定"A"参数相同。


5)ps e   列出程序时,显示每个程序所使用的环境变量。


6)ps f    用ASCII字符显示树状结构,表达程序间的相互关系。


7)ps -H    显示树状结构,表示程序间的相互关系。


8)ps -N   显示所有的程序,除了执行ps指令终端机下的程序之外。


9)ps s     采用程序信号的格式显示程序状况。


10)ps S     列出程序时,包括已中断的子程序资料。


11)ps -t <终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。


12)ps u   以用户为主的格式来显示程序状况。


13)ps x   显示所有程序,不以终端机来区分。


14)ps -l     較長,較詳細的顯示該PID的信息

ps -e :查看正在运行的进程(运行过程中、就绪状态下的)


ps -f:详细信息


eg:


wood   2709  2571  0 05:07  pts/2  00:00:00  cat


用户
 PID   PPID
启动时间 tt   运行时间 哪个程序文件

tt:表示该进程是从哪个控制台启动的。(可以是 pts/num或者?) ?:不是用户启动的,是系统运行时自动启动的进程

  kill  

 11、# ping –s host2   看看网络通不通。

 12、telnet

  - telnet服务器模拟一个终端允许你连接并工作于一个远端系统上


- 使用TCP/IP连接于另一个系统

13、ftp


使用 ftp 复制或传送文件 ftp(File Transfer Protocol)允许用户对远地主机复制文件,用户毋须考虑操作系统类型,即能向或从任何具有 TCP/IP 的系统复制文件。 ftp命令允许复制目录中的一个文件或所有文件,但不能复制多层 次目录。使用ftp时, 必需在远地主机上设有帐户。 当 ftp 注册到远地系统时,并未得到 shell ,而是通过 ftp 命令解释程序同远地主机进行通讯。


lcd 


cd 


mput


mget


put 


get


bye

14、环境变量


variable=value

15、path:命令的默认搜索路径


想知道所执行的命令到底在那个目录下?


which vi 搜索vi所在的路径(在path下搜索,搜索到就停止)


whereis vi 搜索vi所在的路径(在path下搜索,搜索到继续搜索,直到找到所有的vi)

16、History


$ set HISTORY=30
设置最多允许保存前三十个已执行命令的记录


$ history
显示历史记录信息


$ history 5
显示第五条历史记录信息


$ !n
重复执行第n条历史命令


$ !!
重复执行上一条历史命令

17、别名:针对于系统中已经存在的命令,给它取个别名


csh :alias  h history


bash:alias h(别名)=history(原始命令)


$ alias home=’cd;ls’

alias 显示所有设置的别名


unalias copy 取消所设置的别名


(有无取消所有设置的别名)

18、初始化文件:包含命令和变量的设置,当shell启动时就执行


对初始化文件再操作系统中分为两级:


1、系统级(一旦修改,对所有的用户都起作用)


/etc


2、用户级(只针对于特定的用户有效)


/home/user/(用户的家目录下)

19、

Linux的命令提示符可按个人喜好随意更改,修改PS1的值即可;

在Ubuntu下若只是个别用户下修改~/.profile文件就好,所有用户统一则修改/etc/profile;

加入:

     export PS1='[/u@/h /W/]/$ '

 

     其中 /u显示当前用户账号

          /h显示当前主机名

          /W显示当前路径(大写W为相对路径,小写w为绝对路径)

          /$显示'$'符号

PS1:提示符的设置

     PS1(是数字1而不是字母l),每个版本bash的PS1变量内的特殊符号可能有些小的差异,你可以先man bash 一下。

/d :代表日期,格式为weekday month date,例如:"Mon Aug 1"

/H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux

/h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略

/t :显示时间为24小时格式,如:HH:MM:SS

/T :显示时间为12小时格式

/A :显示时间为24小时格式:HH:MM

/u :当前用户的账号名称

/v :BASH的版本信息

/w :完整的工作目录名称。家目录会以 ~代替

/W :利用basename取得工作目录名称,所以只会列出最后一个目录

/# :下达的第几个命令

/$ :提示字符,如果是root时,提示符为:#    ,普通用户则为:$