(一)Linux基础

Linux基础

@author Zenos

行百里者半九十

Lunix常见指令

# 关机
shutdown

# 重启
reboot

# 切换用户
su userName

# 查看网络信息
ifconfig

# 远程连接
ssh hostName

# 打印变量
echo variableName

#切换目录
cd 

#查看目录
ls

# 创建目录
mkdir 

# 剪切目录/文件
mv dirName destDir
mv fileName destFile

# 复制目录/文件
cp dirName destDir
cp fileName destFile

# 查看当前目录路径
pwd

# 创建文件
touch fileName

# 编辑文件
vim fileName

# 文件权限
# 中间参数('+x')为可执行权限;可写:'+r';可写:'+w';'777':所有权限;
chmod +x fileName 

# 设置文件所有者和文件关联组
# R(注意大写):连同子目录中的所有文件,都更改所有者
chown [-R] 新的所有者[:新的所属组] dirName/fileName

# 打包文件
# z :调用gzip压缩命令进行压缩; c :打包文件; v :显示运行过程; f :指定文件名
tar -zcvf newFileName.tar fileName/dirName

# 解压文件
# z :调用gzip压缩命令进行解压; x :解压文件; v :显示运行过程; f :指定文件名; C(注意大写):指定目录下
tar -zxvf fileName.tar [ -C destDir ]

# 连接文件并打印
cat fileName

# 删除目录/文件
# r :递归 ; f :强制 
rm -rf fileName/dirName
  • vim指令

    • / ,快速查找字符串
    • :行号,快速跳跃到对应行(:set nu 显示行号)
    • 连按两次y,赋值当前行内容,p粘贴到下一行
    • 连按两次d,删除当前行内容。清空光标所在行以下到某一行以内的所有内容,按3次数字再按两次d。
    • 大写锁定+g ,到最后一行;两次g是第一行。
  • 文件内容统计相关命令

    • wc 指令

      用于统计指定文字类型的个数

    • sort 指令

      用于对文件中的数据进行排序

    • cat 命令

      用于查看文件中的内容

    • uniq 命令

      用于查看文件中的数据进行去重后的内容之类(只能对连续的内容进行去重,需要对文件内容先排序才能去重)。

    • head 命令

      用于查看问及暗中前部分指定行数的数据内容。

  • 进程相关信息

    • ps 命令

      显示静态进程信息(-ef 显示全部信息)

    • netstat -anp 命令

      查看端口占用信息(yum在线安装)

    • jps 命令

      JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程

    • top 命令

      动态显示进程信息

    • kill 命令

      杀死进程(-9 强制杀死)

  • Linux三剑客

    • grep 查找命令

      常用于查找符合条件的字符串

      grep 正则表达式 [files]
      
      # 在指定的文件中查找内容
      grep content fileName
      
      • -i 忽略大小写
      • -n 显示该行行号
      • -v 忽略包含指定字符串的内容
      • 经常和管道“|”结合使用,实现数据过滤
    • sed 编辑命令

      自动编辑一个或多个文件、监护俺对文件的反复操作。

      # sed处理后的文件并不会被保存,需要保存可以使用'>destFileName'
      sed [-e<script>][-f<script文件>][文本文件]
      
      # 在指定文件中的第一行之后添加内容
      sed -e 1a\content fileName 
      
      # 删除某行(行号rowNum)
      sed 'rowNumd' fileName
      # 某行以下全部
      sed 'rowNum,$d' fileName
      
      # 查找内容并替换
      sed -e 's/content/newContent/' fileName
      
      # 打印某行(行号rowNum)
      # -n仅显示script处理后的结果
      sed -n 'rowNump' fileName
      
      • 常见动作:
        • a/i 指定行增加内容,i在本行之前,a在后,$是最后一行,插入下标不能是0
        • d 删除
        • s 替换
        • p 打印
    • awk 分析命令

      能处理和分析文本文件

      awk 'scriptExpression' fileName
      
      # 使用","分割,打印每行被分割后的第一、二个字段 
      awk -F, '{print $1,$2}' fileName
      
      # 从脚本文件中读取awk命令
      awk -f command.awk fileName
      
      # 赋值一个用户定义变量 
      awk -vvariable_name=value '{print $1,$1+variable_name}' fileName
      

&和&& 、|和||、>和>>

  • & 表示任务在后台执行,如要在后台运行redis-server

    redis-server &
    
  • && 表示前一条命令执行成功时,才执行后一条命令

    echo 'test1' && echo 'test2'   
    
  • | 表示管道,上一条命令的输出,作为下一条命令参数

    ls | grep keywords
    
  • || 表示上一条命令执行失败后,才执行下一条命令

    cat filename || echo "exec failed !"
    
  • ‘>’ 表示追加内容

    echo 'content' > filename.txt
    
  • ‘>>’ 表示覆盖原有内容

     echo 'content' >> filename.txt
    

Shell编程

Shell是一个命令行解析器,同时还是一个脚本编程语言。

shelldemo

# 指定解析器
#!/bin/bash
# 输出hello
echo "hello"

变量

系统变量
  • $HOME

    家目录

  • $PWD

    当前路径

  • $SHELL

    默认解析器

  • $USER

    当前用户

  • $PATH

    环境变量

自定义变量

bash中默认定义变量为字符串类型。定义变量时注意不要使用空格。

# 变量定义
variable_name=...

# 变量删除
unset variable_name

# 只读变量
variable_name=...
readonly variable_name

# 整型
declare -i variable_name=...

# 字符串
string_name="" / string_name=''
# 获取子串(从1开始截取四个)
variable_name=${string:1:4}
# 获取长度
variable_name=${#string_name} 
# 查找a、b的出现位置,获取第一个出现的位置
variable_name=`expr index "$string" ab`

# 数组
array_name=(value0 value1 value2 value3)
# 数组读取
variable_name=${数组名[下标]}
# 取得数组元素的个数
length=${#array_name[*]}
# 取得数组单个元素的长度
length=${#array_name[n]}

流程控制

  • 条件语句

    if [ "$a" -gt "$b" ]  # 流程控制中的判断语句要使用对应的逻辑运算符
    then
        command1 
        command2
        ...
        commandN 
    fi
    
  • 循环语句

    # for
    for var in item1 item2 ... itemN
    do
        command1
        command2
        ...
        commandN
    done
    # while
    while condition
    do
        command
    done
    

函数

[ function ] funname [()]

{

    action;

    [return int;]

}
funname param1 param2 ...
函数参数

在Shell中的函数体内部,常常通过 $n 的形式来获取参数的值。
image-20231208104216623

附录

参考文章链接:

  • 37
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值