shell脚本介绍以及常用命令
Shell脚本
Shell Script,Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,毕竟它使用了Linux/Unix下的命令。
换一种说法也就是,shell script是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管线命令以及数据流重导向等功能,以达到我们所想要的处理目的
shell和shell脚本的区别:
shell是什么呢?确切一点说,Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚3至是编写一些程序。 Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。
交互式shell和非交互式shell
交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。
shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。
如下:
简单的实现系统巡检的命令:
date
- [root@linuxprobe ~]# date
- 2020年 03月 30日 星期一 :: CST
free –m
- [root@linuxprobe ~]# free -m
- total used free shared buffers cached
- Mem:
- -/+ buffers/cache:
- Swap:
df –Th
- [root@linuxprobe ~]# df -Th
- 文件系统 类型 容量 已用 可用 已用% 挂载点
- /dev/mapper/rhel_linuxprobe-root xfs 18G .8G 14G % /
- devtmpfs devtmpfs 905M .0K 905M % /dev
- tmpfs tmpfs 914M 140K 914M % /dev/shm
- tmpfs tmpfs 914M 8.9M 905M % /run
- tmpfs tmpfs 914M 914M % /sys/fs/cgroup
- /dev/sr0 iso9660 .5G .5G % /mnt
- /dev/sda1 xfs 497M 125M 373M % /boot
写成一个简单的脚本test.sh
#!/bin/bash
date
free –m
df –Th
chmod +x test.sh
./test.sh
- [root@linuxprobe ~]# ./test.sh
- 2020年 03月 30日 星期一 :: CST
- total used free shared buffers cached
- Mem:
- -/+ buffers/cache:
- Swap:
- 文件系统 类型 容量 已用 可用 已用% 挂载点
- /dev/mapper/rhel_linuxprobe-root xfs 18G .8G 14G % /
- devtmpfs devtmpfs 905M .0K 905M % /dev
- tmpfs tmpfs 914M 140K 914M % /dev/shm
- tmpfs tmpfs 914M 8.9M 905M % /run
- tmpfs tmpfs 914M 914M % /sys/fs/cgroup
- /dev/sr0 iso9660 .5G .5G % /mnt
- /dev/sda1 xfs 497M 125M 373M % /boot
shell 脚本中-d,-e,-f的区别
-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真
-w filename 如果 filename可写,则为真
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真
filename1 -nt filename2 如果 filename1比 filename2新,则为真。
filename1 -ot filename2 如果 filename1比 filename2旧,则为真。
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
shell脚本的常用命令
cat,head,tail命令
1.求/etc/passwd文件第20行内容
- [root@linuxprobe ~]# cat -n /etc/passwd | head - | tail -
- avahi-autoipd:x:::Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
rev,tac命令
rev左右颠倒
tac上下颠倒
find命令
常用选项
-name
-type
-user
-nouser
-group
-nogroup
-mtime
-size
可以使用 -o 或者 -a 连接多个条件
可以使用-exec或者-ok来执行shell命令
- find /etc/ -name hosts -exec cp {} /tmp/ \;
如:
- find /var/logs -type f -mtime + -exec rm {} \;
计划任务crond和crontab
*/10 * * * * 脚本|命令
&命令
当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。
xclock -update 1 & 后台运行
nohup命令
如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用 n o h u p命令。该命令可以在你退出帐户之后继续运行相应的进程。 N o h u p就是不挂起的意思( n o hang up)。
该命令的一般形式为: nohup command &
nohup xclock -update 1 &
shell的通配符
*
?
[...]和[!...] [a-z] [0-9] [!a12d]
{..}
echo命令
-e 使转义符生效 如: 解释\t \n含义
-n 不换行输出
字颜色:30—–37
echo -e “\033[30m 黑色字 \033[0m”
echo -e “\033[31m 红色字 \033[0m”
echo -e “\033[32m 绿色字 \033[0m”
echo -e “\033[33m 黄色字 \033[0m”
echo -e “\033[34m 蓝色字 \033[0m”
echo -e “\033[35m 紫色字 \033[0m”
echo -e “\033[36m 天蓝字 \033[0m”
echo -e “\033[37m 白色字 \033[0m”
- [root@linuxprobe ~]# echo -e "\033[31m 红色字 \033[0m"
- 红色字
字背景颜色范围:40—–47
echo -e “\033[40;37m 黑底白字 \033[0m”
echo -e “\033[41;37m 红底白字 \033[0m”
echo -e “\033[42;37m 绿底白字 \033[0m”
echo -e “\033[43;37m 黄底白字 \033[0m”
echo -e “\033[44;37m 蓝底白字 \033[0m”
echo -e “\033[45;37m 紫底白字 \033[0m”
echo -e “\033[46;37m 天蓝底白字 \033[0m”
echo -e “\033[47;30m 白底黑字 \033[0m
- [root@linuxprobe ~]# echo -e "\033[41;37m 红底白字 \033[0m"
- 红底白字
printf命令
- [root@linuxprobe ~]# printf aa
- aa[root@linuxprobe ~]#
- [root@linuxprobe ~]# printf "aa\n"
- aa
格式化输出
- [root@linuxprobe ~]# printf "%s,%s,%d\n" good job
- good,job,
%s 字符串 %d十进制整数
read命令
可以使用read语句从键盘或文件的某一行文本中读入信息,并将其赋给一个变量。如果只指定了一个变量,那么 read将会把所有的输入赋给该变量,直至遇到第一个文件结束符或回车。
如:
赋值
- [root@linuxprobe ~]# read name
- zhang san
- [root@linuxprobe ~]# echo $name
- zhang san
赋多值
- [root@linuxprobe ~]# read firstname lastname
- zhang san
- [root@linuxprobe ~]# echo $firstname $lastname
- zhang san
- [root@linuxprobe ~]# echo $firstname
- zhang
- [root@linuxprobe ~]# echo $lastname
- san
交互式
- [root@linuxprobe ~]# read -p "输入姓名: " name
- 输入姓名: zhang san
- [root@linuxprobe ~]# echo $name
- zhang san
|管道命令
管道(Pipe)实际是用于进程间通信的一段共享内存. 创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机
管道命令的两个作用:
1.管道两边产生两个子进程
2.前一个进程的标准输出和后一个进程的标准输入
注意以下情况不能赋值
echo 123 | read aa
echo $aa
重定向(文件描述符)
文件描述符:进程连接到文件时,获得的一个标记.当进程操作文件时,首先
打开文件 获得打开文件的一个状态,给它一个标记 成为文件描述符
0标准输入
1标准输出
2标准错误输出
> >> 定向符(重定向) >覆盖 >>追加
1> 标准正确输出,文件存在则覆盖,不存在则创建
1>> 标准正确输出,文件存在则追加,不存在则创建
2> 标准错误输出,文件存在则覆盖,不存在则创建
2>> 标准错误输出,文件存在则追加,不存在则创建
&> 标准正确和标准错误输出,文件存在则覆盖,不存在则创建
cat < /dev/sda > /dev/null 测试改变文件描述符
ls >cleanup.out 2>&1
在上面的例子中,我们将 ls命令的输出重定向到 cleanup.out文件中,而且其错误也 被重定向到相同的文件中。
2>&1 标准错误输出定向到标准正确输出
< 输入重定向 后边跟的是文件 > >>
<< here document 后边跟的是一个文本
如下
- [root@linuxprobe ~]# cat >a.txt <<EOF
- > dsadsadsa
- > cxzcxzcxz
- > qwewqewqe
- > EOF
- [root@linuxprobe ~]# cat a.txt
- dsadsadsa
- cxzcxzcxz
- qwewqewqe
[[root@linuxprobe ~]# fdisk /dev/sda <<EOF
> n
>
> +200M
> w
> EOF
<<<here string 后边跟字符串 直接交给文本 如:
- [root@linuxprobe ~]# cat>a.txt <<<kkkkk
- [root@linuxprobe ~]# cat a.txt
- kkkkk
tee命令
tee命令作用可以用字母 T来形象地表示。它把输出的一个副本输送到标准输出,另一个 副本拷贝到相应的文件中。如果希望在看到输出的同时,也将其存入一个文件, 这种情况可以使用tee命令
如:
- [root@linuxprobe ~]# who | tee aa.txt
- root : -- : (:)
- root pts/ -- : (:)
- [root@linuxprobe ~]# cat aa.txt
- root : -- : (:)
- root pts/ -- : (:)
- [root@linuxprobe ~]# find /etc -name hosts | tee bb.txt
- /etc/avahi/hosts
- /etc/hosts
- [root@linuxprobe ~]# cat bb.txt
- /etc/avahi/hosts
- /etc/hosts
sort命令
Linux sort命令用于将文本文件内容加以排序。
sort可针对文本文件的内容,以行为单位来排序。
- sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]
- -b 忽略每行前面开始出的空格字符。
- -c 检查文件是否已经按照顺序排序。
- -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
- -f 排序时,将小写字母视为大写字母。
- -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
- -m 将几个排序好的文件进行合并。
- -M 将前面3个字母依照月份的缩写进行排序。
- -n 依照数值的大小排序。
- -u 意味着是唯一的(unique),输出的结果是去完重了的。
- -o<输出文件> 将排序后的结果存入指定的文件。
- -r 以相反的顺序来排序。
- -t<分隔字符> 指定排序时所用的栏位分隔字符。
- +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
- --help 显示帮助。
- --version 显示版本信息。
- [root@linuxprobe ~]# cat aa.txt
- [root@linuxprobe ~]# sort aa.txt
- [root@linuxprobe ~]# sort -n aa.txt
- [root@linuxprobe ~]# sort -n -r aa.txt 按完整数字排序 降序
- 45root
- [root@linuxprobe ~]# sort -u aa.txt 去掉重复值
- 90
[root@linuxprobe ~]# sort -t: -k3nr /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
never:x:1004:1004::/home/never:/bin/bash
shitianle:x:1003:1003::/home/shitianle:/bin/bash
tom:x:1002:1002::/home/tom:/bin/bash
uniq命令(默认去掉连续的重复值)
Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。
uniq 可检查文本文件中重复出现的行列。
- uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]
- -c或--count 在每列旁边显示该行重复出现的次数。
- -d或--repeated 仅显示重复出现的行列。
- -f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
- -s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
- -u或--unique 仅显示出一次的行列。
- -w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
- [root@linuxprobe ~]# cat qq.txt
- [root@linuxprobe ~]# sort -n qq.txt |uniq -u
- [root@linuxprobe ~]# cat qq.txt
- [root@linuxprobe ~]# sort -n qq.txt | uniq -d
- [root@linuxprobe ~]# sort -n qq.txt | uniq -d -c
grep 命令
linux grep 命令用于查找文件里符合条件的字符串。
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。
- grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
- -a 或 --text : 不要忽略二进制的数据。
- -A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。( 后 N 行)
- -b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
- -B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。(前N 行)
- -c 或 --count : 计算符合样式的列数。(统计匹配次数)
- -C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。(前后N行)
- -d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
- -e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
- -E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
- -f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
- -F 或 --fixed-regexp : 将样式视为固定字符串的列表。
- -G 或 --basic-regexp : 将样式视为普通的表示法来使用。
- -h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
- -H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
- -i 或 --ignore-case : 忽略字符大小写的差别。
- -l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。(显示文件名)
- -L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
- -n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。(显示行号)
- -o 或 --only-matching : 只显示匹配PATTERN 部分。
- -q 或 --quiet或--silent : 不显示任何信息。
- -r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。(递归)
- -s 或 --no-messages : 不显示错误信息。
- -v 或 --revert-match : 显示不包含匹配文本的所有行。(取反)
- -V 或 --version : 显示版本信息。
- -w 或 --word-regexp : 只显示全字符合的列。
- -x --line-regexp : 只显示全列符合的列。(精确匹配)
- -y : 此参数的效果和指定"-i"参数相同。
- [root@linuxprobe ~]# grep ^root /etc/passwd
- root:x:::root:/root:/bin/bash
- [root@linuxprobe ~]# grep halt$ /etc/passwd
- halt:x:::halt:/sbin:/sbin/halt
- [root@linuxprobe ~]# grep -A root /etc/passwd
- root:x:::root:/root:/bin/bash
- bin:x:::bin:/bin:/sbin/nologin
- daemon:x:::daemon:/sbin:/sbin/nologin
- --
- operator:x:::operator:/root:/sbin/nologin
- games:x:::games:/usr/games:/sbin/nologin
- ftp:x:::FTP User:/var/ftp:/sbin/nologin
- [root@linuxprobe ~]# grep -B root /etc/passwd
- root:x:::root:/root:/bin/bash
- --
- halt:x:::halt:/sbin:/sbin/halt
- mail:x:::mail:/var/spool/mail:/sbin/nologin
- operator:x:::operator:/root:/sbin/nologin
- [root@linuxprobe ~]# grep -C root /etc/passwd
- root:x:::root:/root:/bin/bash
- bin:x:::bin:/bin:/sbin/nologin
- daemon:x:::daemon:/sbin:/sbin/nologin
- --
- halt:x:::halt:/sbin:/sbin/halt
- mail:x:::mail:/var/spool/mail:/sbin/nologin
- operator:x:::operator:/root:/sbin/nologin
- games:x:::games:/usr/games:/sbin/nologin
- ftp:x:::FTP User:/var/ftp:/sbin/nologin
- [root@linuxprobe ~]# grep -c root /etc/passwd
cut命令
Linux cut命令用于显示每行从开头算起 num1 到 num2 的文字。
- cut [-bn] [file]
- cut [-c] [file]
- cut [-df] [file]
使用说明:
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
参数:
- -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
- -c :以字符为单位进行分割。
- -d :自定义分隔符,默认为制表符。
- -f :与-d一起使用,指定显示哪个区域。
- -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
范围之内,该字符将被写出;否则,该字符将被排除
- [root@linuxprobe ~]# head - /etc/passwd| cut -d: -f ,
- root:
- bin:
- daemon:
- adm:
- lp:
- sync:
- shutdown:
- halt:
- mail:
- operator:
- [root@linuxprobe ~]# head - /etc/passwd| cut -d: -f -
- root:x:
- bin:x:
- daemon:x:
- adm:x:
- lp:x:
- sync:x:
- shutdown:x:
- halt:x:
- mail:x:
- operator:x:
tr命令
Linux tr 命令用于转换或删除文件中的字符。
tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
- tr [-cdst][--help][--version][第一字符集][第二字符集]
- tr [OPTION]…SET1[SET2]
- -c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
- -d, --delete:删除指令字符
- -s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符
- -t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等
- --help:显示程序用法信息
- --version:显示程序本身的版本信息
字符集合的范围:
- \NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)
- \\ 反斜杠
- \a Ctrl-G 铃声
- \b Ctrl-H 退格符
- \f Ctrl-L 走行换页
- \n Ctrl-J 新行
- \r Ctrl-M 回车
- \t Ctrl-I tab键
- \v Ctrl-X 水平制表符
- [root@linuxprobe ~]# echo helooooooo worddddddd | tr -s [a-z]
- helo word
- [root@linuxprobe ~]# head - /etc/passwd |tr [a-z] [A-Z]
- ROOT:X:::ROOT:/ROOT:/BIN/BASH
- BIN:X:::BIN:/BIN:/SBIN/NOLOGIN
- DAEMON:X:::DAEMON:/SBIN:/SBIN/NOLOGIN
- ADM:X:::ADM:/VAR/ADM:/SBIN/NOLOGIN
- LP:X:::LP:/VAR/SPOOL/LPD:/SBIN/NOLOGIN
- SYNC:X:::SYNC:/SBIN:/BIN/SYNC
- SHUTDOWN:X:::SHUTDOWN:/SBIN:/SBIN/SHUTDOWN
- HALT:X:::HALT:/SBIN:/SBIN/HALT
- MAIL:X:::MAIL:/VAR/SPOOL/MAIL:/SBIN/NOLOGIN
- OPERATOR:X:::OPERATOR:/ROOT:/SBIN/NOLOGIN
wc命令
Linux wc命令用于计算字数。
利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。
- wc [-clw][--help][--version][文件...]
- -c或--bytes或--chars 只显示Bytes数。
- -l或--lines 只显示行数。
- -w或--words 只显示字数。
- --help 在线帮助。
- --version 显示版本信息。
- m 统计字符数。这个标志不能与 -c 标志一起使用。
- -L 打印最长行的长度。
统计/tmp目录下文件的个数(数目中包含目录本身)
- [root@linuxprobe ~]# ls -l /tmp/ |wc -l
split命令
inux split命令用于将一个文件分割成数个。
该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件。
- split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
- -<行数> : 指定每多少行切成一个小文件
- -b<字节> : 指定每多少字节切成一个小文件
- --help : 在线帮助
- --version : 显示版本信息
- -C<字节> : 与参数"-b"相似,但是在切 割时将尽量维持每行的完整性
- [输出文件名] : 设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号
- [root@linuxprobe ~]#cat /etc/passwd >> zz.txt
- [root@linuxprobe ~]# split - zz.txt
- [root@linuxprobe ~]# ls
- zz.txt xaa xae xab xaf xac xag xad xah
eval命令
Linux eval命令用于重新运算求出参数的内容。
eval可读取一连串的参数,然后再依参数本身的特性来执行。
- eval [参数]
- [root@linuxprobe ~]# aa="tail -1 /etc/passwd"
- [root@linuxprobe ~]# echo $aa
- tail - /etc/passwd
- [root@linuxprobe ~]# eval $aa
- never:x::::/home/never:/bin/bash
date命令
Linux date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:
时间方面:
- [root@linuxprobe ~]# date
- 2020年 03月 31日 星期二 :: CST
- [root@linuxprobe ~]# date +%F-%H:%M:%S
- ---::
- [root@linuxprobe ~]# date +%F-%H:%M:%S
- ---::
bc命令
bc 命令是任意精度计算器语言,通常在linux下当计算器用。
它类似基本的计算器, 使用这个计算器可以做基本的数学运算。
常用的运算:
- + 加法
- - 减法
- * 乘法
- / 除法
- ^ 指数
- % 余数
- [root@linuxprobe ~]# bc
- bc 1.06.
- Copyright -, , , , , Free Software Foundation, Inc.
- This is free software with ABSOLUTELY NO WARRANTY.
- For details type `warranty'.
- -
- *
- *
- /
- /
- %
- ^
输入 quit 退出。
小数:
- [root@linuxprobe ~]# bc
- bc 1.06.
- Copyright -, , , , , Free Software Foundation, Inc.
- This is free software with ABSOLUTELY NO WARRANTY.
- For details type `warranty'.
- scale=
- /
- 2.33333
转换进制:
- [root@linuxprobe ~]# bc
- bc 1.06.
- Copyright -, , , , , Free Software Foundation, Inc.
- This is free software with ABSOLUTELY NO WARRANTY.
- For details type `warranty'.
- ibase=;obase=
非交互式:
- [root@linuxprobe ~]# echo "3*3" | bc
||逻辑或 前边命令失败执行后边命令
&&逻辑与 前边命令成功运行后边命令
shell脚本介绍以及常用命令的更多相关文章
- shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...
- Linux centosVMware shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
一. shell脚本介绍 shell是一种脚本语言 aming_linux blog.lishiming.net 可以使用逻辑判断.循环等语法 可以自定义函数 shell是系统命令的集合 shell脚 ...
- redis 介绍和常用命令
redis 介绍和常用命令 redis简介 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统.由于 Redis 的键 ...
- webpack 介绍 & 安装 & 常用命令
webpack 介绍 & 安装 & 常用命令 webpack系列目录 webpack 系列 一:模块系统的演进 webpack 系列 二:webpack 介绍&安装 webpa ...
- Linux的简单介绍和常用命令的介绍
Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...
- Linux中使用crontab命令定时执行shell脚本或其他Linux命令
使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令.例如系统管理员安排一个备份任务使其每天都运行 如何往 cron 中添加一个作业? # crontab –e0 5 * ...
- Linux执行shell脚本方式及区别&命令后台运行
Linux执行shell脚本方式及区别&命令后台运行 http://blog.csdn.net/heqiyu34/article/details/19089951/
- shell脚本语言与linux命令的联系与区别
使用linux肯定是要会使用命令的,就算提供有用户界面,绝大部分功能还是要通过命令行去操作的.而shell脚本语言也是运行在linux上的脚本语言,对于服务器运维人员也是几乎必须要掌握的.而shell ...
- Linux Shell的18条常用命令整理
1. ls: 类似于dos下的dir命令 ls最常用的参数有三个:-a -l -F. ls –a Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了 ...
随机推荐
- OpenCV3入门(十一)图像直方图
1.直方图的概念 灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像元的个数.确定图像像素的灰度值范围,以适当的灰度间隔为单位将其划分为若干等级,以横轴表示灰度级,以纵轴表示每一灰度级具有的像素 ...
- Spring Boot从入门到精通(五)多数据源配置实现及源码分析
多数据源配置在项目软件中是比较常见的开发需求,Spring和Spring Boot中对此都有相应的解决方案可供大家参考.在Spring Boot中,如MyBatis.JdbcTemplate以及Jpa ...
- percona-toolkit 之 【pt-query-digest】介绍
背景: 做为一个MySQL DBA,分析慢查询是日常主要的工作之一,之前一直使用mysqlsla作为分析慢查询的, 因为简单并且也能满足自己对慢查询分析的要求,对于另一个工具pt-query-dige ...
- 国产数据库适配publiccms开源项目
金仓数据库适配 操作说明: 一.在程序的所有实体层添加schema=”public”(这里的public是根据数据库定义的模式) 二.切换数据库,修改配置文件cms.properties里面的cms. ...
- 从0开发3D引擎(十二):使用领域驱动设计,从最小3D程序中提炼引擎(第三部分)
目录 上一篇博文 继续实现 实现"DirectorJsAPI.init" 实现"保存WebGL上下文"限界上下文 实现"初始化所有Shader&quo ...
- 将list集合按指定长度进行切分,返回新的List<List<??>>集合
Lists.partition public class testList { @Test public void test(){ List<Integer> numList = List ...
- springboot自动装配原理回顾、配置文件分析
配置文件 spring boot官方文档 官方外部配置文件说明参考文档 自动配置原理分析 1. SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfigurat ...
- es6中的属性名表达式
代码如下: 问题: 为什么我可以这样给obj1对象添加动态属性? 为什么我最终的结果是只添加了right属性? 解答: 1. 第一个问题解答如下: 我们知道在es5中给对象添加属性有两种方法,一种是通 ...
- 【新功能】MaxCompoute禁止Full Scan功能开放
摘要: 2018年1月10日,MaxCompute禁止Full Scan功能开放.对于新创建的project默认情况下执行sql时,针对该project里的分区表不允许全表扫描,必须有分区条件指定需要 ...
- JDBC概述及编程步骤详解
目录 一.JDBC概述 二.JDBC编程步骤(以MySQL为例) 1.导入jar包 2.加载数据库驱动 3.通过DriverManager获得Connection对象 3.定义SQL语句 4.利用Co ...