計算機經常使用指令記錄 java
Python經常使用操做: node
#!/usr/bin/env python3python
# -*- coding: utf-8 -*-linux
# 畫圖的字體問題git
from pylab import mplgithub
mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默認字體sql
mpl.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負號'-'顯示爲方塊的問題shell
# 顯示全部行列數據庫
pd.set_option("display.max_columns",None)vim
pd.set_option("display.max_rows",None)
# 輸出全部變量
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
# 畫圖x軸標籤傾斜
import pylab as pl
pl.xticks(rotation=45)
# 肯定字符串都是數字字符
data1['t'] = data1['atx'].str.isdigit()
data1 = data1[data1['t'] == True]
# 鏈接postgres數據庫,讀取數據
conn = psycopg2.connect(database="", user="", password="", host="", port="")
cur = conn.cursor()
cur.execute("SELECT title FROM \"fd_content_interaction\";")
rows = cur.fetchone() //fetchone,fetchall,fetchmany(num=None) # 即取數據量大小
print(rows)
conn.commit()
cur.close()
conn.close() # 關閉數據庫的緣由是,數據庫同時連接人數是有限的;數據庫數據用python讀取下來,jasonarray等格式轉換過來就是tuple裏的dict等格式
# 過濾空字符,0和None
a = list(filter(None, list1)) # 空字符和None都是布爾值爲0的
# 實現時間序
pd.date_range('20100101',periods=1000)
# 打開文件
with open("/tmp/foo.txt") as file:
data = file.read()
# 對多個row進行操做,返回到一個row中做爲值
def my_test(a, b):
return a + b
df['value'] = df.apply(lambda row: my_test(row['c1'], row['c2']), axis=1)
hive經常使用操做:
hive
hive> show tables; ---顯示錶;
hive> show databases; ---顯示數據庫,數據庫裏面有多個表;
hive> use brain; ---使用數據庫用 use;而後再使用show tables;查看裏面的數據表
hive> show tables;
hive> set hive.cli.print.header=true; ---顯示錶的headers,即column名;
hive> select * from ttc_show where ttc_show.date_col = 20180601 and ttc_show.app_id = 'ABCDEFG' and ttc_show.alg = '["related"]' limit 20;
經常使用sql:
SELECT name,country FROM Websites;
SELECT DISTINCT country FROM Websites; //選取country中去掉重複項的變量
SELECT * FROM Websites WHERE country='CN'; //注意單雙引號,from後的地址用雙引號,where後的等號用單個等號,文本內容用單引號,數字內容不用引號
Select * from emp where sal > 2000 or comm > 500; //或者用and
Select * from emp where comm is null;
Select * from emp where sal between 1500 and 3000; //數值型,字符型都有between,字符型基於首字母排序
Select * from emp where sal in (5000,3000,1500);
SELECT * FROM Websites WHERE alexa > 15 AND (country='CN' OR country='USA');
SELECT * FROM Websites ORDER BY alexa; //按某一列排序,能夠按多列排序,多列時先按第一指定列排序,再按第二等等
INSERT INTO Websites (name, url, alexa, country) VALUES ('百度','https://www.baidu.com/','4','CN'); //id列不用輸入任何字段,他是自動更新的
UPDATE Websites SET alexa='5000', country='USA' WHERE name='菜鳥教程'; //更新覆蓋數據,執行沒有 WHERE 子句的 UPDATE 要慎重,再慎重!!!!沒有where會將全部行的這一列修改
DELETE FROM Websites WHERE name='百度' AND country='CN';
SELECT * FROM Websites WHERE name LIKE 'G%'; //選取以G爲開頭的模糊查詢
SELECT * FROM Websites WHERE name LIKE '%k'; //選取以k爲尾的模糊查詢
SELECT * FROM Websites WHERE name LIKE '%oo%'; //選取含有oo字符的
SELECT * FROM Websites WHERE name NOT LIKE '%oo%'; //選取不含有oo字符的
select * from username where 用戶名 like '段_%' -- 會查出來段煜 段鑫
'%a' //以a結尾的數 'a%' //以a開頭的數據 '%a%' //含有a的數 '_a_' //三位且中間字母是a的
'_a' //兩位且結尾字母是a的 'a_' //兩位且開頭字母是a的
SELECT * FROM Websites WHERE name REGEXP '^[GFs]'; // 選取 name 以 "G"、"F" 或 "s" 開始的全部網站
SELECT * FROM Websites WHERE name REGEXP '^[A-H]'; //選取 name 以 A 到 H 字母開頭的網站
SELECT * FROM Websites WHERE name IN ('Google','菜鳥教程'); // 選取 name 爲 "Google" 或 "菜鳥教程" 的全部網站
SELECT * FROM Websites WHERE alexa NOT BETWEEN 1 AND 20;
SELECT column_name(s)
FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name; //選取兩個文件中在某一列相匹配的項
LEFT JOIN 和 RIGHT JOIN 存在的意義就是select的時候可能會有左(右)邊存在而另外一邊不存在的特定列,此時將LEFT(RIGHT)的列留下,另外一邊沒有匹配內容的賦值爲null便可
注意:搜索時,String只能用單引號,文件名用雙引號或不用
經常使用linux指令:
man 查看使用文檔
u 取消操做
cat 獲取文件內容
合併文件:cat file1.txt file2.txt > file.txt 能夠讀入任意多個文件
使用>>文本流將文件添加到另一個文件的末尾
$ cat file1.txt >> file2.txt
grep | 按條件搜索
dd 刪除 d5d 刪除5行
cp dir dir 複製文件
cp -r dir dir 複製文件夾
mv dir dir 移動文件或重命名
hadoop -put dir1 dir2語句是將dir1上數據put上dir2(hdfs)
查看hadoop上文件,文件內容:
hadoop fs -ls /dir/file
hadoop fs -cat /dir/file | head -10 (file爲壓縮文件須要解壓縮,不然爲亂碼)
從hdfs上下載文件到本地:-get
Linux中` `、$、$( ) 、${ } 區別:
$( )中放的是命令,至關於` `,例如todaydate=$(date +%Y%m%d)意思是執行date命令,返回執行結果給變量todaydate,也能夠寫爲todaydate=`date +%Y%m%d`;
${ }中放的是變量,例如echo ${PATH}取PATH變量的值並打印,也能夠不加括號好比$PATH
解壓文件:tar -cxvf ${date}.tar.gz 文件解壓後放當前文件夾,名字和tar文件名字同樣
壓縮文件:tar -zcvf finalData.tar.gz finalData/
hadoop fs -getmerge 操做只能先放到本地文件夾,而後put上hdfs
查看正在運行的程序:ps -ef | grep
kill這個任務: kill -9 30458
kill在集羣上的任務 : hadoop job -kill job_1524660075674
從服務器A傳文件到B:在B斷運行 scp 211.100.28.190:/dir/file /dir 而後須要再輸入密碼
循環對多個文件夾進行操做:
for file in /home/hustyangju
do
done
ctrl+c 中止運行程序,ctrl+z,任務維持掛起並無結束,可使用fg/bg操做繼續前臺或後臺的任務,fg命令從新啓動前臺被中斷的任務,bg命令把被中斷的任務放在後臺執行.
windows從遠程服務器下載文件到本地:sz /dir/file 或者切盤到這個文件夾 sz file 便可
記錄日誌:/dir/test.sh > /dir/test.log 2>&1 &
nohup java -jar demo2.jar >test.out 2>&1 當帳戶退出或終端關閉時,程序仍然運行
較大文件,若在遠程服務器上交互操做比較麻煩,能夠tail -n 10000 file>file_sample 而後sz 這個sample下來在window上操做,將程序調試好再拖入服務器運行
wc :統計指定文件中的字節數、字數、行數,並將結果顯示輸出。-c 統計字節數;-l 統計行數;-w 統計字數;-m 統計字符數。
組合使用時輸出結果的列的順序和數目不受選項的順序和數目的影響。輸出結果順序:行數 字數 字節數 文件名
tail -f click 查看是否在寫入數據
crontab -l 查看正在運行的按期執行程序; crontab -e 至關於vim,而後編輯便可
du -h filename/ 查看filename文件大小,ll -h 查看文件夾下全部文件的詳細信息
表示時間:date=`date -d "+1 day $startdate" +%Y%m%d`
Git:
從遠程庫下載:
ssh-keygen -t rsa -C "youremail@example.com" # 創建本地與遠程的連接,找到建立的sshkey,添加到github的ssh列表中
git clone 須要在github中有本地的ssh連接,無需在本地git init,直接將遠程庫中文件下載到本地,做爲新倉庫,文件夾中會有.git文件
計算機常識:
編碼:
在計算機內存中,統一使用Unicode編碼,當須要保存到硬盤或者須要傳輸的時候,就轉換爲UTF-8編碼。
用記事本編輯的時候,從文件讀取的UTF-8字符被轉換爲Unicode字符到內存裏,編輯完成後,保存的時候再把Unicode轉換爲UTF-8保存到文件。
ip地址是數字組成的,不方便記憶,因此有了域名,經過域名地址就能找到ip地址
http://zhidao.baidu.com 這是域名,一個ip上能夠有多個域名
http://168.103.123.465 這是IP
SSH是安全外殼協議,爲 Secure Shell 的縮寫,爲遠程登陸會話和其餘網絡服務提供安全性的協議。windows上使用遠程訪問工具Xshell,shell支持ssh協議。