【终端入门】常用知识汇总
详情参见:Xuan-Van/Undergraduate-Learning
Big Data Application
Linux
- 基础操作:
- 打开终端:
Ctrl+Alt+F1 - 权限提升:使用
sudo命令 - 关机:
sudo poweroff - 关闭可视化界面:
sudo service lightdm stop - 软件安装与更新:
- 安装软件:
sudo apt-get install - 更新软件包列表:
sudo apt-get update - 安装远程登录系统:
sudo apt-get install openssh-server - 安装编译工具:
sudo apt-get install build-essential
- 安装软件:
- 打开终端:
- 系统管理:
- 查看所有进程:
sudo ps -aux - 列出所有文件和目录:
ll - 查看 IP 地址:
ifconfig - 查看硬盘存储情况:
df -h - 计算器:
bc - 配置文件目录:
/etc
- 查看所有进程:
- 文件权限与类型:
- 权限修改:
- 解除文件的读写权限:
chmod -rw 文件名 - 为文件开启可读、可写、可执行权限:
chmod 777 文件名
- 解除文件的读写权限:
- 文件类型颜色标识:
- 普通文件:白色
- 文件夹:蓝色
- 可执行文件:绿色
- 权限修改:
- 文件操作:
- 重定向:
- 覆盖文件内容:
> - 追加内容到文件:
>>
- 覆盖文件内容:
- 管道,将前面命令的输出作为后面命令的输入:
|
- 重定向:
- 文件系统:
- 块设备文件:b 开头
- 删除空文件夹:
rmdir - tar 压缩:
tar czvf 文件名 文件夹名 - tar 解压:
tar xzvf 文件名 - jar 解压:
jar xvf 文件名 - rar 解压:
unrar e 文件名
- 文本处理:
- 从尾行到头行显示文件内容:
tac 文件名 - 统计字符数:
wc 文件名 - 排序:
sort - 显示程序最后退出状态(0 表示正常,127 表示异常):
echo $? - 将字符串作为程序的输入:
echo 句子 | python hello.py
- 从尾行到头行显示文件内容:
运行编程语言
- 运行 Python:
python hello.py - 编译 C:
gcc hello.c -o hello - 运行 exe:
./hello - 编译 Java:
javac hello.java - 运行 Java:
java hello
nano 编辑器
- 保存:
Ctrl+O - 退出:
Ctrl+X - 撤销:
Ctrl+U - 删除:
Ctrl+K
Hadoop
| 效果 | 指令 |
|---|---|
| 登录自己的服务器 | ssh 127.0.0.1(127.0.0.1 是本机 IP 地址) |
| 首次启动格式化 HDFS | hdfs namenode -format |
| 启动 Hadoop 集群 | $HADOOP_HOME/sbin/start-all.sh |
| 显示端口使用情况 | netstat -tupln |
| HDFS 命令行工具 | hadoop fs |
| 创建 HDFS 目录 | hadoop fs -mkdir / |
| 从本地复制文件到 HDFS | hadoop fs -copyFromLocal /home/xuan/mybash /test/ |
| 将本地文件放到 Hadoop 中 | hadoop fs -put /home/xuan/bigdata/u.item /bigdata |
| 查看 HDFS 中的所有子目录 | hadoop fs -ls -R / |
PySpark
- 基本操作:
- 退出 PySpark:
quit() - 读取文件:
data = sc.textFile("文件路径") - 运行脚本(本地 k 线程运行):
spark-submit --driver-memory=1g --master local[k] 文件名
- 退出 PySpark:
- RDD操作:
- 列表转 RDD:
rdd = sc.parallelize(list) - RDD 转回原形式:
rdd.collect() - 映射操作,对 RDD 的每个元素执行函数:
rdd.map(函数名) - 过滤操作,根据条件过滤元素:
filter(lambda x:条件) - 截取 n 组数据:
take(n) - 首字母大写:
rdd1 = sc.parallelize(b).map(lambda x: x[0].upper() + x[1:]).collect() - 保留 5<=x<=10 的值:
rdd1 = sc.parallelize(a).filter(lambda x: x >= 5 and x <= 10).collect() - 统计字数:
count = sc.parallelize(a.split()).map(lambda x: (x, 1)).reduceByKey(lambda x, y: x + y).collect()
- 列表转 RDD:
- 数据处理示例:
- 电影平均分计算:
1
2
3
4
5data1 = data.map(lambda x: x.split('\t')[0:3])
data2 = data1.map(lambda x: (x[1], x[2]))
data3 = data2.map(lambda x: (x[0], (int(x[1]), 1)))
data4 = data3.reduceByKey(lambda x, y: (x[0] + y[0], x[1] + y[1]))
data5 = data4.map(lambda x: (x[0], float(x[1][0]) / x[1][1])) - 每个人打电影的平均分:
data2 = data1.map(lambda x: (x[0], x[2]))
- 电影平均分计算:
- CSV 文件处理:
- 读取 CSV 文件:
1
2
3
4data = sc.textFile("file:文件路径")
header = data.first()
rawdata = data.filter(lambda x: x != header)
rd = rawdata.map(lambda x: x.split(',')) - 删除第一列:
rd = rawdata.map(lambda x: x.split(',')[1:]) - 列去重并索引化:
cm = rd.map(lambda x: x[4]).distinct().zipWithIndex().collectAsMap()
- 读取 CSV 文件:
MYSQL
常用命令
| 描述 | 对应指令或位置 |
|---|---|
| 安装目录 | C:\Program Files\MySQL\MySQL Server 5.6\bin |
| 登录 | mysql -uroot -p123456 -h127.0.0.1 或 mysql -uroot -p123456 -hlocalhost -P3306 |
| 创建数据库 | create database bookmanage default charset gbk; 或 create database if not exists bookmanage default charset gbk; |
| 查看所有数据库 | show databases; |
| 修改 | alter database bookmanage default charset utf8; |
| 删除 | drop database bookmanage; 或 drop database if exists bookmanage; |
| 帮助 | \h |
| 设置数据库编码 | set names gbk; |
| 使用数据库 | use xscj; |
| 显示表格 | show table; |
| 显示表格结构 | describe xs; 或 desc xs; |
| 显示表格内容 | select * from xs; |
| 导入语句 | source 本地 .sql 文件路径 |
| 注释 | -- 或 /* */ |
Python 连接数据库
1 | |
乱码问题
- 显示:
show variables like '%char%'; - 修改:
set character_set_database=gbk; - 配置文件的位置:
C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
【终端入门】常用知识汇总
http://xuan-van.github.io/f2affc82f73b/