linux基础
2016-03-29 00:51
337 查看
一,linux
标签(空格分隔): 大数据一linux
一操作系统版本
二虚拟化工具 VMWare
三linux的一些基本命令
四远程连接工具
五深入讲解linux的命令
六linux环境下的软件安装方式
七linux下的定时任务crontab
八shell基础编程
一,操作系统版本
http://archive.cloudera.com/cdh5/
hadoop支持以上4类(debian redhat sles ubuntu)操作系统,在企业中用的最多的还是redhat(cent os),其次是
sles.
二,虚拟化工具 VMWare
一,VMWare的安装1,安装操作系统
创建虚拟机
安装centos6.5操作系统
2,导入已经存在的操作系统
二,linux用户
linux安装时,有一个默认的管理员用户root/1234
[hadoop002@hadoop002 opt]$ 用户名@主机名 当前目录
有2个字符:
\#:表示当前用户是root用户
\$:表示当前用户是普通用户
查看IP地址:ifconfig
查看主机是否能连接网:
ping www.baidu.com
设置固定的IP地址
1,修改配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
替换为
DEVICE=eth0 BOOTPROT=static IPADDR=192.168.44.100 //根据具体情况而定 GATEWAY=192.168.44.2 //根据具体情况而定 NETMASK=255.255.255.0 //根据具体情况而定 ONBOOT=yes TYPE=Ethernet BOOTPROTO=none PREFIX=24 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0"
2,设置网卡地址
3,重启网络即可
三,linux的一些基本命令
1,清理屏幕
#|$clear
2,创建普通用户和设置密码(在linux系统下,默认情况下,创建一个用户的同时会给用户在系统的目录下创建一个属于自己的用户目录,该目录称为用户主目录 /home/hadoop002也可以用“~”代替)
# useradd beifeng # passwd beifeng
3,用户的切换(管理员切换到普通用户不需要密码,普通用户切换到管理员用户需要密码)
#|$ su beifeng
4,显示当前用户所在的目录
$|# pwd
5,查看主机名称
$|# hostname
6,设置主机名称
# hostname beifeng.com.cn
注意:hostname方式修改主机名称只能在当前使用,当机器重新启动启动以后,主机名称会发生变化。原因:在linux系统中,系统的配置信息都是来自于文件中,此种方式不会改变配置文件内容。
7,读取linux系统上的文件内容的命令
#|$ cat /etc/sysconfig/network
8,编辑文件内容
#|$ vi /etc/sysconfig/network
注意:按“i”键进入编辑模式,”esc”->”:q!”:退出不保存,”esc”->”:wq!”:退出并保存
9,关闭系统
# halt
10,重启系统
# reboot
11,安全重启
# init 6
12,查看当前目录
ls --list ls -l ll ls -a #查看当前目录下的所有文件包括隐藏文件
. :表示的是当前目录
.. :表示的是上级目录
13.切换目录
cd
四,远程连接工具
主机名称和IP地址的映射:a,修改windows的hosts文件:C:\Windows\System32\drivers\etc\hosts
192.168.252.131 xingyunfei001.com.cn xingyunfei001 192.168.252.129 xingyunfei.com.cn xingyunfei 192.168.252.132 hadoop002.com.cn hadoop002
b,修改linux系统的hosts:
vi /etc/hosts 192.168.252.132 hadoop002.com.cn hadoop002
远程命令行工具:secureCRT
远程ftp:FileZiila
远程编辑工具:
UltraEdit
NotePad++
远程界面工具
Xmanage
五,深入讲解linux的命令
用户和组–linux系统上,创建用户的时候。默认情况会给我们创建一个用户组(用户组和用户的名称相同)。
///////////////////
linux系统下面,文件类型(常见的三种类型)
文件(-)
目录(/)
连接(类似windows下的快捷方式)(l)
文件权限:
可读(r)
可写(w)
可执行(x)
-:表示没有任何权限
文件权限的数字表示:
R—2*2
W—2*1
X—1
文件的归属:
*拥有者(owner o)
*属于组(group g)
*其他人(other o)
drwxrwxr-x 5 hadoop002 hadoop002 4096 Mar 22 03:18 workspace3
第一部分:drwxrwxr-x
十个字符,代表不同的意义:
d:文件类型(文件夹)
wxr
rwx
r-x
后面的9个字符,分为三组(一个文件对用户来说分为三部分,拥有者,所属组,其他人),表示此文件针对不同用户的权限
第二部分:hadoop002 hadoop002
第一个字符串表示的是文件的拥有者
第二个字符串表示的是文件的所属组
第三部分:4096—文件大小
第四部分:Mar 22 03:18—创建日期
第五部分:workspace3—文件名称
//////////////////
设置文件对不同用户的权限:
字符形式:
#chmod g-w workspace3 //同组用户不能有写的权限 #chmod o-r workspace3 //其他用户不能读
数字形式:
#chmod 664 workspace3 //自己和组可读可写,其他的只读
改变文件拥有者和所属组
#chown hadoop002 xx.txt //修改文件的所有者 #chown hadoop002:hadoop002 xx.txt //修改文件的所有者和所有组 #chgrp hadoop002 xx.txt //修改文件的所有组 #chown -R hadoop002 xx //修改文件目录的所有者 #chgrp -R hadoop002 xx //修改文件目录的所有组
文件的创建
touch xxx.txt vi xxx.txt
追加文件类容
echo 'xxxxxxxxx' >>xxx.txt
编辑文件
vi xx.txt //dd:表示删除贯标所在的一行 //ZZ:保存文件内容 //x:删除光标处的字符 //o:光标下一行插入内容 vim xx.txt
查看文件的内容
cat xx.txt //查看文件的全部内容 more xx.txt //翻页显示文件内容 tail -200f xx.txt //查看末尾的内容,适用于查看服务实时动态日志信息 head xx.txt //查看头部的内容,适用于查看文件的格式
创建目录,文件拷贝,移动,重命名
mkdir filename //创建一个目录 mkdir -p /file/file/file //创建多级目录
“`
cp test.txt Desktop/ //拷贝一个文件到一个目录
cp -r directoryname directoryname //讲一个目录的所有内容拷贝到另外一个目录
cp test.txt xxx.txt //拷贝一个文件的内容到另一个文件内容
``` mv test.txt test.log //重命名,两个文件在同一个目录下 mv test.txt /opt //移动,两个文件不再同一个目录下
文件的删除
rmdir test //删除目录,test必须是空目录,不然删除不成功 rm -rf src //强制递归删除 src最好是绝对路径
创建连接(ln)
软连接 soft link: ln -s file/dir file
ln -s xx.txt xx.soft
硬连接 hard link:ln file/dir file
ln xx.txt xx.soft
使用场景:
hadoop/conf hbase/conf
core-site.xml ln->core-site.xml
这样的好处保持数据的一致性
搜索文件
find /opt -name xxx.txt //搜索某一个文件 find /opt -name xxx\* // \转义字符
一些系统命令
uname //查看操作系统 uname -r //查看内核版本 cat /proc/cpuinfo //查看cpu的信息 cat /proc/meminfo //查看内存信息 date //查看日期 date -R //查看日期和时区 # date -s 2016-03-28 //设置系统日期 # date -s 16:55:40 //设置系统时间 cal 2016 //显示日历表
df -lh //查看磁盘信息 du -sh /home //查看某个目录的可用空间 # fdisk -ls # fsck /dev/sda3 //修复磁盘 # mount //查看挂在信息 # mount /dev/sdb1 /data01 //挂载磁盘到某个目录下 # unmount /dev/sdb1 //卸载某个磁盘
free //查看内存使用情况 top //查看进程的内存使用情况
cd/etc/sysconfig/network-scripts/ //该目录下都是网卡相关信息
设置普通用户的sudo权限
su root chmod u+w /etc/sudoers //添加写权限 vi /etc/sudoers --linux ALL=(root)NOPASSWD:ALL //在第一行添加 chmod u-w /etc/sudoers
查看和设置防火墙
sudo service iptables status //查看防火墙的状态 sudo service iptables stop //临时停止防火墙 sudo chkconfig iptables off|on //永久性设置防火墙状态 sudo service iptables start //启动防火墙
selinux设置
sudo vi /etc/sysconfig/selinux --SELINUX=disabled //禁用 sudo reboot //重启机器生效
六,linux环境下的软件安装方式
第一种安装方式:rpmrpm -qa|grep java //检查某个软件是否安装 rpm -e --nodes xxxxxx //卸载已经安装的软件 rpm -ivh xxxxx.rpm //安装软件
第二种:tar包安装
unzip xxxxx.zip //解压zip软件 zip xxxxx.zip file //压缩zip文件 tar -zxvf xxxxx.tar.gz //解压到当前目录 tar -zxvf xxxxx.tar.gz -C dir //解压到指定目录 tar -zcvf xxxxx.tar.gz dir //压缩指定文件
第三种安装方式:yum安装
–需要配置源
–解决了软件包的依赖关系以及各个软件的安装顺序
七,linux下的定时任务crontab
1,创建一个定时任务crontable -e //创建定时任务 --*/1 * * * * /bin/date >> /home/linux/crontab001.txt tail -f /home/linux/crontab001.txt
crontab -l //显示目前所有的定时任务 crontab -r //删除所有的定时任务
语法:* * * * * command :
1) *—–执行的分钟1-59
*/10 //每10分钟执行一次
2) *—–执行的小时 0-23
3) *—–执行的日 1-31
4) *—–执行的月 1-12
5) *—–执行的星期 0-6
30 21 * * * cmd01 //每天的21:30执行 30 2 1,11,21 * * cmd02 //每个月的1,11,21号的2:30执行 45 1 * * 6,0 cmd03 //每周六或周日的1:45执行 0,30 20-23 * * * cmd04 //20:00到23:00之间每半小时执行一次 * */1 * * * cmd05 //每个小时执行一次
八,shell基础编程
shell脚本概述1,以文件形式存放的批量的linux命令集合,可以被shell解释执行
2,通常由一段linux命令,shell命令,控制语句和注释语句构成
3,通常以.sh作为后缀
shell程序
第一行:#!/bin/sh=======#!/bin/bash
变量命名
1,变量名称必须以字母或者下划线开头,后面可以跟字母,数字或者下划线。任何其他字符都标志变量名的结束。
2,变量名对大小写敏感
name=xingyunfei echo $name echo ${name}
3,变量赋值:等号两边不能有空格 如果要赋空值,可以在等号后面跟一个换行符
4,显示变量的值:echo variable或echovariable或echo {variable}
5,清除变量:unset variable
- 变量类型
1,根据变量的作用域,变量可以分为本地变量和环境变量
2,本地变量只在创建他们的shell程序中可用。二环境变量则在shell中的所有用户进程中可用,通常也称为全局变量。(按照惯例需要大写)
位置参量
1,在脚本中使用位置参量时,需通过位置参量来引用。例如:1表示第一个参数,1表示第一个参数,2表示第二个参数,第10个以后的位置参量以${10}来表示
vi param.sh
param.sh
#!/bin/bash echo "hello $1 !!!!"
./param.sh xingyunfei ./param.sh "xingyunfei001 xingyunfei002" . param.sh xingyunfei sh param.sh xingyunfei
执行结果
位置参量列表:
退出码:?–任何命令进行时都将返回一个退出状态–应用中通常会在关键步骤后判定?
–任何命令进行时都将返回一个退出状态
–应用中通常会在关键步骤后判定?,以确定关键步骤的执行是否正常,尤其是在调度系统里需要监控sh返回码
–shell脚本的返回码取决于最后一个命令的返回码
–程序控制返回码:exit N
–==退出状态0成功 五错误
–==退出状态大于0.失败,某处有错误
数组
arr=(001 002 003) echo ${arr[0]} echo ${arr[*]} //显示所有元素 echo ${#arr[*]} //显示数组的长度 arr[0]=000 //赋值
日期标准化
man date date +%Y-%m-%d //2016-03-28 date +%Y-%m-%dT%H:%M:%S //2016-03-28T09:31:04
-创建datestu.sh
vi datestu.sh
-datestu.sh
#!/bin/bash date1=$(date +%Y-%m-%d) echo ${date1} ##2 days ago date2=$(date --date="2 days ago" +%Y-%m-%d) echo ${date2} ##2 days later date3=$(date --date="-2 days ago" +%Y-%m-%d) echo ${date3}
-执行
sh datestu.sh
判断
-1,test:
-2,判断符号[]
[linux@localhost ~]$ [ -z "$xingyunfei" ]; echo "22222222222"
-3,if判断
语法–单层判断:if[条件判断式];then 当条件判断成立时,可以进行的指令工作内容;
fi<====if结束
语法–多层,复杂判断:if[条件判断式];then 当条件判断成立时,可以进行的指令工作内容;
elif [条件判断式2] then 当条件判断不成立时,可以进行的指令工作内容;
else 当条件判断不成立时,可以进行的指令工作内容;
fi<====if结束
循环
-1,for循环
#!/bin/bash for var in 1 2 3 do echo ${var} done
#!/bin/bash num=10 sum=0 for ((i=0;i<${num};i=i+1)) do sum=$((${sum}+${i})) done echo ${sum}
-2,while循环
语法1:
while[condition] <===判断条件 当条件成立时执行 do 程序段落 done
语法2:
while until [condition] <===判断条件 当条件成立时终止循环 do 程序段落 done
#!/bin/bash file=/home/linux/crontab001.txt cat ${file} | while read line do echo ${line} done
相关文章推荐
- Linux学习三部曲(之二)
- linux下PHP7环境搭建
- P2V–离线迁移windows、linux到OpenStack中(转)
- centos6之pacemaker 高可用Web使用详解(转)
- Centos7之pacemaker高可用安装配置详解
- centos6之pacemaker 高可用Web使用详解(转)
- Centos7之pacemaker高可用安装配置详解
- CentOS设置静态IP
- 《linux内核设计与实现》读书笔记第十八章
- Linux入门学习(三)
- 进程间通信之-信号量semaphore--linux内核剖析(十)
- linux下使用python连接Mysql
- linux服务器安装pip
- Linux下清理内存和Cache方法
- 基于UDP的Linux畅聊系统(ncurse库和json库)
- gentoo linux安装过程中出现的错误及解决方案
- linux kernel 中的链表(一)
- CentOS7.2 Linux 内核版本查看简述
- Linux 线程同步的三种方法
- centos7下yum安装mysql与卸载mysql