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)组合。
Linux入门教程链接
Linux 简易教学 (机器学习/深度学习 莫烦 Python 教程)-bilibili
1. Linux 关机
正确的关机流程为:sync > shutdown > reboot > halt
命令 | 说明 |
---|---|
sync | 将数据由内存同步到硬盘中 |
shutdown | 关机指令 |
Shutdown –h now | 立马关机 |
Shutdown –h 20:25 | 系统会在今天20:25关机 |
Shutdown –h +10 | 十分钟后关机 |
Shutdown –r now | 系统立马重启 |
Shutdown –r +10 | 系统十分钟后重启 |
reboot | 就是重启,等同于 shutdown –r now |
halt | 关闭系统,等同于shutdown –h now 和 poweroff |
# 关机的命令有
shutdown –h now halt poweroff
init 0
# 重启系统的命令有
shutdown –r now
reboot init 6
- 1
- 2
- 3
- 4
- 5
- 6
2. 远程登陆
- SSH 为安全外壳协议 (Secure Shell) 的缩写,建立在应用层基础上的安全协议。
- SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
- SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
sudo apt-get install openssh-server #安装ssh终端
- 1
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目录。
Linux 文件与目录管理
1. 文件和目录
/
最顶级的根目录~
home目录..
上层目录.
当前目录- 隐藏目录或者文件名以
.
开始 - 绝对路径必须以
/
开头,相对路径则较短 --help
参数,帮助文档
2. 文件和目录常用操作命令
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行 |
3. Linux文件权限
Linux使用user和group控制使用者对文件的权限,每个文件或程序都有ower和group
ls -l
显示文件详细信息 chmod [options] mode file
修改文件权限
mode参数 : 权限设定字串,
[ugoa...][+-=][rwxX]
u 表示用户,g 表示群组,o 其他人,a 表示全部
+
表示增加权限,- 表示取消权限,= 表示唯一设定权限。
r(read)只读,w(write)写入,x(execute) 可执行
4. 文件的压缩和打包
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 [-jcv] -f filename.tar.bz2 dir #打包并压缩
tar [-jxv] -f filename.tar.bz2 -C dir #解压缩
- 1
- 2
参数:
-c:建立打包档案
-t:查看打包文件的文件名
-x:解压缩或解打包文件,和-C配合
-j:通过bz2程序操作
-z:通过gzip程序操作
-v:将正在处理的文件名显示出来
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)
1. 运行 Shell 脚本
作为可执行程序
chmod +x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本
- 1
- 2
作为解释器参数
/bin/sh test.sh
/bin/php test.php
- 1
- 2
2. Shell 输入/输出重定向
- 标准输入(stdin),代码0
- 标准输出(stdout)是指令成功时返回的结果,代码是1
- 标准错误输出(stderr)是指令执行失败返回的错误信息,代码是2
命令 | 说明 |
---|---|
command > file | 将输出重定向到 file。 |
command < file | 将输入重定向到 file。 |
command >> file | 将输出以追加的方式重定向到 file。 |
n > file | 将文件描述符为 n 的文件重定向到 file。 |
n >> file | 将文件描述符为 n 的文件以追加的方式重定向到 file。 |
n >& m | 将输出文件 m 和 n 合并。 |
n <& m | 将输入文件 m 和 n 合并。 |
<< tag | 将开始标记 tag 和结束标记 tag 之间的内容作为输入。 |
3. 管道操作
Linux管道符|
处理经由前面一个指令传出的正确输出信息(对错误信息信息没有直接处理能力)传递给下一个命令,作为标准的输入。
Ubuntu包管理工具
1. 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 | 查询系统中的包 |
2. 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 | 查询系统中的包 |
3. 安装R包报错处理
安装R包报错时,通常都会显示错误信息,只要按提示的错误信息安装对应的软件包即可。 sudo apt-get install libxml2-dev