Bash Shell学习笔记五

 

1.vim的模式下复制与粘贴

视图模式下:
shift+d剪切
shift+p粘贴
shift+y复制


按下D可以整行删除
按delele键,可以逐一字符删除。

 

 

2.vim中的几个用法

 

1.搜索上一个匹配用N下一个匹配用n

 

2.转换dos格式为unix格式方法为 :set ff=unix

 

3.显示行号的设置为 :set number on

 

4.vim中用 . 表示当前行。

 

5.:co 12                   //vim中把当前行 copy 到行 12 的地方

 

6.vim命令前面指明范围是 "%",会作用于整个文件。

 

7.vim v模式下选择文本后用 < > 来调整选择部分的缩进

 

8.ggVG 全部选择

 

9.set background=dark   :set backgruond=light                //设置背景亮度:

 

10. :syntax on //颜色on

 

11.

s 是最基本的替换命令,象大多数文本操作命令一样,它也可以带一个表示操作范围的前缀。有空了我会给大家讲讲范围前缀的语法和常见的用法。
一个简便的方法是,先在 visual 模式下想办法选中你要操作的范围,然后再输入 s 命令就可以替换了。
比如你要操作一个段落,可以先用 { 或者 [[ 挪到段落的开始处,然后再用 v 进入 visual 模式,然后再用 } 或者 ]] 挪到段落的结尾处,然后再输入 s 命令就可以实现你的目的了。
用view模式选中以后要打":"才成进入替换啊。
它下面就变成 :'<,'>;,你继续输入s就可以了

 

12.set backspace=0/1/2

可以改变backspace键在vim里的行为。具体请:h 'backspace'注意前后有单引号。


13.在vim中,如果我不小心按错了键,跑到文件头或者文件尾了,怎么能快速回到刚才光标所在的位置?

可以用 Ctrl+o 或者用``就可以回到刚才的位置。

 

14.ctrl w            //多窗口之间的移动

 

15.:sp input.file //打开多个文件

 

 

3. 小知识

1.grep -v 取不匹配的行

2.grep -i 匹配时忽略大小写

3.压缩空格,用tr -s ' '

4.ssh远程执行命令的方法为 ssh "commond",注意的是,command中的$需要用/$

5./s 匹配所有空白字符,包括回车,换行,制表。

6.模式匹配中 ^表示行首,$表示行尾

7.tar 命令如果要将某个文件或目录排除  tar cvf test.tar.gz  /tmp/test  --exclude=/tmp/test/test2/test1

 

4.后台与前台执行任务

jobs -l 显示了当前 shell 环境中已启动的作业状态

bg %id 将任务后台执行

fg %id 将任务前台执行

nice 给程序赋予一定的优先级大小

renice 重新赋予程序优先级大小

!$ 刚刚执行得命令

nohup commond & 后台运行commond并且不会因为终端关闭而关闭

5.建立虚拟内存的方法

方法一

--------------------------//分区

fdisk /dev/sda

n

+100

82

w

-----------------------//更新内核分区表

partprobe

-------------------------//设置交换分区

mkswap /dev/sda6

swapon /dev/sda6

------------------------//取消交换分区

swapoff /dev/sda6

------------------------

方法二

------------------------设置交换文件

dd </dev/zero>/tmp/swap bs=4k count=25000

mkswap /tmp/swap

free

swapon /tmp/swap

free

-------------------------取消交换文件

swapoff /tmp/swap

free

--------------------------

6.文件系统相关的命令

dumpe2fs /dev/sda5 //显示超级块信息

lsattr install.log 显示文件属性  A,a,c,D,d,i,j,s,S,e,u

/lib/modules/`uname -r`/kernel/fs //查看linux支持的文件系统
mke2fs -i inodesize
mke2fs -b blocksize
mke2fs -N inodenumber
mke2fs -m number       //number% size to give to root,default is 5%
mke2fs -L label
mke2fs -j                      //make ext3 file system

e2label 查看,创建卷标

fsck -y /dev/sda3 检查ext2文件系统

tun2fs -j /dev/sda3 convert ext2 to ext3

7.挂载相关的命令

/etc/fstab 中的参数

rw,read and write
suid,运行使用suid
dev,允许包括设备文件
exec,允许二进制文件
auto,允许自动判断文件系统类型
nouser,只允许超级用户挂在文件系统
async,异步管理的改变
user   允许一般用户挂载
ro   read only
loop 回环设备挂载
1每天备份 2每2天备份
1是否用fsck检查 0,不检查,1,检查,2,第二个检查的分区。

 

检查当前挂载的文件系统
1. mount
2. /etc/mtab
3. cat /proc/mounts

8.不常用的命令

uptime                                   查看系统负载

pstree                                    查看进程数

newgrp user                           修改user默认用户组

gpasswd -a jack group

useradd -r user/group            创建系统账户或用户组(1<=uid/gid<=499)

/etc/default/useradd               修改useradd命令的默认群组

usermod -L user                     锁定用户密码
usermod -U user                    释放用户密码
passwd -S user                       查看是否锁定

 

arp -i eth0 -s xxx.xxx.xxx.xxx(IP) xx.xx.xx.xx.xx(MAC). 修改MAC地址

/etc/sysctl.conf                         修改系统启动时的内核参数

rpm -ql                                   查询软件包安装的所有文件

rpm -qf                                   根据安装的文件查询软件包
ssh 远程执行一条命令,如何退出   在命令的后面加上0</dev/null;1>/dev/null;2>/dev/null; 是输出设备重定向一下

9.手动配置ip,gateway和dns

~$ sudo gedit /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.23.23
netmask 255.255.255.0
gateway 192.168.23.1

接下来添加DNS
~$ cat /etc/resolv.conf
# Generated by NetworkManager // 需要删除改行,否则每次重启ubuntu之后,/etc/resolv.conf将被清空
~$ sudo gedit /etc/resolv.conf
nameserver 202.106.0.20
~$ sudo /etc/init.d/networking restart
或者
~$ sudo service networking restart
如果配置失败,可以使用手工配置方法:
~$ sudo ifconfig eth0 192.168.23.23 netmask 255.255.255.0 up
~$ sudo route add default gw 192.168.23.1 eth0


10 .一些shell特性


(ls;pwd;date) > tmp.txt

在当前shell中执行
source test.sh
. test.sh
{test.sh}
eval '. test.sh'
在子shell中执行
test.sh
/bin/bash test.sh
(. test.sh;)
exec test.sh


${variable:-word} 若variable已被设置或非空,则带入原来的值,否则带入word
${variable:=word} 若variable已被设置或非空,则带入原来的值,否则将variable设置为word
${variable:+word} 若variable已被设置或非空,则带入word,否则什么都不带入
${variable:?word} 若variable已被设置或非空,则带入原来的值,否则输出word并从shell推出
${variable:offset} 获得变量variable值中位置从offset开始的字串
${variable:offset:length} 获得变量variable值中位置从offset开始长度为length的字串

readonly variable

变量扩展
${var:pos}
${var:pos:len}
${var/Pattern/Replacement}
${var//Pattern/Replacement}

var="what is your name"
echo ${var:3}

declare -r var= readonly var
declare -i number
declare -a  数组
declare -f  函数
declare -x  export

command <&- 关闭标准输入
command >& m 把标准输出重定向到文件描述符m中
command <& 把标准输入重新定向到文件描述如m中
command >filename 2>&1 把标准输出和标准错误一起重新定向到一个文件中

 

你可能感兴趣的:(shell,user,command,bash,任务,networking)