linux入门5-shell及vi使用

网络通信命令  
(1)write
su pheodor
write root
打开两个用户
su root
write phedor
这样两个用户就可以通信啦
按ctrl+d来结束
(2)wall ==write all 的缩写
wall 我爱你天赐
只要在互联网中的每一台主机都会收到  相当与广播
(3)ping
ping 127.0.0.1 他不像windows会ping4次自动终止
这个你只要不按ctrl+c 就一直ping下去
ping -c  3 127.0.0。1 定义发送包的数量
ping -s 65507 192.168.1.108    包的大小
(4)ifconfig 查看网卡
pheodor@ubuntu:~$ ifconfig -a
eth0      Link encap:以太网  硬件地址 e8:9a:8f:0c:e0:05  
          inet 地址:192.168.1.105  广播:192.168.1.255  掩码:255.255.255.0
          inet6 地址: fe80::ea9a:8fff:fe0c:e005/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:216 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:190 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000
          接收字节:24079 (24.0 KB)  发送字节:20688 (20.6 KB)
          中断:17

lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  跃点数:1
          接收数据包:236 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:236 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0
          接收字节:18864 (18.8 KB)  发送字节:18864 (18.8 KB)

wlan0     Link encap:以太网  硬件地址 8c:a9:82:59:f6:40  
          BROADCAST MULTICAST  MTU:1500  跃点数:1
          接收数据包:0 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:0 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000
          接收字节:0 (0.0 B)  发送字节:0 (0.0 B)
linux 一个潜规则:你该的ip后 包括你改得所有东西必须写道配置文件中。
---------------------------------------------------------------------
立即关机 千万不要用这个命令 因为服务器很少会关闭的 服务器是全天24时开着
shtudown -h now
重启 reboot
----------------------------------------------------------------------
shell应用技巧
一般用的是bash
N多shell
pheodor@ubuntu:~$ cat /etc/shells
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
pheodor@ubuntu:~$
bash的使用技巧:
(1)tab 补齐文件名
因为命令也是一个文件 所有可以补全
(2)clear 清屏
ctrl+l请屏
ctrl+u 删除光标前面的东东
(3)history
用过的全部的命令会显示出来
------------------------------------------------------------------
alias 命名别名
系统默认定义来一些别名
pheodor@ubuntu:~$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
pheodor@ubuntu:~$
命令的作用 就是让你更加习惯
alias copy=cp
有些哥们喜欢dos里面的copy 不喜欢cp 就可以这样写alias copy=cp
alias drm=“rm -r” 如果你想快速的删除目录 如果命令有参数 千万要加双引号“”
吧别名干掉
unalias copy
unalias drm
-------------------------------------------------------------------------
输入/输出重定向
同标准I/O一样,shell对于每一哥进程预先定义来3个文件描述子
0 STDIN 标准输入 键盘
1 STDOUT  标准输出 显示器
2 STDERR  标准错误输入  显示器
重定向:就是不从键盘输入 不输出到显示器
(1):输出重定向: > 非常非常有用
不想让他显示到屏幕上
root@ubuntu:/home/pheodor# ls -l /tmp > /tmp.msg
root@ubuntu:/home/pheodor#
不显示在屏幕上啦 显示到这个文件中啦
root@ubuntu:/# cat tmp.msg
总用量 48
srwxr-xr-x 1 pheodor pheodor    0 2011-08-24 19:25 gedit.pheodor.1618256311
srwxr-xr-x 1 pheodor pheodor    0 2011-08-24 19:49 gnome-system-monitor.pheodor.1656360752
drwx------ 2 root    root    4096 2011-08-24 19:18 keyring-nqe4Jh
drwx------ 2 pheodor pheodor 4096 2011-08-24 19:20 keyring-yISYne
drwx------ 2 gdm     gdm     4096 2011-08-24 19:20 orbit-gdm
drwx------ 2 pheodor pheodor 4096 2011-08-24 19:56 orbit-pheodor
drwx------ 2 root    root    4096 2011-08-24 19:19 orbit-root
drwx------ 2 gdm     gdm     4096 2011-08-24 19:21 pulse-2L9K88eMlGn7
drwx------ 2 pheodor pheodor 4096 2011-08-24 19:20 pulse-nyJO3QiZv3Bc
drwx------ 2 root    root    4096 2011-08-24 19:18 pulse-PKdhtXMmr18n
drwx------ 2 root    root    4096 2011-08-24 19:18 ssh-boRYmTgs1455
drwx------ 2 pheodor pheodor 4096 2011-08-24 19:20 ssh-rdFAqyUs1891
drwx------ 2 pheodor pheodor 4096 2011-08-24 19:20 virtual-pheodor.lZQyBx
drwx------ 2 root    root    4096 2011-08-24 19:18 virtual-root.6IiJ3G
root@ubuntu:/#
 >覆盖  >> 代表追加 不会覆盖
(2)输入重定向
wall < /etc/motd
(3)错误输出重定向
只有错误的时候 才重定向到一个备份文件
cp -R /usr /backup/usr.bak 2> /bak.error
ls举例子:
pheodor@ubuntu:~$ ls /ff
ls: 无法访问/ff: 没有那个文件或目录
pheodor@ubuntu:~$ ls /ff 2> ls.err
pheodor@ubuntu:~$ ls /tmp 2> ls.err
gedit.pheodor.2200969063  orbit-pheodor       pulse-PKdhtXMmr18n
keyring-plBkog            pulse-2L9K88eMlGn7  ssh-EXIklLbK1454
orbit-gdm                 pulse-DIo2RBAtOl4w  virtual-pheodor.UYg9cv
pheodor@ubuntu:~$
如果证据 就不会输出来
pheodor@ubuntu:~$ cat ls.err
ls: 无法访问/ff: 没有那个文件或目录
错误重定向 很重要。。
--------------------------------------------------------------------
管道 很重要
将一个命令的输入传送给另一个命令 作为另一个命令的输入
命令1|命令2|命令3|命令4|命令4|。。
pheodor@ubuntu:~$ ls -l | more
ls -l /etc | grep init | wc -l
pheodor@ubuntu:~$ ls -l /etc | grep init | wc -l
3
查看etc下面 有init 这个的关键字的有几行
----------------------------------------------------------------------
命令连接符
(1);
间隔各个命令按顺序一次执行
pheodor@ubuntu:~$ pwd ; ls ; date
/home/pheodor
etc               ls.err      workspace  模板  图片  下载  桌面
examples.desktop  Ubuntu One  公共的     视频  文档  音乐
2011年 08月 24日 星期三 21:39:04 CST
pheodor@ubuntu:~$
你可以写n个任务 到以后自动化 的时候 可以用。
(2)&&
链接两个命令
command1&&command2
第一个命令成功 第二个才会执行
给Mary写一个情书
如果成功就马上删除毁灭证据
pheodor@ubuntu:~$ write  Mary < /home/pheodor/love.txt && rm /home/pheodr/love.txt
--
pheodor@ubuntu:~$ fsadfasd && pwd
fsadfasd:找不到命令
pheodor@ubuntu:~$
(3)|| 只执行一个 如果第一个正确 就不会执行第二个 如果第一个不正确 就执行第二个
pheodor@ubuntu:~$ fsadfasd || pwd
fsadfasd:找不到命令
/home/pheodor
pheodor@ubuntu:~$
写清书
pheodor@ubuntu:~$ write Mary < /home/pheodor/love.txt || mail Mary < /home/pheodor/love.txt
--------------------------------------------------------
命令替换符号
将一个命令的输出 作为另一个命令的参数
 `他不是单引号 他是数字1 左边的
举例
pheodor@ubuntu:~$ which touch
/usr/bin/touch
pheodor@ubuntu:~$ ls -l /bin/touch
-rwxr-xr-x 1 root root 47640 2011-02-23 22:24 /bin/touch

pheodor@ubuntu:~$ ls -l `which touch`
lrwxrwxrwx 1 root root 10 2011-08-10 00:09 /usr/bin/touch -> /bin/touch
pheodor@ubuntu:~$
-----------------------------------------------------------------------
vim/vi
作用:建立,编辑,显示文本文件
没有菜单,只有命令
vi缺省 的时候 进入的是命令形式
i 进入插入模式
从插入模式回到命令模式 ESC
从命令进入编辑模式 :

----------------
插入命令
a 在光标后附加文本
A 在文本行末附加文本
i 在光标前插入文本
I 在本行开始插入命令
o光标下插入新行
O光标上插入新行
---------------
定位命令
h  左
j  下
k  上
l  右
$   行尾
0   行手
屏幕
H  上
L 下
M  中

:set nu 设置行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
nG 到第n行
:n 到第n行
-------------------------------------------
删除命令
x 删除光标所在处字符
nx 删除光标后n个字符
dd 删除光标所在的行
dG 删除光标所在行到末尾的内容
D 删除光标所在处的行尾
:n1,n2d 删除指定范围的行
-------------------------------------------
复制和剪切
yy,Y 复制当前行
nyy,nY 复制当前行一下n行
dd 剪切当前行
ndd 剪切当前一下n行
p,P 粘贴在当前行所在的行下或者行上
------------------------------------------
替换和取消的命令
r  替换光标所在处的字符
R  从光标所在处替换字符
u  取消上一步操作 相当与undo
---------------------------------------
搜索和替换的命令
/string 想起搜所 小写n从前往后找  大写N 从后往前找
忽略大小写 :set ic
:set noic 取消忽略大小写
n 往后找 N往前找
:%s/old/new/g 全文替换
c g不提示 c提示一下
:n1,n2s/old/new/g 指定范围
-------------------------------------------
保存退出
:wq writeqite
ZZ: shift+zz
:w /root/service.bak 保存一下
:q!不保存退出
-------------------------------------------
导入文件
:r /etc/isso
执行命令
:! ls /root
吧一个命令的执行结果导入到vi中
:r !date
--------------------------
定义快捷点
注释快捷键 ctrl+v ctrl+p ctrl+v+p
:map ^P I#<ESC>
:map ^B 0x
连续行注释
:n1,n2s/^/#/g
连续行去掉注释
:n1,n2s/^#//g

:n1,n2s/^/\/\//g
替换
:ab phedormail pheodorai@gmail.com
当如书pheodormain 就会变成后面我的邮箱地址
unab pheodormail 来取消
编辑vi的配置目录来定制自己的vi

~ home directory
~/.vimrc
vi /root/.vimrc
默认是空的 你可以在里面输入命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值