[TOC]
# 查看当前系统的时间 date
~~~
$ date +%Y-%m-%d
2016-05-18
$ date +%Y-%m-%d --date="-1 day" #加减也可以 month | year
2016-05-17
~~~
设置时间
~~~
date -s "2016-05-23 01:01" ## 修改时间
~~~
修改时间后,需要写入硬件bios才能在重启之后依然生效
~~~
hwclock -w
~~~
# 查看有谁在线(哪些人登陆到了服务器)
who 查看当前在线
~~~
$ who
root tty1 2016-05-18 11:46
hadoop tty3 2016-05-18 11:46
hadoop pts/0 2016-05-18 10:57 (192.168.33.1)
~~~
last 查看最近的登陆历史记录
~~~
$ last -3
hadoop tty3 Wed May 18 11:46 still logged in
root tty1 Wed May 18 11:46 still logged in
hadoop pts/0 192.168.33.1 Wed May 18 10:57 still logged in
~~~
# 关机/重启
~~~
## 关机(必须用root用户)
shutdown -h now ## 立刻关机
shutdown -h +10 ## 10分钟以后关机
shutdown -h 12:00:00 ##12点整的时候关机
halt # 等于立刻关机
~~~
~~~
## 重启
shutdown -r now
reboot # 等于立刻重启
~~~
# 退出当前进程
~~~
ctrl+c 有些程序也可以用q键退出
~~~
# 挂起当前进程
~~~
ctrl+z ## 进程会挂起到后台
bg jobid ## 让进程在后台继续执行
fg jobid ## 让进程回到前台
~~~
# echo
相当于java中`System.out.println(userName)`
~~~
[root@localhost bbb]# a="asd"
[root@localhost bbb]#
[root@localhost bbb]# echo a
a
[root@localhost bbb]# echo $a
asd
~~~
# 查看文件内容
~~~
cat somefile 一次性将文件内容全部输出(控制台)
分页查看文件的命令:
more somefile 可以翻页查看, 下翻一页(空格) 上翻一页(b) 退出(q)
less somefile 可以翻页查看,下翻一页(空格) 上翻一页(b),上翻一行(↑) 下翻一行(↓) 可以搜索关键字(/keyword)
跳到文件末尾: G
跳到文件首行: gg
退出less : q
tail -10 install.log 查看文件尾部的10行
tail +10 install.log 查看文件 10-->末行
tail -f install.log 小f跟踪文件的唯一inode号,就算文件改名后,还是跟踪原来这个inode表示的文件
tail -F install.log 大F按照文件名来跟踪
head -10 install.log 查看文件头部的10行
~~~
# 打包压缩
1、gzip压缩
~~~
gzip a.txt
~~~
2、解压
~~~
gunzip a.txt.gz
gzip -d a.txt.gz
~~~
3、bzip2压缩
~~~
bzip2 a
~~~
4、解压
~~~
bunzip2 a.bz2
bzip2 -d a.bz2
~~~
5、打包:将指定文件或文件夹
~~~
tar -cvf bak.tar ./aaa
~~~
将/etc/password追加文件到bak.tar中(r)
~~~
tar -rvf bak.tar /etc/password
~~~
6、解压
~~~
tar -xvf bak.tar
~~~
7、打包并压缩
~~~
tar -zcvf a.tar.gz aaa/
~~~
8、解包并解压缩(重要的事情说三遍!!!)
~~~
tar -zxvf a.tar.gz
~~~
解压到/usr/下
~~~
tar -zxvf a.tar.gz -C /usr
~~~
9、查看压缩包内容
~~~
tar -ztvf a.tar.gz
zip/unzip
~~~
10、打包并压缩成bz2
~~~
tar -jcvf a.tar.bz2
~~~
11、解压bz2
~~~
tar -jxvf a.tar.bz2
~~~
# 查找命令
1、查找可执行的命令所在的路径:
~~~
which ls
~~~
2、查找可执行的命令和帮助的位置:
~~~
whereis ls
~~~
3、从某个文件夹开始查找文件
~~~
find / -name "hadooop*"
find / -name "hadooop*" -ls
~~~
5、查找并删除
~~~
find / -name "hadooop*" -ok rm {} \;
find / -name "hadooop*" -exec rm {} \;
~~~
6、查找用户为hadoop的文件
~~~
find /usr -user hadoop -ls
~~~
7、查找用户为hadoop的文件夹
~~~
find /home -user hadoop -type d -ls
~~~
8、查找权限为777的文件
~~~
find / -perm -777 -type d -ls
~~~
# grep
1. 基本使用
查询包含hadoop的行
~~~
grep hadoop /etc/password
grep aaa ./*.txt
~~~
2. cut截取以:分割保留第七段
~~~
grep hadoop /etc/passwd | cut -d: -f7
~~~
3. 查询不包含hadoop的行
~~~
grep -v hadoop /etc/passwd
~~~
4. 正则表达包含hadoop
~~~
grep 'hadoop' /etc/passwd
~~~
5. 正则表达(点代表任意一个字符)
~~~
grep 'h.*p' /etc/passwd
~~~
6. 正则表达以hadoop开头
~~~
grep '^hadoop' /etc/passwd
~~~
7. 正则表达以hadoop结尾
~~~
grep 'hadoop$' /etc/passwd
~~~
正则表达式的简单规则:
. : 任意一个字符
a* : 任意多个a(零个或多个a)
a? : 零个或一个a
a+ : 一个或多个a
.* : 任意多个任意字符
\. : 转义.
o\{2\} : o重复两次
查找不是以#开头的行
~~~
grep -v '^#' a.txt | grep -v '^$'
~~~
以h或r开头的
~~~
grep '^[hr]' /etc/passwd
~~~
不是以h和r开头的
~~~
grep '^[^hr]' /etc/passwd
~~~
不是以h到r开头的
~~~
grep '^[^h-r]' /etc/passwd
~~~
# 权限
linux文件权限的描述格式解读
~~~
drwxr-xr-x (也可以用二进制表示 111 101 101 --> 755)
~~~
~~~
d:标识节点类型(d:文件夹 -:文件 l:链接)
r:可读 w:可写 x:可执行
第一组rwx: ## 表示这个文件的拥有者对它的权限:可读可写可执行
第二组r-x: ## 表示这个文件的所属组用户对它的权限:可读,不可写,可执行
第三组r-x: ## 表示这个文件的其他用户(相对于上面两类用户)对它的权限:可读,不可写,可执行
~~~
2. 修改文件权限
~~~
chmod g-rw haha.dat ## 表示将haha.dat对所属组的rw权限取消
chmod o-rw haha.dat ## 表示将haha.dat对其他人的rw权限取消
chmod u+x haha.dat ## 表示将haha.dat对所属用户的权限增加x
chmod a-x haha.dat ## 表示将haha.dat对所用户取消x权限
~~~
也可以用数字的方式来修改权限
~~~
chmod 664 haha.dat
~~~
就会修改成 `rw-rw-r--`
如果要将一个文件夹的所有内容权限统一修改,则可以-R参数
~~~
chmod -R 770 aaa/
~~~
3. 修改文件所有权
~~~
<只有root权限能执行>
chown angela aaa ## 改变所属用户
chown :angela aaa ## 改变所属组
chown angela:angela aaa/ ## 同时修改所属用户和所属组
~~~
补充:
r: 对文件来说,是可读取内容; 对文件夹来说,是可以ls
w: 对文件来说,是可修改文件的内容;对文件夹来说,是可以在其中创建或者删除子节点
x: 对文件来说,是能否运行这个文件;对文件夹来说,是能否cd进入这个目录
# 用户组
添加一个叫america的组
~~~
groupadd america
~~~
将jerry添加到america组中
~~~
usermod -g america jerry
~~~
将tomcat用户从root组和sys组删除
~~~
gpasswd -d tomcat root
gpasswd -d tomcat sys
~~~
将america组名修改为am
~~~
groupmod -n am america
~~~
为用户配置sudo权限
用root编辑 vi /etc/sudoers
在文件的如下位置,为hadoop添加一行即可
~~~
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
~~~
然后,hadoop用户就可以用sudo来执行系统级别的指令
~~~
$ sudo useradd huangxiaoming
~~~
# 系统服务管理
~~~
service --status-all # 查看系统所有的后台服务进程
service sshd status # 查看指定的后台服务进程的状态
service sshd stop
service sshd start
service sshd restart
配置后台服务进程的开机自启
chkconfig httpd on ## 让httpd服务开机自启
chkconfig httpd off ## 让httpd服务开机不要自启
[root@localhost ~]# chkconfig httpd off
[root@localhost ~]# chkconfig --list | grep httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@localhost ~]# chkconfig --level 35 httpd on
[root@localhost ~]# chkconfig --list | grep httpd
httpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
~~~
# 系统启动级别管理
vi /etc/inittab
~~~
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode ## 没有图形界面的全功能的多用户的启动级别
# 4 - unused
# 5 - X11 ## 有图形界面的启动级别
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault: ## 配置默认启动级别
## 通常将默认启动级别设置为:3
~~~
# 进程管理
top
free
ps -ef | grep ssh
kill -9 2358 ## 将指定进程号的进程杀死
注意:grep搜索关键词的时候会把自己也搜索出来,对比以下两种写法
~~~
#ps -ef | grep sixunhuan
root 2857 2465 30 02:41 pts/0 00:00:07 sh sixunhuan.sh
root 2874 2858 0 02:42 pts/1 00:00:00 grep sixunhuan
# ps -ef | grep sixunhuan | grep -v grep
root 2857 2465 34 02:41 pts/0 00:00:25 sh sixunhuan.sh
# kill -9 2857
~~~
# 主机名配置
1. 查看主机名
~~~
hostname
~~~
2. 修改主机名(重启后无效)
~~~
hostname hadoop
~~~
3. 修改主机名(重启后永久生效)
~~~
vi /ect/sysconfig/network
~~~
# IP地址配置
修改IP地址
1. 方式一:setup
用root输入setup命令,进入交互式修改界面
2. 方式二:修改配置文件
(重启后永久生效)
~~~
vi /etc/sysconfig/network-scripts/ifcfg-eth0
~~~
3. 方式三:ifconfig命令
(重启后无效)
~~~
ifconfig eth0 192.168.12.22
~~~
# jdk安装
1. 上传jdk压缩包
通过sftp工具上传即可
2. 解压jdk压缩包
~~~
tar -zxvf jdk-7u67-linux-x64.gz -C /usr/local/
~~~
3. 修改环境变量PATH
~~~
vi /etc/profile
在文件最后加两行:
export JAVA_HOME=/usr/local/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
~~~
4. 让环境变量生效
~~~
source /etc/profile
~~~
即可
# Tomcat安装
~~~
tar -zxvf /soft/apache-tomcat-7.0.47.tar.gz -C /usr/local/
cd /usr/local/apache-tomcat-7.0.47/bin/
./startup.sh
~~~
# 安装mysql服务
~~~
可以用yum方式来安装,此处演示在本地使用rpm包安装
[root@mini ~]# rpm -ivh MySQL-server-5.1.73-1.glibc23.i386.rpm
1、报错——缺少依赖包perl
error: Failed dependencies:
perl is needed by MySQL-server-5.1.73-1.glibc23.i386
解决:yum install -y perl-devel
2、报错——缺少依赖包libc.so.6
[root@mini ~]# rpm -ivh MySQL-server-5.1.73-1.glibc23.i386.rpm
error: Failed dependencies:
libc.so.6 is needed by MySQL-server-5.1.73-1.glibc23.i386
解决:yum install -y libc.so.6
3、报错——缺少依赖包 libgcc_s.so.1
[root@mini ~]# rpm -ivh MySQL-server-5.1.73-1.glibc23.i386.rpm
error: Failed dependencies:
libgcc_s.so.1 is needed by MySQL-server-5.1.73-1.glibc23.i386
解决:yum install -y libc.so.1
4、报错——依赖包冲突
[root@mini ~]# rpm -ivh MySQL-server-5.1.73-1.glibc23.i386.rpm
conflicts with file from package mysql-libs-5.1.73-5.el6_6.x86_64
解决:
卸载依赖的冲突包: rpm -e mysql-libs-5.1.73-5.el6_6 --nodeps
5、安装完成——注意提示信息
再次执行安装
[root@mini ~]# rpm -ivh MySQL-server-5.1.73-1.glibc23.i386.rpm
Preparing... ########################################### [100%]
1:MySQL-server ########################################### [100%]
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h mini password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
** 补充:
如果发生rpm包冲突conflict,怎么处理
首先,找到有哪些包冲突
rpm -qa | grep mysql
然后,卸载冲突的包
rpm -e mysql-libs-5.1.73-5.el6_6.x86_64 --nodeps
~~~
# 安装mysql客户端程序
~~~
1、用rpm命令安装客户端
[root@mini ~]# rpm -ivh MySQL-client-5.1.73-1.glibc23.i386.rpm
error: Failed dependencies:
libncursesw.so.5 is needed by MySQL-client-5.1.73-1.glibc23.i386
报错缺依赖,解决之:
yum install -y libncursesw.so.5 ## yum本地源需要更换光盘为dvd2
再次执行安装
[root@mini ~]# rpm -ivh MySQL-client-5.1.73-1.glibc23.i386.rpm
Preparing... ########################################### [100%]
1:MySQL-client ########################################### [100%]
~~~
# 修改mysql用户root密码
~~~
安装完成后,先确定mysql服务进程是否启动
netstat -nltp
如果有mysql,会监听3306端口
如果没有,则手动启动
service mysql start
1、按照前面的提示,修改密码
[root@mini ~]# /usr/bin/mysql_secure_installation
进入交互式提示设置,按提示操作即可
补充:在资料中又给了一个5.6的mysql版本,这个安装完成后,mysql的root密码是自动生成的,注意看提示,密码保存在哪个位置
/root/.mysql_secret
安装完成后,直接用这个生成的随机密码即可登录mysql
进入mysql后当然可以使用sql来修改root的密码
mysql>set password=password("root");
mysql>flush privileges;
4.5.4 开启mysql的远程登录权限
mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
~~~
# redis安装
用源码工程来编译安装
1/ 到官网下载最新stable版
2/ 解压源码并进入目录 tar -zxvf redis-2.8.19.tar.gz -C ./redis-src/
3/ make
如果报错提示缺少gcc,则安装gcc : yum install -y gcc
如果报错提示:Newer version of jemalloc required
则在make时加参数:make MALLOC=libc
4/ 安装redis,指定安装目录,如 /usr/local/redis
make PREFIX=/usr/local/redis install
6/ 拷贝一份配置文件到安装目录下
切换到源码目录,里面有一份配置文件 redis.conf,然后将其拷贝到安装路径下
cp redis.conf /usr/local/redis/
7/ 启动redis
cd /usr/local/redis
bin/redis-server redis.conf
- linux
- 常用命令
- 高级文本命令
- 面试题
- redis
- String
- list
- hash
- set
- sortedSet
- 案例-推荐
- java高级特性
- 多线程
- 实现线程的三种方式
- 同步关键词
- 读写锁
- 锁的相关概念
- 多线程的join
- 有三个线程T1 T2 T3,保证顺序执行
- java五种线程池
- 守护线程与普通线程
- ThreadLocal
- BlockingQueue消息队列
- JMS
- 反射
- volatile
- jvm
- IO
- nio
- netty
- netty简介
- 案例一发送字符串
- 案例二发送对象
- 轻量级RPC开发
- 简介
- spring(IOC/AOP)
- spring初始化顺序
- 通过ApplicationContextAware加载Spring上下文
- InitializingBean的作用
- 结论
- 自定义注解
- zk在框架中的应用
- hadoop
- 简介
- hadoop集群搭建
- hadoop单机安装
- HDFS简介
- hdfs基本操作
- hdfs环境搭建
- 常见问题汇总
- hdfs客户端操作
- mapreduce工作机制
- 案列-单词统计
- 局部聚合Combiner
- 案列-流量统计(分区,排序,比较)
- 案列-倒排索引
- 案例-共同好友
- 案列-join算法实现
- 案例-求topN(分组)
- 自定义inputFormat
- 自定义outputFormat
- 框架运算全流程
- mapreduce的优化方案
- HA机制
- Hive
- 安装
- DDL操作
- 创建表
- 修改表
- DML操作
- Load
- insert
- select
- join操作
- 严格模式
- 数据类型
- shell参数
- 函数
- 内置运算符
- 内置函数
- 自定义函数
- Transform实现
- 特殊分割符处理
- 案例
- 级联求和accumulate
- flume
- 简介
- 安装
- 常用的组件
- 拦截器
- 案例
- 采集目录到HDFS
- 采集文件到HDFS
- 多个agent串联
- 日志采集和汇总
- 自定义拦截器
- 高可用配置
- 使用注意
- sqoop
- 安装
- 数据导入
- 导入数据到HDFS
- 导入关系表到HIVE
- 导入表数据子集
- 增量导入
- 数据导出
- 作业
- 原理
- azkaban
- 简介
- 安装
- 案例
- 简介
- command类型单一job
- command类型多job工作流flow
- HDFS操作任务
- mapreduce任务
- hive脚本任务
- hbase
- 简介
- 安装
- 命令行
- 基本CURD
- 过滤器查询
- 系统架构
- 物理存储
- 寻址机制
- 读写过程
- Region管理
- master工作机制
- 建表高级属性
- 与mapreduce结合
- 协处理器
- 点击流平台开发
- 简介
- storm
- 简介
- 安装
- 集群启动及任务过程分析
- 单词统计
- 并行度
- ACK容错机制
- ACK简介