Linux Shell编程基础

在学习Linux BASH Shell编程的过程中,发现由于不经常用,所以很多东西很容易忘记,所以写篇文章来记录一下

ls   显示当前路径下的文件,常用的有 -l 显示长格式  -a 显示所有包括隐藏  -R 显示文件夹内的内容  -c 按照最后一次修改时间排序  -t 按照修改时间排序输出

echo 显示  -n 不换行

touch  创建一个文件,或者修改文件的访问时间和修改时间 touch -a file 只更改访问时间 -m之更改修改实际那 -t指定特定时间

cp  复制文件 -a 保留文件的属性 -f强行复制,如存在则覆盖  -i 存在覆盖则提示  -r 复制文件夹中所有存在的内容  -u 只有源文件更新的情况下复制

mv  移动和重命名 mv a b 将a文件移动到b的路径

rm 删除 -i 删除时提示  -r 删除目录及其中内容  -f 不提示

file 查看文件类型

cat 查看文件内容

more 查看文件内容,满一页后暂停, 空格和z下一页 d下半页  q退出

less  增强版的more  b可以向后翻页 u可以向后翻半页

tail 显示后几行的内容  tail -f可以动态刷新 很常用 tail -n指定行数

head 显示前几行的内容,和tail对应

ps 显示进程  ps aux 查看所有进程  常用 显示的比较多,一般配合 管道来查找

top 实时监控进程 命令  u 查看某个用户的进程  k 结束指定进程 q 退出

kill pid 结束进程  kill -9 pid 强制结束

killall 进程名   不用输入pid 直接输入进程名来进行结束进程

mount 挂载   mount -t type device directory    type是磁盘类型  device是设备文件 directory 是挂载地址 经常用 一般是通过fdisk -l找到设备地址,然后进行挂载

umount 卸载  卸载挂载点或者设备文件  如果有程序使用则无法卸载 用lsof 来查看那些进程正在使用

df 查看磁盘使用情况

du 查看那特定目录下文件的磁盘使用情况 一般用du -h 直观一些

sort 排序  sort -n 按数字排序 -r 反序

cut 分割   cut -f1 -d‘:‘  按:分割,取第一列

grep 搜索 一般配合管道使用   cat tt|grep number   -n添加行号  -c有几个匹配的

tar  压缩和解压     常用的是tar 和tar.gz文件    打包     tar -cvf      拆包  tar -xvf    对于tar.gz  打包  tar -zcvf  拆包 tar -zxvf

export 将变量作为环境变量,想要重启不会消失,可以写在用户家目录的.bash_profile 中,写在/etc/profile则对所有用户都有效

unset 删除环境变量

array=(1 2 2 3 4) 用圆括号括起来作为数组 ${array[*]}显示所有 ${#array[*]} 显示个数

useradd 添加用户 -u 指定uid -g指定组名或gid       userrm 删除用户  usermod 修改密码   passwd 修改自己的密码     相关文件  /etc/passwd  /etc/shadow

groupadd  添加组  groupmod 修改组   grouprm 删除组        相关文件/etc/group

chmod 修改文件权限       chmod 666 a.sh  每个数字代表rwx权限   第一个数字是拥有着第二个是组第三个是其他,666就是所有人都用用写和执行的权限

chown 修改文件所有者   chgrp 修改文件所属组

fdisk磁盘管理工具

yum 下载安装工具   一般  yum install xxx  查看已安装的包   yum list installed      卸载 yum remove  xxx   彻底卸载  yum erase xxx

rpm 安装rpm包  与yum功能类似

date 日期 一般用   date +%y%m%d

who查看用户信息

双引号  将其中的信息作为字符串 ,除了转义符 \   单引号 反引号 和$变量

反引号  将其中的文本作为命令执行

单引号      将其中的所有东西作为字符

> 输出重定向 覆盖   >>输出重定向 追加

<输入重定向

|管道  前面的输出作为后面的环境

$[]  进行数学运算只支持整数

bc  具体不描述,支持小数运算

$? 上一条命令的运行结果 0是成功

exit 0  脚本退出并返回状态码

if语句依照如下结构

if command;then
    xxxxxx
fi

if command;then
    xxxxxx
elif  command; then
    xxxxxxx
else
    xxxxxxx
fi

test 由于if验证的只能是命令,所以引入test  [ $a -gt $b ] 用方括号括起来可以作为判断条件,用于文件则是[ -f "$file"]  其中f是文件  e是存在  d是文件夹 等等

判断字符串只有   [ $str1 = $str2]   = != > < -z -n

(())  双圆括号支持更犀利一些的算术运算  如++ -- **  & | 等    [[]] 支持更犀利的字符串比较,比如正则表达式

case命令

case  $param in
aaa) xxxxxxxxx;;
bbb) xxxxxxxxx;;
*)    xxxxxxxxx;;
esac

for 循环控制 while 循环控制  until循环控制 比较简单,不再赘述

break n 退出n层循环 continue 重新回到n层外的循环

read 读取输入 -p 后面跟提示   read -p "please input a and b"  a b  将用户输入读入并存在a b中  -n 指定超时时间

local temp 在函数中声明临时变量temp

$0 脚本名 $#参数数量 $1 $2 .. 第n个参数  $* 所有参数作为一个    [email protected] 所有参数

shift 向前移动参数

Ctrl+z暂停当前任务

Ctrl+c退出任务

Ctrl+d 结束输入

at 指定命令运行时间 atq查看已有  atrm删除

cron指定命令运行周期

目前先写这么多,用到了在进行添加

时间: 2024-12-11 20:33:08

Linux Shell编程基础的相关文章

Linux Shell编程基础---国际象棋棋盘

这两天在学习一些shell编程的知识,在做到一道国际象棋的题目时,觉得有些意思,就将它写成博客. 先来看看国际象棋棋盘长啥样: 仔细想了会棋盘的分布规则,这个问题肯定有很多思路,我自己想到的是规则是1.将棋盘行数作为一个大循环,循环8次,每次循环根据行号的奇偶来确定格子颜色的次序:2.在单个行中,循环8次并判断列的奇偶数来确定打印颜色以上思路能够打印出最简单的棋盘,但是shell中一个空格的显示形状并非正方形,而且是空格的高度大于宽度.因此需要在单个棋盘的行的打印循环外在加一层控制打印空格行数的

Linux shell编程基础笔记

1.shell变量本地变量:a=1    (等号两边不能出现空格)只读变量:readonly 变量名=变量值    (在使用过程中不能更改)声明变量:linux给变量赋值时默认是字符或字符串型,如果需要数值运算,需要事先声明declare 参数 变量名[=变量值]declare的参数: -a:数组 -i:整型 -r:只读设置整型变量,除了用declare -i声明以外,还可以:a=$(($a+1)) or a=$[a+1]清除变量:unset 变量名(只读变量无法清除)访问shell变量:set

linux——shell编程基础

编程语言有两类 强类型:如C语言.数据具有其特定的类型,先声明定义后才能使用.数据运算时必须符合类型要求(如不能把字符串类型数据直接与整型数据做算数运算) 弱类型:如shell.数据默认为字符型,不应事先声明.数据运算时会自动转换数据类型. 变量 变量命名规则: 变量由字母.数字.下划线组成. 不能有数字开头 变量类型:本地变量.环境变量.局部变量.特殊变量(内置).参数变量.只读变量. 注意如果变量没有定义在shell的配置文件,那么他的生命周期只是当前shell进程,一退出就失效. 作用域示

[Linux]shell编程基础/linux基础入门

声明执行程序 #!/bin/bash 用来告诉系统使用/bin/bash 程序来执行该脚本.譬如python 脚本,可以这样写: #!/usr/bin/python 赋值和引用 赋值公式: 变量名=值 取一个变量的值的时候,需要在变量名前面加上$ 符号,譬如: var="hello bash" echo $var 如果出现拼接,而且又没有空格为分隔符,这个时候就需要使用大括号将变量括住,如: num=3 echo "this is the ${num}th" 其输出

Linux shell编程 基础正则表达式

Linux学习之二十一-shell编程基础

Shell编程基础 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.Shell 脚本(shell script),是一种为 shell 编写的脚本程序 Shell 编程跟 java.php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了 Linux中的shell种类(shell解释器的种类

Linux shell脚本基础学习详细介绍(完整版)一

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Linux 脚本编写基础◆1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执

Linux shell脚本基础学习详细介绍(完整版)二

详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续. Linux shell脚本基础已经被分成好几个部分了,这里对控制流程的内容也就马上讲完了,这是最后一部分关于here document,这里举例稍微有点复杂,我们慢慢来分析这个复杂Linux shell脚本. 6. Here documents 当要将几行文字传递给一个命令时,here docu

shell编程基础一(多种方法求值1+2+..+100)

#SHELL编程基础一(多种方法求值1+2+..+100)##为什么要学好shell shell脚本语言是实现linux系统管理及自动化运维所必备的重要工具,linux系统的底层及基础应用软件的核心大都涉及shell脚本的内容. 每一个合格的linux系统管理员或运维工程师,都需要能够熟练地编写shell脚本语言,并能够阅读系统及各类软件附带的shell脚本内容. 只有这样才能提升运维人员的工作效率,适应日益复杂的工作环境,减少不必要的工作,从而为个人的职场发展奠定较好的基础.# 本文的宗旨是熟