Vi编辑器常用命令以及Shell编程

配置(或修改)网络:
vi /etc/sysconfig/network-scripts/ifcfg-eth0

重启网络(网卡):
/etc/init.d/network restart
service network restart

设置网卡:
setup

修改 mv
编辑 vi
重启系统 reboot

查看当前所在文件夹: /pwd
查询系统运行内存 df -h
查看 ls

创建有内容的文本文档 :echo 123456789 > 123.txt
拷贝 cp 11.txt 22.txt
返回上一级目录 cd …/
删除 rmdir /s/q 文件

添加空文件 touch
添加文件内容 echo

行首 ^或0
行末 $
文件顶部 gg
文件底部 G
指定文件行数 n+gg(G)或:n
向上翻页 Ctrl + b
向下翻页 Ctrl + f

{ 上一段
} 下一段
d 移动删除光标
dd 删除光标所在行
D 删除至行尾

从光标位置删除到单词末尾 dw
从光标位置删除到单词开头 d0
从光标位置删除到段落尾 d}
从光标位置向下连续删n行 ndd

vim 文件名 + 会定位到文件末尾
vim 文件名 +2 会定位到文件第二行

上下左右 kjhl
前后 bw
文件顶部 gg
文件末尾 G

屏幕顶部 H
屏幕中间 M
屏幕底部 L

yum install -y tree 安装tree插件
yum search rxzx
yum install -y lrzsz

reboot重启
set nu 行号

---------用户权限--------
exit 退出当前用户
vi /etc/passwd 进行用户权限修改
su 用户名 切换用户
useradd -g 组名 用户名 创建新用户
userdel 用户名 删除用户
userdel -r 用户名

--------chown -R U用户名 : G组名 T文件名 :将 T 文件 修改为 U所属用户 G所属组

halt 关机

free -h 查询显示内存使用
df -h 查询磁盘空间
top 查询cpu内存等使用情况

du -h 查看某一目录所占空间大小
ps aux 查询进程详细信息

-------cut : 《 cut根据条件从命令结果中提取对应内容》
-c (第几个字符)
-d (指定分隔符)
-f (显示第几段内容)

-------sort : 《sort可针对文本文件的内容,以行为单位来排序》
-u (去重)
-n (数值从大到小排序)
-r (倒叙)
-t (指定分隔符)
-k (根据哪一列排序)

--------wc : 《显示指定文件字节数, 单词数, 行数信息》
-w (单词数)
-c (字节数)
-l (行数)

-------uniq : 《uniq 命令用于检查及删除文本文件中重复出现的行,一般与 sort 命令结合使用。》
-c (计数)
Cut
按照字符提取 head -2 1.txt | cut -c 5
指定分隔符 head -2 1.txt | cut -d ‘:’ -f 1,2
Sort
文本排序 sort 文件名
文本排序反转 sort -r 文件名
文本排序去重 sort -u 文件名
数值按大小排序 sort -n 文件名
指定分隔符、指定排序列 sort -t ‘分隔符’ -k2nr 文件名
Wc
查看文件基本信息 wc 文件名
查看文件行数 wc – l 文件名
查看文件单词数 wc -w 文件名
查看文件字节 wc -c 文件名
查看多个文件信息 wc 文件1 文件2 文件3
Uniq
与sort连用
排序、去重 cat 5.txt | sort | uniq
排序、去重计算总数 cat 5.txt | sort | uniq -c

Tee
数据定位到多个文件 cat 5.txt | tee a.txt b.txt c.txt
Tr
小写i 替换成 echo “itheima” | tr ‘i’ ‘I’
把 HELLO 转成 小写 echo “HELLO” |tr ‘[A-Z]’ ‘[a-z]’
删除数字 echo ‘abc1d4e5f’ | tr -d ‘[0-9]’
Split
按照文件大小切分 split -b 10k 被切分的文件
按照行数进行切分 split -l 1000 被切分的文件
Awk
模糊查询 awk ‘/zhangsan|lisi/’ score.txt
按照分隔符拆分,根据角标显示

awk -F ‘,’ ‘{print $1, $2, $3}’ 1.txt
按照分隔符拆分,根据角标显示并指定分隔符
awk -F ‘,’ ’ {OFS="==="}{print $1, $2, $3}’ 1.txt
支持函数 awk -F ‘,’ ‘{print toupper($2),$3*100}’ 1.txt
If判断语句
awk -F ‘,’ ‘{if($4>60) print $1, $4, “及格”; else print $1, $4, “不及格”}’ score.txt

Shell编程

Shell 脚本的解释器
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh

脚本的编写规范
首行描述解释器 #!/bin/bash
执行脚本的三种方式
1、bash 脚本名称 脚本参数
2、 sh 脚本名称 脚本参数
3、 ./脚本名称 脚本参数【./脚本名称之间没有空格】【chmod 777 脚本名称】

变量的声明
变量名=”值”【中间不能有空格】
变量名要求 字母或下划线或数字(开头不能是数字)构成
变量的引用
使用$ 或 ${}引用变量
删除变量 只读变量
删除 unset 变量名
只读 readonly 变量名
字符串使用
双引号(””):内部可以使用变量
单引号(‘’):内部所有的原样输出
反引号(``):表示可执行

字符串长度及截取
长度: echo ${#skill}
截取: echo ${str:2:2} 【在第二个字符开始截取截取两位】

脚本参数传递
bash 脚本名 参数1 参数2 参数3 。。。。。。
脚本内
$0 脚本名称
$1 参数1
$2 参数2
$n 参数n
$* 所有参数
$# 参数的个数

算数运算符
加法计算 expr 2 + 2
乘法计算 expr 2 \* 2
流程控制if
if [ $a -gt 10 ];then
代码1
elif [ $a -lt 10 ];then
代码2
else
代码3
fi
关系运算符
大于 小于 大于等于 小于等于 等于 不等于
-gt -lt -ge -le -eq -ne

循环
For 循环
For aa in XXXX
do
循环体
done
While循环
While 条件 ;
do
循环体
done

跳出循环
跳出所有循环 break
跳出当前循环,进入下一次循环 continue

case ()
case 值 in
结果1)
结果1对应的操作;;
结果2)
结果2对应的操作;;
结果3)
结果3对应的操作;;
esac

接收控制台数据
read 变量名

函数的使用
函数声明: [function] 函数名(){
函数体
$参数1
$参数2
$参数3
}

函数调用
	函数名   参数1  参数2  参数3

数组
数组声明: 数组名称=(元素1 元素2 元素3 元素4)
数组的使用
单个使用 echo 数组名[角标] 【角标从0开始】
遍历数组 for var in ${my_arr[*]}
do
echo $var
done

文件加载
在文件中添加 . 脚本名称 或者 source 脚本名称
#!/bin/bash
source ./test1.sh # 加载test1.sh 的文件内容

你可能感兴趣的:(常用命令,Linux,Linux常用命令,linux,shell)