[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簡介