计算机常用指令

计算机常用指令记录

Python常用操作:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

 

# 画图的字体问题

from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体

mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

 

# 显示所有行列

pd.set_option("display.max_columns",None)

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协议。

posted @ 2018-11-05 21:59  Feb丶1st  阅读(369)  评论(0编辑  收藏  举报