linux
linux的常用符号
管道: 用“|” 表示管道
作用:前面的命令结果通过管道给后面的命令使用
eg:cat /etc/passwd | grep root
追加:用“>>” 覆盖:“>”
磁盘管理
1.查看系统磁盘空间
df -h 就是查看linux系统里面每个盘符的使用情况
2.磁盘的管理命令 fdish
fdisk -l 查看磁盘的管理信息
3.管理硬盘的分区
fdisk 硬盘名称
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition 创建一个新分区
o create a new empty DOS partition table
p print the partition table
q quit without saving changes 不保存退出
s create a new empty Sun disklabel
t change a partition’s system id
u change display/entry units
v verify the partition table
w write table to disk and exit 保存退出
x extra functionality (experts only)
新创建的分区需要格式化
mks.ext4(文件系统) /dev/sdb1
eg:mkfs.ext4 /dev/sdc1
挂载分区:
1 创建挂载的目录
mkdir /root/data2
2 执行挂载的命令
mount /dev/sdc1 /root/data2
以上的方式为临时挂载(重启之后失效)
永久挂载,必须进行配置文件
vi /etc/fstab
type:文件系统的类型:Linux支持的类型 ext3 ext2 ext4 swap nfs ntfs fat32 iso9660
表示内容的备份:1 表示备份 0表示不备份
检查硬盘 0 不检查 1 表示检查 /路径必须设置为1 ,其他的路径不能设置
为1 ,其他的检查顺序按照数字从小到大开始
范例: 编写永久挂载的配置文件
mydisk /root/data2 ext4 defaults 0 0
4.服务管理命令
service:服务管理命令
service network [start|stop|restart|status]
防火墙:
service iptables [start|stop|restart|status]
在以后的集群搭建过程中,所有的节点必须关闭防火墙
service iptables stop 关闭的方法
以上的关闭方式,也是临时的,重启之后防火墙自动开启
想要永久关闭,chkconfig (服务开启启动配置)
chkconfig --list 查看当前系统有哪些启动服务
查看防火墙启动的状态:
chkconfig --list iptables
关闭或者开启 f服务的启动
chkconfig iptables on|off
Linux shell变量
#!/bin/bash
echo “Hello world” 打印hello world
1)#!是一个约定的标记,告诉系统脚本用什么解释器来执行
2)echo 标准的输出命令 打印屏幕
3)# 代表注释
shell脚本执行:
[root@hadoop01 data]# ./test.sh -->> 这个必须给定脚本可执行的权限x
[root@hadoop01 data]# bash test.sh
[root@hadoop01 data]# source check.sh 使用source命令不用增加脚本的执行权限,并且不写./也可以
source命令是启动的同一个进程
1)判断是否是交互式的shell
查看 变量-的值 如果值中包含了字母i 表示交互式否则表示非交互式 用"$-"查看
[root@hadoop01 data]# bash test2.sh
hB
[root@hadoop01 data]# echo $-
himBH
2)判断是否所为登陆模式
需要执行命令: shopt login_shell 取值:on 表示登陆 off非登陆
shell变量
eg:定义变量
[root@hadoop01 data]# url=www.qianfeng.com
[root@hadoop01 data]# echo $url ——>>www.qianfeng.com
[root@hadoop01 data]# name=‘我非常爱学习’
[root@hadoop01 data]# echo $name -—>>>我非常爱学习
单引号和双引号的区别:单引号表示是什么就打印什么,双引号会先解析变量的内容
#!/bin/bash
url=“wwww.baidu.com”
website1=‘百度:${url}’
website2=“百度:${url}”
echo $website1
echo $website2
命令的结果赋值给变量
[root@hadoop01 data]# log=$(cat /etc/passwd)
[root@hadoop01 data]# echo $log
只读变量
readonly url
删除变量
unset 变量名称
[root@hadoop01 data]# unset name
shell的全局变量
所谓全局变量指的是变量在当前整个shell进程都有效
每个shell进程都有自己的作用域,彼此之间互不影响
[root@hadoop01 data]# vi a.sh
[root@hadoop01 data]# vi b.sh
[root@hadoop01 data]# cat a.sh
#!/bin/bash
echo $a
b=200
[root@hadoop01 data]#
[root@hadoop01 data]# cat b.sh
#!/bin/bash
echo $b
[root@hadoop01 data]# a=99
[root@hadoop01 data]# chmod u+x a.sh
[root@hadoop01 data]# ./a.sh
[root@hadoop01 data]# source a.sh
99
[root@hadoop01 data]# source b.sh
200
环境变量
export 将全局变量导出 就可以在所有的子进程中有效,称为环境变量
shell 的位置参数
eg:[root@localhost data]# bash test.sh 参数1 参数2…….
Linux中特殊的变量
$0 当前脚本的文件名
$$ 当前shell进程的ID
$* 传递给脚本的所有参数
$@ 传递给脚本的所有参数
$# 传递给脚本参数的个数
当被双引号包围的时候就存在区别:
“$*” 会将所有参数从整体看做一份数据,而不是把每份参数看作一份数据
“$@” 仍将每个参数看作一份数据,彼此之间是独立的