Linux操作系统总结
2018-01-10 13:24
225 查看
Linux{
Linux是一款广泛应用于服务器的操作系统
操作系统是硬件基础上的第一层软件 应用软件需要安装到操作系统上
Linux 的特点
安全 免费开源
多用户 完全的 一个用户的操作不会影响到其他用户
稳定,快速 设计
java 大数据环境都默认支持Linux
Linux的版本[
内核版 就像手机的安卓系统一样 内核一般无法直接使用
发行 各个厂商针对Linux的内核会发布自己的发行版
redHat 好 贵
centos6.5 好 不花钱
Ubuntu 图形化 PC 针对Ubuntu软件多
查看Linux的内部{
linux 万物皆文件
/ 根目录
/下有个etc 存储配置文件
/home 家目录 每个用户有一个文件夹
}
使用客户端来连接Linux{
由于Linux在服务器上 一般不能直接在上面操作
还有在上面操作也比较不方便
所以有各式各样的客户端软件用来连接Linux
连接方法[
要知道Linux的ip地址 用户名 密码
虚拟机和本地机 要能ping通
虚拟机开机默认是不启网卡
]
修改NAT 连接方式 [
NAT方式是给虚拟机一个块独立的网卡 稳定 ip不变
鼠标在虚拟机上右键- 》设置-》网络适配器 -》右侧选 自定义 vmnet8 保存
虚拟机-》编辑-》虚拟网络编辑器-》更改设置-》讲net8改成NAT模式 应用 确定退出
很多情况下改为 并没有生效 可以先改成桥接或其他 -》保存 然后再改回 -》保存
]
}
Linux的命令{
命令查询网址 http://man.linuxde.net/
cd ..回到上一层目录
cd ~回到家目录
cd / 回到根目录
绝对路径和相对路径
绝对路径是完整的路径
相对路径是相对与当前目录的路径
查看目录
ls -a 查看目录包括隐藏的
ls -R 级联显示文件
ll 详细查询 显示文件时间等
ll -h 显示具体的文件大小
创建文件夹
mkdir
mkdir -p 创建多层文件夹
删除命令
rm 删除文件
rm -r 删除文件夹
复制命令
cp 复制的路径按照当前所在层写 相对路径或者绝对路径
cp -r复制目录
cp -v复制文件到文件夹
移动命令 可以改名
mv
创建文件 Linux不分扩展名
touch 可以更新已存在的文件名
vim编辑器
i 进入编辑模式写入
写完按esc返回上层
:wq 保存并退出
:q! 强制退出
:set number 显示行号
查看文本内容
cat a>b 将a的内容给b
cat a>>b 将a的内容追加给b
pwd 显示当前路径
归档压缩
tar -c是压缩
tar -x是解压缩
-f 文件
-v 显示
包含z是压缩 不包含z是归档
压缩 tar -czvf 压缩后的文件名 要压缩的文件
解压缩 tar -xzvf 目标名
tar -xzvf 目标名 -C 目标目录
命令可以一起使用 例如 -wq 保存并退出
-cf 压缩文件
用户的操作{
只有管理员才能创建用户
useradd 用户名
passwd 用户名 设置密码
userdel 用户名 删除用户 正在登陆的用户不能删
userdel -f 用户名 强行删除
su 切换用户 默认切换到管理员
虽然用户删除 但是家目录还在
-rf 强删一个用户 包括家目录也删除 相当于清空与此用户的一切
会一步一步问你是否要删除 回答yes no确定是否删除
}
和用户组相关的文件{
显示用户相关信息 500以后才是自己创建的
/etc/passwd 密码
/etc/group 组
/etc/shadow
用以下的命令来搜索浏览用户
cat 浏览全部的组
tail 显示后十个组
grep 用户名 要搜的路径(/etc/group) 搜索该用户的分组编号
more 按百分比显示
}
组的操作{
只有管理员才能创建组
groupadd 组名 添
groupdel 组名 删
groupmod -n 改名
改后的名字 要改的组名
-h 帮助
将用户添加到组中 usermod -G 用户名
}
权限{
r 读 代表值为4
w 写 代表值为2
x 执行 代表值为1
一共有十个 - 第一个代表文件类型 例如 d
前三个- :文件所有者
中间三个-:用户组
最后三个-:其他者
和反射中修饰符的代表值一样 固定的数字代表固定的组合
可以使用三个数字来表示755
}
权限的调整{ change
1 调整文件所属用户/组 要有root权限
chgrp 组名 文件名
chown 改用户 文件名
chown 用户:组 文件名
chmod 修改用户的权限
[
1 通过数字来修改权限
2 可以通过具体的文件所属和权限修改
+ 代表添加权限 -代表删除权限
具体权限 x w r
执行 写 读
可执行文件变绿
文件所属 u g o a
u:user 文件所有者
g:group 文件所属组用户
o:other 其他用户
a:all 所有用户
]
如: chmod u+r xx.txt
chmod 777 xx.txt
}
shell{
Shell 用来和系统内部进行交互 可以理解为是一种语言
灵活 快捷 方便
Shell hello world[
echo 用来输出语句 相当于syso
]
Shell文件[
1 #!/bin/bash 什么shell版本 在文档第一行写 用来执行此文件
2 # 符号是 注释
3 ./文件名 执行文件中的脚本 必须有x权限才能执行
4 bash 文件名 强行 执行脚本
]
echo $PATH :显示全局变量路径
shell中的变量 {
变量名变成青色 变量值为红色
1直接使用字母为变量命令
2使用等号赋值 注意变量和等号之间不可以有空格 // str="aaa"
3使用$变量名 ${变量名} 引用变量名 用$来引用变量
echo $变量名
array=(1 2 3 4) //数组定义
array[0]=32 //更改下标为0的元素
echo ${#array[*]} // 输出数组的长度
echo ${array[0]}"------" //输出下标为0的元素
echo ${array[*]} // 输出所有的元素
}
test{
-eq 相当于=
-ne 相当于!=
-gt 相当于>
-gte 相当于大于等于
-lte 相当于小于等于
-not 非
-mod 求模
-lt 相当于<
}
例如:
if test $a -eq $b
if [ $a -gt 5 ]; #注意 []内部两端要有空格 if后面有分号
then echo 要执行的语句
else echo 要执行的语句
fi 以fi结尾if语句
do{
}
done 结尾do语句
if [];
then echo
elif []; then echo // elif后面有分号
elif []; then echo
...
else
fi
read相当于java中的Scanner
-p 相当于print 提示
例如:read -p "input age" age //提示信息为input age 然后输入年龄
echo $age
case 变量 in
选项1) 要执行的语句;; //注意 两个分号
*) default //表示默认的
esac //表示结束 case的反写
例如:
read -p "input type" op
case $op in
"D") echo "for delete";;
"U") echo "for update";;
"S") echo "for select";;
*) echo "for what";;
e
c3fe
sac
}
shell{
1 while 循环 :【
while [ $i -lt 10 ]
do
done
注意 在变量自增的时候
如果直接 $num+1 字符串拼接
num=$(($num+1)) #当数字计算
num=$[$num+1] //[]可以代替上面
例如:
num=1
while (( $num<10 ))
do
echo $num
num=$(($num+1))
done
输出1-10
】
利用循环创建目录 mkdir "dir"$num
利用循环删除目录 rm -r "dir"$num
单行注释 #
多行注释 <<!
...
!
2 for 语法【
for n in a b c d
do
echo $n
done
输出abcd
for((i=0;i<100;i++)) 或者 for i in {1..100}
do
echo $i
done
输出0-99 输出1-100
】
例子:删除文件 删除所有大小为0的文件
分析:1 遍历文件 2 判断文件大小 如果为 0
判断文件大小 cut -d ' ' -f 5 //按照空格截取 获取第五列属性
例如:
ls -l var.sh | cut -d ' ' -f 5
在循环等位置执行命令的时候 有歧义 可以使用 `` 包含 表命令 tab 上面 1 左面的那个键
以下代码删除空文件
for fn in `ls`
do
if [ "`ls -l $fn | cut -d '' -f 5`" -eq 0 ];
then
rm $fn
echo "delete"$fn
fi
done
目录的大小为4096 不管是否为空
以下代码为删除空目录和空文件夹
for fn in `ls`
do
if test -d $fn //test -d 是判断是否为目录
if [ "`ls -A $fn`" == "" ]; //ls -A是显示目录中的文件 包括隐藏的
rm -r $fn
then echo "delete empty dir"$fn
fi
else
if[ "`ls -l $fn | cut -d '' -f 5`" -eq 0 ];
then
rm $fn
echo delete empty file"$fn
fi
fi
done
while:break【
while : 是死循环
完成了一个 直到某个条件才结束循环的功能
exit!
】
例如:
echo "haha" >> haha.log //5s一个写进去文件
输入文件名连续创建文件夹 直到输入exit!退出
echo "input dir name for create,input 'exit!' for quit"
while : //死循环
do
read -p 'input name : ' fn //相当于scanner之前的提示
if[ "$fn" == "" ]; //注意这个变量要加引号 判断字符串是否为空
then echo "illegal file name"
elif [ $fn == "exit!" ]
then
echo "exit now! "
break; //不要把break 写在echo后面
else
echo "mkdir dir"
mkdir $fn
fi
done
}
函数{
1 定义函数
function 函数名 () { 函数体 }
例如:
function first(){
echo "hello world!"
}
function add(){
result=$[$1+$2] //两个变量相加
echo $result
}
2 调用函数 函数名 参数1 参数2
first //函数的调用 先声明后使用
echo $(first)"sasasa" //输出函数
结果:hello worldsasasa
add 1 2
结果:3
3 $1 取第一个参
echo 输出结果 $(函数名取结果)
}
日期命令
date 能获得时间 没有毫秒级别的输出
格式化时间
date +"%m-%Y" //12-2017
date +"%s" //秒
date +"%N" //当前时间的纳秒部分
}
编写一个随机数的函数{
date 可以指定最大和最小
funcation random(){
min=$1
max=$2
time=$(date +%s%N)
num=$[$max-$min+1] //区间
result=$[$time%$num+$min] //对一个数取余肯定小于这个数
echo $result
}
for i in {1..10}
do
random 5 10
done
}
定时任务{
系统按照指定的时间或者指定的时间段来完成相应的任务
crontab -l
crontab -e 编辑器 创建定时任务
crontab -r 删除所有的定时任务
* * * * * conmand
第一个*:minute: 表示分钟,可以是从0到59之间的任何整数。
第二个*: hour:表示小时,可以是从0到23之间的任何整数。
第三个*: day:表示日期,可以是从1到31之间的任何整数。
第四个*: month:表示月份,可以是从1到12之间的任何整数。
第五个*: week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
第六个*: command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
例如:
* * * * * command //每一分钟执行一次
3,15 * * * * command //每小时的第三分钟和第十五分钟执行一次
3,15 8-11 */2 * * command //每隔两天的上午8点到11点的第3和第15分钟执行
星号(*)代表所以可能值;
逗号(,)表示指定范围的值;
中杠(-) 表示一个整数范围 例如2-6 2,3,4,5,6
正斜线(/) 指定时间的间隔频率 可以和星号搭配使用
例如 0-23/2 每两个小时执行一次
*/6 代表对应字段 每6 (M/h/d/m)执行一次
* * * * * sleep 10; echo haha1 >>log
* * * * * sleep 20; echo haha1 >>log
* * * * * sleep 30; echo haha1 >>log
* * * * * sleep 40; echo haha1 >>log
* * * * * sleep 50; echo haha1 >>log
每10s 执行一次
tail -f 文件名 追踪文件内容 随文件变化而变化 动态的
cat 是静态的
echo haha >>log.haha //把haha追加到log.haha文件中
}
数组
array(a b c)
${array[0]} //根据下标取元素
${array[*]} //取数组中所有元素
${#array[*]} //取数组长度
date
d=${date +"%Y-%m-%d %h:%M:%S"}
2018-01-09 16:45:32
知识点 判断 循环 数组 日期 函数 定时任务
}
%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分钟(00~59)
%p 显示出AM或PM
%r 显示时间,12小时制(hh:mm:ss %p)
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 显示秒(00~59)
%T 显示时间,24小时制(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sun~Sat)
%A 星期的全称(Sunday~Saturday)
%h,%b 月的简称(Jan~Dec)
%B 月的全称(January~December)
%c 日期和时间(Tue Nov 20 14:12:58 2012)
%d 一个月的第几天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%y 年的最后两个数字(1999则是99)
来自: http://man.linuxde.net/date
计算小数 c=$( echo "$a*$b"|bc ) //计算小数的乘法
==================================================================================================
软件的安装{
jdk
1 上传包
2 tar.gz 解压
3 配置环境变量 .bashrc(家目录下)
pwd 显示绝对路径
加入以下两行代码
export JAVA_HOME=pwd显示的路径
export PATH=$PATH:$JAVA_HOME/bin
配置好后别忘了 source .bashrc 重新编译生效
}
ssh免密登录{
对账户有限制
ssh 用户@ip地址
ssh 需要输入密码
公钥 私钥
步骤:
0 切换到root 用户
1.ssh–keygen –t rsa –P ‘’ //生成密钥
2.cd .ssh
3.cat id_rsa.pub >> authorized_keys
4.chmod 600 authorized_keys
5.vim /etc/ssh/sshd_config
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
6.service sshd restart
scp 远程拷贝密钥,文件[
scp 文件 用户@地址:路径
例子
1. scp id_rsa.pub root@192.68.170.123:~/.ssh/aa
2. 将公钥改名为aa 防止冲突 要输入密码
3.cat aa >> authorized_keys
4.改权限为600
5.service sshd restart
]
}
Linux是一款广泛应用于服务器的操作系统
操作系统是硬件基础上的第一层软件 应用软件需要安装到操作系统上
Linux 的特点
安全 免费开源
多用户 完全的 一个用户的操作不会影响到其他用户
稳定,快速 设计
java 大数据环境都默认支持Linux
Linux的版本[
内核版 就像手机的安卓系统一样 内核一般无法直接使用
发行 各个厂商针对Linux的内核会发布自己的发行版
redHat 好 贵
centos6.5 好 不花钱
Ubuntu 图形化 PC 针对Ubuntu软件多
查看Linux的内部{
linux 万物皆文件
/ 根目录
/下有个etc 存储配置文件
/home 家目录 每个用户有一个文件夹
}
使用客户端来连接Linux{
由于Linux在服务器上 一般不能直接在上面操作
还有在上面操作也比较不方便
所以有各式各样的客户端软件用来连接Linux
连接方法[
要知道Linux的ip地址 用户名 密码
虚拟机和本地机 要能ping通
虚拟机开机默认是不启网卡
]
修改NAT 连接方式 [
NAT方式是给虚拟机一个块独立的网卡 稳定 ip不变
鼠标在虚拟机上右键- 》设置-》网络适配器 -》右侧选 自定义 vmnet8 保存
虚拟机-》编辑-》虚拟网络编辑器-》更改设置-》讲net8改成NAT模式 应用 确定退出
很多情况下改为 并没有生效 可以先改成桥接或其他 -》保存 然后再改回 -》保存
]
}
Linux的命令{
命令查询网址 http://man.linuxde.net/
cd ..回到上一层目录
cd ~回到家目录
cd / 回到根目录
绝对路径和相对路径
绝对路径是完整的路径
相对路径是相对与当前目录的路径
查看目录
ls -a 查看目录包括隐藏的
ls -R 级联显示文件
ll 详细查询 显示文件时间等
ll -h 显示具体的文件大小
创建文件夹
mkdir
mkdir -p 创建多层文件夹
删除命令
rm 删除文件
rm -r 删除文件夹
复制命令
cp 复制的路径按照当前所在层写 相对路径或者绝对路径
cp -r复制目录
cp -v复制文件到文件夹
移动命令 可以改名
mv
创建文件 Linux不分扩展名
touch 可以更新已存在的文件名
vim编辑器
i 进入编辑模式写入
写完按esc返回上层
:wq 保存并退出
:q! 强制退出
:set number 显示行号
查看文本内容
cat a>b 将a的内容给b
cat a>>b 将a的内容追加给b
pwd 显示当前路径
归档压缩
tar -c是压缩
tar -x是解压缩
-f 文件
-v 显示
包含z是压缩 不包含z是归档
压缩 tar -czvf 压缩后的文件名 要压缩的文件
解压缩 tar -xzvf 目标名
tar -xzvf 目标名 -C 目标目录
命令可以一起使用 例如 -wq 保存并退出
-cf 压缩文件
用户的操作{
只有管理员才能创建用户
useradd 用户名
passwd 用户名 设置密码
userdel 用户名 删除用户 正在登陆的用户不能删
userdel -f 用户名 强行删除
su 切换用户 默认切换到管理员
虽然用户删除 但是家目录还在
-rf 强删一个用户 包括家目录也删除 相当于清空与此用户的一切
会一步一步问你是否要删除 回答yes no确定是否删除
}
和用户组相关的文件{
显示用户相关信息 500以后才是自己创建的
/etc/passwd 密码
/etc/group 组
/etc/shadow
用以下的命令来搜索浏览用户
cat 浏览全部的组
tail 显示后十个组
grep 用户名 要搜的路径(/etc/group) 搜索该用户的分组编号
more 按百分比显示
}
组的操作{
只有管理员才能创建组
groupadd 组名 添
groupdel 组名 删
groupmod -n 改名
改后的名字 要改的组名
-h 帮助
将用户添加到组中 usermod -G 用户名
}
权限{
r 读 代表值为4
w 写 代表值为2
x 执行 代表值为1
一共有十个 - 第一个代表文件类型 例如 d
前三个- :文件所有者
中间三个-:用户组
最后三个-:其他者
和反射中修饰符的代表值一样 固定的数字代表固定的组合
可以使用三个数字来表示755
}
权限的调整{ change
1 调整文件所属用户/组 要有root权限
chgrp 组名 文件名
chown 改用户 文件名
chown 用户:组 文件名
chmod 修改用户的权限
[
1 通过数字来修改权限
2 可以通过具体的文件所属和权限修改
+ 代表添加权限 -代表删除权限
具体权限 x w r
执行 写 读
可执行文件变绿
文件所属 u g o a
u:user 文件所有者
g:group 文件所属组用户
o:other 其他用户
a:all 所有用户
]
如: chmod u+r xx.txt
chmod 777 xx.txt
}
shell{
Shell 用来和系统内部进行交互 可以理解为是一种语言
灵活 快捷 方便
Shell hello world[
echo 用来输出语句 相当于syso
]
Shell文件[
1 #!/bin/bash 什么shell版本 在文档第一行写 用来执行此文件
2 # 符号是 注释
3 ./文件名 执行文件中的脚本 必须有x权限才能执行
4 bash 文件名 强行 执行脚本
]
echo $PATH :显示全局变量路径
shell中的变量 {
变量名变成青色 变量值为红色
1直接使用字母为变量命令
2使用等号赋值 注意变量和等号之间不可以有空格 // str="aaa"
3使用$变量名 ${变量名} 引用变量名 用$来引用变量
echo $变量名
array=(1 2 3 4) //数组定义
array[0]=32 //更改下标为0的元素
echo ${#array[*]} // 输出数组的长度
echo ${array[0]}"------" //输出下标为0的元素
echo ${array[*]} // 输出所有的元素
}
test{
-eq 相当于=
-ne 相当于!=
-gt 相当于>
-gte 相当于大于等于
-lte 相当于小于等于
-not 非
-mod 求模
-lt 相当于<
}
例如:
if test $a -eq $b
if [ $a -gt 5 ]; #注意 []内部两端要有空格 if后面有分号
then echo 要执行的语句
else echo 要执行的语句
fi 以fi结尾if语句
do{
}
done 结尾do语句
if [];
then echo
elif []; then echo // elif后面有分号
elif []; then echo
...
else
fi
read相当于java中的Scanner
-p 相当于print 提示
例如:read -p "input age" age //提示信息为input age 然后输入年龄
echo $age
case 变量 in
选项1) 要执行的语句;; //注意 两个分号
*) default //表示默认的
esac //表示结束 case的反写
例如:
read -p "input type" op
case $op in
"D") echo "for delete";;
"U") echo "for update";;
"S") echo "for select";;
*) echo "for what";;
e
c3fe
sac
}
shell{
1 while 循环 :【
while [ $i -lt 10 ]
do
done
注意 在变量自增的时候
如果直接 $num+1 字符串拼接
num=$(($num+1)) #当数字计算
num=$[$num+1] //[]可以代替上面
例如:
num=1
while (( $num<10 ))
do
echo $num
num=$(($num+1))
done
输出1-10
】
利用循环创建目录 mkdir "dir"$num
利用循环删除目录 rm -r "dir"$num
单行注释 #
多行注释 <<!
...
!
2 for 语法【
for n in a b c d
do
echo $n
done
输出abcd
for((i=0;i<100;i++)) 或者 for i in {1..100}
do
echo $i
done
输出0-99 输出1-100
】
例子:删除文件 删除所有大小为0的文件
分析:1 遍历文件 2 判断文件大小 如果为 0
判断文件大小 cut -d ' ' -f 5 //按照空格截取 获取第五列属性
例如:
ls -l var.sh | cut -d ' ' -f 5
在循环等位置执行命令的时候 有歧义 可以使用 `` 包含 表命令 tab 上面 1 左面的那个键
以下代码删除空文件
for fn in `ls`
do
if [ "`ls -l $fn | cut -d '' -f 5`" -eq 0 ];
then
rm $fn
echo "delete"$fn
fi
done
目录的大小为4096 不管是否为空
以下代码为删除空目录和空文件夹
for fn in `ls`
do
if test -d $fn //test -d 是判断是否为目录
if [ "`ls -A $fn`" == "" ]; //ls -A是显示目录中的文件 包括隐藏的
rm -r $fn
then echo "delete empty dir"$fn
fi
else
if[ "`ls -l $fn | cut -d '' -f 5`" -eq 0 ];
then
rm $fn
echo delete empty file"$fn
fi
fi
done
while:break【
while : 是死循环
完成了一个 直到某个条件才结束循环的功能
exit!
】
例如:
echo "haha" >> haha.log //5s一个写进去文件
输入文件名连续创建文件夹 直到输入exit!退出
echo "input dir name for create,input 'exit!' for quit"
while : //死循环
do
read -p 'input name : ' fn //相当于scanner之前的提示
if[ "$fn" == "" ]; //注意这个变量要加引号 判断字符串是否为空
then echo "illegal file name"
elif [ $fn == "exit!" ]
then
echo "exit now! "
break; //不要把break 写在echo后面
else
echo "mkdir dir"
mkdir $fn
fi
done
}
函数{
1 定义函数
function 函数名 () { 函数体 }
例如:
function first(){
echo "hello world!"
}
function add(){
result=$[$1+$2] //两个变量相加
echo $result
}
2 调用函数 函数名 参数1 参数2
first //函数的调用 先声明后使用
echo $(first)"sasasa" //输出函数
结果:hello worldsasasa
add 1 2
结果:3
3 $1 取第一个参
echo 输出结果 $(函数名取结果)
}
日期命令
date 能获得时间 没有毫秒级别的输出
格式化时间
date +"%m-%Y" //12-2017
date +"%s" //秒
date +"%N" //当前时间的纳秒部分
}
编写一个随机数的函数{
date 可以指定最大和最小
funcation random(){
min=$1
max=$2
time=$(date +%s%N)
num=$[$max-$min+1] //区间
result=$[$time%$num+$min] //对一个数取余肯定小于这个数
echo $result
}
for i in {1..10}
do
random 5 10
done
}
定时任务{
系统按照指定的时间或者指定的时间段来完成相应的任务
crontab -l
crontab -e 编辑器 创建定时任务
crontab -r 删除所有的定时任务
* * * * * conmand
第一个*:minute: 表示分钟,可以是从0到59之间的任何整数。
第二个*: hour:表示小时,可以是从0到23之间的任何整数。
第三个*: day:表示日期,可以是从1到31之间的任何整数。
第四个*: month:表示月份,可以是从1到12之间的任何整数。
第五个*: week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
第六个*: command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
例如:
* * * * * command //每一分钟执行一次
3,15 * * * * command //每小时的第三分钟和第十五分钟执行一次
3,15 8-11 */2 * * command //每隔两天的上午8点到11点的第3和第15分钟执行
星号(*)代表所以可能值;
逗号(,)表示指定范围的值;
中杠(-) 表示一个整数范围 例如2-6 2,3,4,5,6
正斜线(/) 指定时间的间隔频率 可以和星号搭配使用
例如 0-23/2 每两个小时执行一次
*/6 代表对应字段 每6 (M/h/d/m)执行一次
* * * * * sleep 10; echo haha1 >>log
* * * * * sleep 20; echo haha1 >>log
* * * * * sleep 30; echo haha1 >>log
* * * * * sleep 40; echo haha1 >>log
* * * * * sleep 50; echo haha1 >>log
每10s 执行一次
tail -f 文件名 追踪文件内容 随文件变化而变化 动态的
cat 是静态的
echo haha >>log.haha //把haha追加到log.haha文件中
}
数组
array(a b c)
${array[0]} //根据下标取元素
${array[*]} //取数组中所有元素
${#array[*]} //取数组长度
date
d=${date +"%Y-%m-%d %h:%M:%S"}
2018-01-09 16:45:32
知识点 判断 循环 数组 日期 函数 定时任务
}
%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分钟(00~59)
%p 显示出AM或PM
%r 显示时间,12小时制(hh:mm:ss %p)
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 显示秒(00~59)
%T 显示时间,24小时制(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sun~Sat)
%A 星期的全称(Sunday~Saturday)
%h,%b 月的简称(Jan~Dec)
%B 月的全称(January~December)
%c 日期和时间(Tue Nov 20 14:12:58 2012)
%d 一个月的第几天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%y 年的最后两个数字(1999则是99)
来自: http://man.linuxde.net/date
计算小数 c=$( echo "$a*$b"|bc ) //计算小数的乘法
==================================================================================================
软件的安装{
jdk
1 上传包
2 tar.gz 解压
3 配置环境变量 .bashrc(家目录下)
pwd 显示绝对路径
加入以下两行代码
export JAVA_HOME=pwd显示的路径
export PATH=$PATH:$JAVA_HOME/bin
配置好后别忘了 source .bashrc 重新编译生效
}
ssh免密登录{
对账户有限制
ssh 用户@ip地址
ssh 需要输入密码
公钥 私钥
步骤:
0 切换到root 用户
1.ssh–keygen –t rsa –P ‘’ //生成密钥
2.cd .ssh
3.cat id_rsa.pub >> authorized_keys
4.chmod 600 authorized_keys
5.vim /etc/ssh/sshd_config
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
6.service sshd restart
scp 远程拷贝密钥,文件[
scp 文件 用户@地址:路径
例子
1. scp id_rsa.pub root@192.68.170.123:~/.ssh/aa
2. 将公钥改名为aa 防止冲突 要输入密码
3.cat aa >> authorized_keys
4.改权限为600
5.service sshd restart
]
}
相关文章推荐
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- Linux桌面操作系统性能分析学习总结
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结 2015-07-27 20:49 13人阅读 评论(0) 收藏
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结(转)
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结 转载
- linux操作系统-小知识点总结
- 面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- [IT综合面试]牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- Linux操作系统分析(3)- 内核装载ELF的过程总结
- 我学习的ARM嵌入式开源总结(ucos操作系统 linux)
- Linux操作系统加载不同文件系统的总结