大数据手册(Linux)–Linux基础知识
大数据手册(Linux)–Linux Shell教程
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
今天各种场合都有使用各种Linux发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用LAMP(Linux + Apache + MySQL + PHP)或LNMP(Linux + Nginx+ MySQL + PHP)组合。
Ubuntu18内置GNOME ,发音/noʊm/
即GNU网络对象模型环境 (The GNU Network Object Model Environment)计划的一部分,开放源码运动的一个重要组成部分。是一种让使用者容易操作和设定电脑环境的工具。
关机 | 说明 |
---|---|
sync | 将数据由内存同步到硬盘中 |
init 0 | 关闭系统 |
Shutdown –h now | 立马关机 |
Shutdown –h 20:25 | 系统会在今天20:25关机 |
Shutdown –h +10 | 十分钟后关机 |
重启 | |
init 6 | 重启系统 |
Shutdown –r now | 系统立马重启 |
Shutdown –r +10 | 系统十分钟后重启 |
reboot | 就是重启,等同于 shutdown –r now |
注销 | |
logout | 注销 |
服务器上安装ssh终端,在mac、Linux上通过ssh命令即可访问,windows上用power shell或安装内置Ubuntu子系统,或安装putty、Xshell、SecureCRT等软件也可访问。
Tips
SecureCRT修改默认配置文件(默认模式,编码格式等):
安装目录/config/session/default.ini
sudo apt-get install openssh-server #安装ssh服务终端
ssh [email protected] #linux、mac、powershell通过用户名和IP访问
exit #注销登陆
#-----------免密码登陆-----------
#在控制端建立public key,共享到服务器
ssh-keygen #在Mac终端或Windows PowerShell 生成key
ssh-copy-id [email protected] #共享到服务器端
ssh [email protected] #免密登陆
#------------上传下载文件---------
scp file [email protected]:~/Document/ #上传
scp [email protected]:~/Document/ ~/file #下载
rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具。
sz(Send Zmodem):将选定的文件发送(send)到本地机器
rz(Receive Zmodem):运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器
yum install lrzsz #安装工具
sz filename #从服务端发送文件到客户端
rz #从客户端上传文件到服务端,在弹出的框中选择文件
SecureCRT设置默认路径:Options -> Session Options -> Terminal -> Xmodem/Zmodem ->Directories
Xshell设置默认路径:右键会话 -> 属性 -> ZMODEM -> 接收文件夹
/
最顶级的根目录~
home目录..
上层目录../..
上两级目录.
当前目录.
开始/
开头,相对路径则较短--help
参数或前面加man
,获取帮助文档ls | 列出目录 |
---|---|
ls -a | 显示隐藏文件 |
ls -l | 显示详细内容 |
ls -d | 显示目录本身的属性 |
cd | 切换目录(Change Directory) |
cd dir | dir 为相对路径或绝对路径 |
pwd | 显示当前目录(Print Working Directory) |
pwd -P | 显示出确实的路径,而非使用连结 (link) 路径 |
创建目录或文件 | 说明 |
---|---|
mkdir [-mp] dir | 创建新目录 |
touch [options] files | 创建文件 |
复制文件或目录 | |
cp [options] source1 source2 source3 … directory | |
参数: -f -i -r |
强制复制,若已存在目录则覆盖 交互复制 递归复制目录 |
移除文件或目录 | |
rm [options] file_or_dir | 移除文件或目录 |
参数: -f -i -r |
强制删除 交互删除 递归删除目录 |
rmdir [-p] dir | 删除一个空的目录 |
移动文件与目录,或重命名 | |
mv [options] source1 source2 source3 … directory | |
参数: -f -i -u |
强制移动 交互移动 升级(update) |
文件内容查看 | 说明 |
---|---|
cat [options] file | 由第一行开始显示文件内容 |
tac [options] file | 从最后一行开始显示 |
参数: -b -n |
列出行号,包括空白行 列出行号,不包括空白行 |
nl [options] file | 显示行号输出 |
more file | 分页显示 |
less file | 分页显示 |
head [-n number] | 显示前number行 |
tail [-n number] | 显示后number行 |
Linux使用user和group控制使用者对文件的权限,每个文件或程序都有ower和group
ls -l
显示文件详细信息
chmod [options] mode file
修改文件权限
mode参数 : 权限设定字串,
[ugoa...][+-=][rwxX]
u 表示用户,g 表示群组,o 其他人,a 表示全部
+
表示增加权限,-
表示取消权限,=
表示唯一设定权限。
r(read)只读,w(write)写入,x(execute) 可执行
Linux支持的压缩格式
gzip [-cdtv#] file
参数:
-c:压缩的数据输出到屏幕
-d:解压缩的参数
-t:进行文件一致性校验,看是否损坏
-v:显示和源文件对比的压缩比
-#:压缩等级,-1最快,-9最慢,默认-6
bzip2 [-cdkzv#] file
参数:
-k:保留源文件
-z:压缩的参数,该参数代表时执行压缩操作
其他参数同gzip
tar [-jcvf] filename.tar.bz2 dir #bz2程序打包并压缩
tar [-jxvf] filename.tar.bz2 -C dir #bz2程序解压缩
参数:
-c:建立打包档案
-t:查看打包文件的文件名
-x:解压缩或解打包文件,和-C配合
-j:通过bz2程序操作
-z:通过gzip程序操作
-v:将正在处理的文件名显示出来
dir:要压缩或解压的目录
参考链接 Linux vi/vim
命令 | 说明 |
---|---|
useradd [options] username | 添加用户 {-d:用户主目录,-m:创建主目录,-g:用户组,-G:附加组,-s:用户的登录Shell,-u:用户号} |
userdel [-r] username | 删除用户,-r连同主目录一起删除 |
usermod [options] username | 修改用户,选项同useradd |
passwd [options] username | 口令管理 -l:锁定口令,即禁用账号,-u:口令解锁,-d:使账号无口令,-f:强迫用户下次登录时修改口令 |
groupadd [-go] groupname | 添加用户组 |
groupdel groupname | 删除用户组 |
groupmod [-gon] groupname | 修改用户组 |
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Linux 的 Shell 种类众多,常见的有:
Bourne Shell(/usr/bin/sh或/bin/sh)
Bourne Again Shell(/bin/bash)
C Shell(/usr/bin/csh)
K Shell(/usr/bin/ksh)
Shell for Root(/sbin/sh)
… …
作为可执行程序
chmod +x test.sh #使脚本具有执行权限
./test.sh #在子shell中执行脚本
作为解释器参数(子shell中执行)
sh test.sh
php test.php
加载shell脚本(在本shell中加载执行)
source test.sh #脚本中的变量可被引用
命令 | 说明 |
---|---|
command > file | 把 stdout 重定向到 file 文件中 |
command >> file | stdout 重定向到 file 文件中(追加) |
command 2> file | 把 stderr 重定向到 file 文件中; |
command 2>> file | 把 stderr 重定向到 file 文件中(追加); |
command < file | command 命令以 file 文件作为 stdin |
command > file 2>&1 | 把 stdout 和 stderr 一起重定向到 file 文件中; |
command >> file 2>&1 | 把 stdout 和 stderr 一起重定向到 file 文件中(追加); |
command1 < infile > outfile | command 命令以 infile 文件作为 stdin,以 outfile 文件作为 stdout; |
cat <>file | 以读写的方式打开 file |
>&n |
使用系统调用 dup2复制文件描述符 n 并把结果用作标准输出 |
<&n |
标准输入复制自文件描述符 n |
<&- |
关闭标准输入(键盘) |
>&- |
关闭标准输出 |
n<&- |
表示将 n 号输入关闭 |
n>&- |
表示将 n 号输出关闭 |
cat 'hello' > file.txt
cat < file.txt
Linux管道符|
处理经由前面一个指令传出的正确输出信息(对错误信息信息没有直接处理能力)传递给下一个命令,作为标准的输入。
last_part=`hive -e "show partitions employee;" | tail -1`
dpkg(Debian Package Management System) 是ubuntu/Debian下的二进制包(.deb格式)管理系统,包括安装、删除、查询等。
dpkg常用命令 | 说明 |
---|---|
dpkg -i pkgname.deb | 安装软件 |
dpkg -r pkgname | 删除软件 |
dpkg --info pkgname.deb | 查询软件包信息 |
dpkg --status pkgname | |
dpkg --listfiles pkgname | 查询软件包所含文件 |
dpkg --contents pkgname.deb | |
dpkg --seach filename | 查询文件归属 |
dpkg -l | 查询系统中的包 |
apt(Advanced Packaging Tool)是ubuntu/debian及派生发行版的软件包管理工具,可以自动下载,配置,安装二进制或者源代码格式的软件包。
apt常用命令 | 说明 |
---|---|
apt-get install pkg | 安装软件 |
apt-get remove pkg | 删除软件 |
apt-cache show pkg | 查询包信息 |
apt-file list pkg | 查询软件包所含文件 |
apt-file search filename | 查询文件归属 |
apt-cache pkg | 查询系统中的包 |
给ubuntu16.04更新软件源
在Ubuntu中添加和删除PPA的软件源
#mysql
sudo apt-get install mysql-client
sudo apt-get install mysql-server
常用命令 | 说明 | 示例 |
---|---|---|
echo string | 输出字符串 | echo "It is a test" |
locate filename | 查找子目录和文件 | |
sudo command | 以系统管理者的身份执行指令 | |
date +format | 显示当前完整的时间 转换格式 日期加减运算 |
date '+%D' date -d '2018-08-05' '+%Y%m' date -d '+2 months 2018-08-05' |
ifconfig | 查看局域网IP | |
curl ifconfig.me | 查看外网IP | |
scp file1 file2 | 上传或下载文件 | |
exit n | 退出当前脚本,参数n为默认约定,0表示成功,非0表示失败 | |
grep patern files | 在file中查找pattern | |
printf format-string [arguments…] | 指定格式输出 | printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg |
jobs -l | 显示任务详情 | |
kill -9 id | 结束任务id | |
nohup command > log 2>&1 & | linux后台执行命令,必须转化为Linux格式运行 |
today=`date +"%Y%m%d"`
last_date=``date -d "-1 day ${today:0:6}01" +"%Y%m%d"
sed -i "1d" filename #删除第一行
linux任务调度的工作主要分为以下两类:
系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
crontab [ -u user ] file
参数说明:
file:时程表文件
-e : 执行文字编辑器来设定时程表(默认vi)
-r : 删除目前的时程表
-l : 列出目前的时程表
时程表文件格式:
minute hour day month dayofweek command
组件 | 说明 |
---|---|
minute | 0-60 |
hour | 0-23 |
day | 1-31 |
month | 1-12 |
dayofweek | 0-6 |
command | 要执行的程序 |
* | 代表任意时间 |
*/n | 代表每隔n时间 |
a-b | 代表a到b这段区间 |
a, b, c,… | 分别在a, b, c,… 时间执行 |
example
0 * * * * /bin/ls #每小时的0分钟执行ls
0 6-12/3 * 12 * cd /usr/bin/ && sh backup > log 2>&1 & #12月每天6-12点每隔3小时执行一次backup
#打开配置文件
sudo vim ~/.bashrc
#添加pycharm.sh所在的路径
alias pycharm = "bash /download/pycharm-community-2018.1.4/bin/pycharm.sh"
#重新加载
source ~/.bashrc
#运行
pycharm
shell中调用R语言并传入参数的两种方法
Python中 sys.argv的用法简明解释
安装R包报错处理
安装R包报错时,通常都会显示错误信息,只要按提示的错误信息安装对应的软件包即可。
sudo apt-get install libxml2-dev
pycharm
打开脚本报错Gtk-Message: Failed to load module “canberra-gtk-module”
解决方法:sudo apt-get install libcanberra-gtk-module
参考链接:
Linux入门教程链接
Linux 简易教学 (机器学习/深度学习 莫烦 Python 教程)-bilibili
RHadoop培训 之 Linux基础课
在win10系统下安装ubuntu17.10以及基本配置