linux基本命令
文章目录
shell 编程
1.hello world!
#!/bin/bash
echo “hello world!”
2.变量
you_name=“runboo”
echo $you_name
echo ${you_name}
大括号是增加解释器的识别边界for file in
ls /etc
for file in $(ls /etc)
readonly 只读变量,不可被修改
unset variable_name 删除变量
被删除后不可被再次使用,也不能删除只读变量
3.字符串
单引号中的任何字符都会原样输出,其中变量是无效的
双引号中可以有变量,可以有转义字符
-
拼接字符串
you_name=“runboo” greeting=“hello, ${your_name} !”
-
获取字符串长度
string=“adcd” echo ${#string}
-
提取字符串
1. string=“runoob is a great site” echo ${string:1:4}
4. 查找字符串
```shell
string=“runboo is great site”
echo expr index "$string" io
```
#### 4.数组 ####
```shell
1. array_name=(value0 value1 value2)
2. value=${arry_name[n]}
3. echo ${arry_name[@]} 获取数组所有元素
4. 获取数组长度
length={#arry_name[@]} //数组元素的个数
或者 length={#arry_name[*]}
length=${#array_name[n]} //数组元素的长度
5.注释
1. 单行注释
\# echo “hello workld”
2. 多行注释
:<<EOF
内容
EOF
或者
:<<`
内容
`
:<<!
内容
!
6.传参
> 命令或者文件名命令或者文件名命令或者文件名0 命令或者文件名 > $1 第一个参数 > $第二个参数第二个参数第二个参数2 第二个参数 > $# 传给脚本的参数个数 > $所有参数所有参数所有参数* 所有参数 $* “1 2 3” > $$ 脚本的当前进程ID > $! 后台运行的最后一个id > $@ 所有参数 $@ "1" "2" "3" > $- 显示shell使用的当前选项,与set功能相似 > $? 最后命令的退出状态,0表示没有错误,其他值表示有错误
7.shell 基本运算符
expr $a + $b
expr $a - $b
expr $a \* $b
expr $b / $a
expr $b % $a
[ a == b ]
[ a -eq b ] ==
[ a -ne b ] !=
[ a -gt b ] >
[ a -lt b ] <
[ a -ge b ] >=
[ a -le b ] <=
布尔运算符
[ ! false ] 非
[ a -lt 20 -o b -gt 100 ] 或
[ a -lt 20 -a b -gt 100 ] 与
逻辑运算符
[[ $a -lt 100 && $b -gt 100 ]]
[[ $a -lt 100 || b -gt 100 ]]
字符串运算符
[ a = b ] 两个是否=
[ a != $b ] 两个是否!=
[ -z $a ] 是否为0 为0 返回TRUE
[ -n “$a” ] 是否为0 不为0 返回TRUE
[ $a ] 是否为空 不为空 返回true
[-r $file] 文件是否可读
8.echo
1. echo -e 显示转义字符
2. echo '$name\"' 不开启转义
3. echo `ls -l` 显示命令执行后的结果
4. prinrf 可以进行字符串格式化
5. echo > file 覆盖文件
6. echo >> file 追加进文件
9.流程控制
-
if语句
if condition then command1 fi
-
if else
if condition
then
command1
command2
…
else
commandN
fi -
if else if esle
if conditond1
then
command1
elif condition2
then
command2
else
commandN
fi -
for
for var in item1 item2 …… itemN
do
command1
…
commandN
done -
while
while condition
do
command
done -
无限循环
while: do command done
while true
do
command
done
for(( ; ; )) -
until condition为true时结束循环,跟while相反
until condition
do
command
done -
case 枚举模式
case value in
value1)
command 1
command N
;;
value2)
command 1
command N
;;
esac -
break 符合条件,跳出循环
-
continue 符合条件,跳出当前这次循环
10.函数
[function] funname[()]
{
action;
return int;
}
11.重定向
command > file 输出重定向
command < file 输入重定向
commanmd >> file 追加重定向
n > file 将文件描述符为n的文件重定向到file中
n >> file 将文件描述符为n的文件追加到的方式重定向到file
n >& m 输出文件m于n合并
n <& m 输入文件m于n合并
<< tag 将开始标记tag和结束标记直接的内容最为输入
command1 < infile > outfile 从infile中读取内容,输出写入到outfile中
command > file 2&1
command >> file 2&1
将stdout和stderr合并重定向到file中
command >/dev/null 将输入丢到垃圾桶中
command > /dev/null 2&1 禁止输出
注意:文件描述符0 stdin 1 stdout 2 stderr
12.文件包含
. filename
或
source filename
13. Shell test命令
1. -eq 等于 equal
2. -ne 不等于 neq/no equal
3. -gt 大于 greater then
4. -ls 小于 less then
5. -ge 大于等于greater then or equal to
6. -le 小于等于 less then or equal to
2. 文件测试(command + 文件名)
1. -e 文件存在
2. -r 文件存在且可读
3. -w 文件存在且可写
4. -x 文件存在且可执行
5. -s 文件存在且至少有一个字符
6. -d 文件存在且为目录
7. -f 文件存在且为普通文件
8. -c 文件存在且为字符文件
9. -b 文件存在且为块文件
-a 于
-o 或
!非 可以用于将测试条件连接起来
需要用[ ]括起来。
3. test用法
num1=100
num2=200
if test $num1 -eq $num2
then
echo '相等'
else
echo '不相等'
fi
字符串测试
- = 等于
- != 不相等
- -z 字符串的长度 zero
- -n 字符串的长度不为0 no zero
//字符对比
num1="ru1oob"
num2="runoob"
if test $num1 = $num2
then
echo "相等"
else
echo "不相等"
fi
//数字对比
num1=100
num2=200
if test $num1 -eq $num2
then
echo '两个数相等'
else
echo '连个数不相等'
fi
//文件对比
if test -e ./bash
then
echo '文件已存在'
else
echo '文件不存在'
fi
//逻辑操作符
if test -e ./notfile -o -e ./bash
then
echo '至少有一个文件存在'
else
echo '两个文件不存在'
fi
if [ $(ps -ef | grep -c "ssh" ) -gt 1 ]
then
echo "true"
fi
#括号于命令之间需要用空格隔开
14 linux 基础命令
1.chgrp:更改文件属性
-r:递归修改
2.chown:更改文件属主
3.cp: 复制文件
-a 相当于-pdr
-i 如存在,覆盖时先询问
-p 连同文件的属性一起复制过去
-r 递归复制
4.rm 删除
-f 强行删除,不警告
-r 递归删除
-i 删除前询问
5.mv 移动,修改
-f 强制
-i 询问
-u 文件存在,且比较新,才会升级
6.more,less
space:向下翻页
enter:向下翻行
/字符:搜索字符n,N搜寻下一个
q 离开
7.head 查看头几行 tail查看未几行
-n 显示几行
-f 持续更新打印,文档新增的字符
8.useradd 添加用户
userdel 删除用户 -r 连目录一起删除
passwd 修改口令
groupadd 添加组
groupdel 删除组
groupmod 修改组
newgrp root 切换用户组
9.磁盘管理
df 列出文件系统的整体磁盘
du 检查磁盘空间使用量
fdisk 用于磁盘分区
10.磁盘挂载与卸载
mount 装置名称 挂载点
umount 卸载
11.yum 用法
yun check-update 列出所有的可更新的软件
yum update 更新所有的软件
yum install package 安装软件
yum update package 更新软件
yum list 列出可安装的软件
yum remove package 删除软件
yum search keyword 查找软件
yum clean packages 清除缓存
更新yum 源
1.备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.下载对应的yum源
wget http://mirrors.163.com/.help/CentOSXX-Base-163.repo
mv CentOSXX-Base-163.repo CentOS-Base.repo
umount 卸载
11.yum 用法
yun check-update 列出所有的可更新的软件
yum update 更新所有的软件
yum install package 安装软件
yum update package 更新软件
yum list 列出可安装的软件
yum remove package 删除软件
yum search keyword 查找软件
yum clean packages 清除缓存
更新yum 源
1.备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.下载对应的yum源
wget http://mirrors.163.com/.help/CentOSXX-Base-163.repo
mv CentOSXX-Base-163.repo CentOS-Base.repo