linux work 2 -vi

来源:互联网 发布:郑和 知乎 编辑:程序博客网 时间:2024/06/05 03:22
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时,提示符为:#    ,普通用户则为:$

原创粉丝点击