linux基本命令

linux基本命令

文章目录

    • linux基本命令
      • shell 编程
        • 1.hello world!
        • 2.变量
        • 3.字符串
        • 5.注释
        • 6.传参
        • 7.shell 基本运算符
        • 8.echo
        • 9.流程控制
        • 10.函数
        • 11.重定向
        • 12.文件包含
        • 13. Shell test命令
          • 比较
          • 2. 文件测试(command + 文件名)
          • 3. test用法
            • 字符串测试
        • 14 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.字符串

单引号中的任何字符都会原样输出,其中变量是无效的
双引号中可以有变量,可以有转义字符

  1. 拼接字符串

    you_name=“runboo”
    greeting=“hello, ${your_name} !”
    
  2. 获取字符串长度

    string=“adcd” 
    echo ${#string}
    
  1. 提取字符串

    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.流程控制

  1. if语句

    if condition
    then
    	command1
    fi
    
  2. if else

     	if condition
    

    then
    command1
    command2

    else
    commandN
    fi

  3. if else if esle

     	if conditond1
    

    then
    command1
    elif condition2
    then
    command2
    else
    commandN
    fi

  4. for

    for var in item1 item2 …… itemN
    do
    command1

    commandN
    done

  5. while

     	while condition
    

    do
    command
    done

  6. 无限循环

     while:
     do
     	command
     done
    

    while true
    do
    command
    done
    for(( ; ; ))

  7. until condition为true时结束循环,跟while相反

     	until condition
    

    do
    command
    done

  8. case 枚举模式

    case value in
    value1)
    command 1
    command N
    ;;
    value2)
    command 1
    command N
    ;;
    esac

  9. break 符合条件,跳出循环

  10. 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. 比较
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
字符串测试
  1. = 等于
  2. != 不相等
  3. -z 字符串的长度 zero
  4. -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


你可能感兴趣的:(shell)