大数据手册(Linux)--Linux基础知识


大数据手册(Linux)–Linux基础知识
大数据手册(Linux)–Linux Shell教程


Linux简介

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)计划的一部分,开放源码运动的一个重要组成部分。是一种让使用者容易操作和设定电脑环境的工具。

Linux 关机

关机说明
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 为安全外壳协议 (Secure Shell) 的缩写,建立在应用层基础上的安全协议。
  • SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
  • SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

服务器上安装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 username@192.168.0.1  #linux、mac、powershell通过用户名和IP访问
exit   #注销登陆

#-----------免密码登陆-----------
#在控制端建立public key,共享到服务器
ssh-keygen  #在Mac终端或Windows PowerShell 生成key
ssh-copy-id username@192.168.0.1   #共享到服务器端
ssh username@192.168.0.1  #免密登陆

#------------上传下载文件---------
scp file username@192.168.0.1:~/Document/  #上传
scp username@192.168.0.1:~/Document/ ~/file  #下载

Linux上传和下载命令用法

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 -> 接收文件夹

Linux 重要系统目录

  • /home:用户的主目录
  • /root:该目录为系统管理员,也称作超级权限者的用户主目录。
  • /bin:bin是Binary的缩写, 常用的可执行文件
  • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
  • /boot:启动Linux时使用的一些核心文件
  • /dev :Device(设备), 该目录下存放的是Linux的外部设备
  • /etc:系统管理所需要的配置文件和子目录。
  • /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
  • /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  • /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
  • /tmp:这个目录是用来存放一些临时文件的。
  • /usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的
  • /opt:opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录

Linux 文件与目录管理

文件和目录

  • / 最顶级的根目录
  • ~ home目录
  • .. 上层目录
  • ../..上两级目录
  • . 当前目录
  • 隐藏目录或者文件名以 . 开始
  • 绝对路径必须以/开头,相对路径则较短
  • --help参数或前面加man,获取帮助文档

文件和目录常用操作命令

ls列出目录
ls -a显示隐藏文件
ls -l显示详细内容
ls -d显示目录本身的属性
cd切换目录(Change Directory)
cd dirdir 为相对路径或绝对路径
pwd显示当前目录(Print Working Directory)
pwd -P显示出确实的路径,而非使用连结 (link) 路径
创建目录或文件说明
mkdir [-mp] dir创建新目录
touch [options] files创建文件
ln [-s] file link_name创建链接,参数 s 生产软链接,类似于 Windows 的快捷方式。有利于文件依赖系统的维护等
复制文件或目录
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文件权限

Linux使用user和group控制使用者对文件的权限,每个文件或程序都有ower和group
file

ls -l 显示文件详细信息
chmod [options] mode file 修改文件权限
chown [-R] user:group file 修改所属用户与组

mode参数 : 权限设定字串,[ugoa...][+-=][rwxX]
u 表示用户,g 表示群组,o 其他人,a 表示全部
+ 表示增加权限,- 表示取消权限,= 表示唯一设定权限。
r(read)只读,w(write)写入,x(execute) 可执行

文件的压缩和打包

Linux支持的压缩格式

  • Z:compress程序压缩文件
  • gz:gzip程序压缩文件
  • bz2:bzip2程序压缩文件
  • tar:tar程序打包文件,并未压缩
  • tar.gz:tar程序打包文件,gzip程序压缩文件
  • tar.bz2:tar程序打包文件,bzip2程序压缩文件

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基础

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)
… …

运行 Shell 脚本

作为可执行程序

chmod +x test.sh  #使脚本具有执行权限
./test.sh  #在子shell中执行脚本

作为解释器参数(子shell中执行)

sh test.sh
php test.php

加载shell脚本(在本shell中加载执行)

source test.sh   #脚本中的变量可被引用

Shell 输入/输出重定向

  • 标准输入(stdin),代码0
  • 标准输出(stdout)是指令成功时返回的结果,代码是1
  • 标准错误输出(stderr)是指令执行失败返回的错误信息,代码是2
命令说明
command > file把 stdout 重定向到 file 文件中
command >> filestdout 重定向到 file 文件中(追加)
command 2> file把 stderr 重定向到 file 文件中;
command 2>> file把 stderr 重定向到 file 文件中(追加);
command < filecommand 命令以 file 文件作为 stdin
command > file 2>&1把 stdout 和 stderr 一起重定向到 file 文件中;
command >> file 2>&1把 stdout 和 stderr 一起重定向到 file 文件中(追加);
command1 < infile > outfilecommand 命令以 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`

Ubuntu包管理工具

dpkg

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

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

Linux常用操作

常用命令

常用命令说明示例
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
组件说明
minute0-60
hour0-23
day1-31
month1-12
dayofweek0-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

Linux系统自定义shell命令(以pycharm为例)

#打开配置文件
sudo vim ~/.bashrc   
#添加pycharm.sh所在的路径
alias pycharm = "bash /download/pycharm-community-2018.1.4/bin/pycharm.sh"
#重新加载
source ~/.bashrc 
#运行
pycharm

shell中的参数传入R或Python脚本

shell中调用R语言并传入参数的两种方法
Python中 sys.argv的用法简明解释

Ubuntu下JDK和openJDK

ubuntu/linux桌面添加快捷方式

错误处理

  • 安装R包报错处理
    安装R包报错时,通常都会显示错误信息,只要按提示的错误信息安装对应的软件包即可。
    sudo apt-get install libxml2-dev
    r

  • 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以及基本配置

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值