1.内核及发行版
1)内核(kernel):运行程序和管理硬件的核心程序,提供了一个在裸设备和应用程序之间的抽象层。
2)发行版:提供了人机交互界面。
2.Linux的文件结构
Linux没有Windows那样的盘符概念,只有一个根目录/,所有的文件都在它下面。/下的home目录为每个用户私有。
3.Linux图形界面
Liunx发行版提供了图形界面。
4.为什么要使用终端命令?
- 实际工作中,大量的服务器维护工作都是在远程通过SSH客户端完成,并没有图形界面。
- 作为后端开发程序员,掌握一些常用的Linux命令是必需的。
5. Linux终端命令的格式
格式:command [-options] [-parameters]
命令帮助: command --help; man command.
6. 文件和常用命令
6.1 查看目录内容
1)实用技巧:
自动补全:tab键
曾使用命令:上箭头和下箭头
2)ls命令说明:
参数 |
含义 |
-a |
显示指定目录下所有文件,包括隐藏文件(以.开头) |
-l |
以列表方式显示文件详细信息 |
-h |
配合-l以人性化方式显示文件大小 |
3)ls通配符的使用
通配符 |
含义 |
* |
代表任意个字符 |
? |
代表任意1个字符 |
[] |
表示可以匹配定义字符数组中的任意1个元素 |
[abc] |
匹配abc中的任意1个 |
[a-f] |
匹配a到f范围内的任意一个字符 |
6.2 切换目录
1)cd命令的常用参数
参数 |
含义 |
cd |
切换到当前用户的主目录(/home/用户目录) |
cd~ |
切换到当前用户的主目录(/home/用户目录) |
cd. |
保持当前工作目录不变 |
cd.. |
切换到上级目录 |
cd- |
可以在最近两次工作目录之间来回切换 |
2)相对路径和绝对路径
绝对路径:在输入路径时,最前面是/或者~,表示从根目录/家目录开始的具体目录位置。
相对路径:在输入路径时,最前面不是/或者~,表示从当前目录开始。
6.3 创建和删除操作
1)touch::创建文件或者修改文件时间(如果文件已存在,就修改文件的末次修改时间)。
2)mkdir:添加参数 -p 就可以实现创建递归目录
注意同意目录下,文件和目录不能重名。
3)rm:使用该命令删除的文件,会直接从磁盘上消失。
-f |
强制删除,忽略不存在的文件 |
-r |
递归地删除目录下的内容,删除文件夹时必须加此参数 |
6.4 拷贝和移动文件
序号 |
命令 |
英文 |
作用 |
01 |
tree [目录名] |
tree |
以树状图列出文件目录结构 |
02 |
cp 原文件 目标文件 |
copy |
复制文件或目录 |
03 |
mv 源文件 目标文件 |
move |
移动文件或者目录/文件或者目录重命名 |
1)tree: 树状图列出指定目录的文件目录结构
2)cp: 复制文件或目录
-i |
如果发生覆盖,会提示 |
-r |
如果要复制目录就必须添加该选项。该选项可以递归地复制目录下的文件和目录。 |
3)mv:移动文件/目录;重命名文件/目录
6.5 查看文件内容
cat 文件名1 文件名2 |
concatenate |
查看文件内容 |
more 文件名 |
- |
分屏展示文件内容 |
grep 文本内容 文件名 |
grep |
搜索指定文件中的包含指定文本的行 |
1)cat:查看文件内容
2)more:分屏展示文件内容
3)grep:搜索指定文件的包含指定文本的行
-n |
显示行号 |
-v |
显示不包含指定文本的行 |
-i |
忽略大小写 |
常用的两种搜索模式 |
|
^a |
搜索以a开头的行 |
ke$ |
搜索以ke结尾的行 |
6.6 echo、重定向和管道
echo xxx |
将文字内容显示到终端,通常和重定向联用 |
xxx > 文件 |
将指定文本输出到指定文件,覆盖已有内容 |
xxx >> 文件 |
将指定文本追加到指定文件 |
| |
允许将一个命令的输出作为另一个命令的输入 |
1)echo:
echo hello linux > file.txt
2)重定向<和>>:
- Linux允许将命令的执行结果重定向到一个指定文件中(该文件不存在将新建一个)
- 将本应显示在终端的内容输出/追加到指定文件中(该文件不存在将新建一个)
3)|:
Linux允许将一个命令的输出通过管道作为另一个命令的输入
例如: ls ~ | grep .vim
7. 远程管理常用命令
7.1 关机/重启
shutdown 选项 时间 |
关机/重启 |
-r |
重启选项 |
不指定选项和时间,默认1分钟之后关机。
远程维护服务器时,最好不要关闭系统,而应该重启系统。
实例:
shutdown -r now 立刻重启
shutdown now 立刻关机
shutdown 20:30 系统在20:30关机
shutdown +10 系统十分钟之后关机
shutdown -c 取消关机
7.2 查看或配置网卡信息
ifconfig |
查看/配置计算机当前的网卡配置信息 |
ping ip地址 |
检测到目标ip地址的连接是否正常 |
7.3 远程登陆和复制文件
ssh 用户名@ip |
secure shell |
关机/重新启动 |
scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 |
secure copy |
远程复制文件 |
|
|
|
|
1)ssh基础(重点)
在linux中ssh是非常常用的工具,通过ssh客户端可以远程访问运行了SSH服务器的机器。
端口号:
常见服务器端口号:
- SSH服务器:22
- web服务器:80
- https:443
- ftp服务器:21
如果是默认端口号,在连接的时候可以省略。
2)SSH客户端的简单使用
命令格式: ssh [-p port] user@remote
user:在远程机器上的用户名,如果不指定的话默认为当前用户
remote:远程机器的地址,可以是ip/域名,或者是后面会提到的别名
port:SSH Server监听的端口,如果不指定,就为默认的22
注意:使用exit退出当前用户的登陆
3)scp(掌握)
- scp就是secure copy,是一个在linux下用来进行远程拷贝文件的命令
- 它的地址格式与ssh基本相同,需要注意的是,在指定端口时用的是大写的-P而不是-p
#把本地文件复制到SSH服务器下
#注意:后的路径如果不是绝对路径,则以home目录作为参考路径
scp -P 22 1.py user@remote: 1copy.py
# 把SSH服务器下的文件复制到本地
scp -P 22 user@remote:Desktop/1copy.py 1.py
##############################
# 把SSH服务器下的目录复制到本地
scp -P 22 user@remote:Desktop/dir newdir
如果在windows中使用PuTTY,可以使用pscp命令行工具进行文件拷贝:
S1. 将pscp.exe放到C盘Windows\System32目录下,这样就可以在任何地方使用pscp命令。
S2. 打开命令行,执行 pscp -P 22 user@remote:xxx xxx 就可以将SSH服务器中的文件拷贝到windows系统的指定目录下。
4)fileZilla(简单)
5)两个Linux设备之间设置SSH免密码登陆的步骤:
S1. 配置公钥:执行 ssh-kengen即可生成SSH密钥,一路回车即可
S2. 从客户端上传公钥到服务器:执行ssh-copy-id -p port user@remote,可以让远程服务器记住我们的公钥
6)配置别名
在~/.ssh/config文件中追加:
Host 别名
HostName ip地址
User 远程用户名
Port 22
保存之后,即可使用 ssh 别名实现远程登陆。
8. 用户权限相关命令
- 用户和权限的基本概念
- 用户管理终端命令
- 组管理终端命令
- 修改权限终端命令
8.1 用户 和 权限 的基本概念
1)基本概念
- 用户是linux系统工作中重要的一环,用户管理包括用户和组管理
- 在linux系统中,可以指定每个用户对不同的文件或目录的不同权限
- 对文件/目录的权限包括:
权限 |
英文 |
缩写 |
数字代号 |
读 |
read |
r |
4 |
写 |
write |
w |
2 |
执行 |
execute |
x |
1 |
2)组
为了方便管理,将拥有同样权限的用户划分为组。在实际应用中,可以预先针对组设置好权限,然后将不同的用户添加到对应的组中,从而直接管理组的权限。
3)通过ls -l查看文件权限:
目录 |
拥有者权限 |
组权限 |
其他用户权限 |
- |
r |
w |
x |
r |
w |
x |
r |
- |
- |
d |
r |
w |
x |
r |
w |
x |
r |
- |
x |
4)chmod简单使用(重要)
- chomd可以修改用户/组对文件/目录的权限
- 命令格式如下:
5)超级用户
- linux系统中的root账号通常用于系统的维护和管理,对操作系统内的所有资源具有所有权限
- 在linux安装的过程中,系统会自动创建一个用户账号,这个默认的用户称为“标准用户”
- sudo表示 substitute user do ,表示使用root用户的身份执行
6)组管理 终端命令
groupadd 组名 |
添加组 |
groupdel 组名 |
删除组 |
cat /etc/group |
确认组信息 |
chgrp -R 组名 文件/目录名 |
修改文件/目录所属组 |
9. 用户管理相关命令
9.1 创建用户/设置密码/删除用户
useradd -m -g 组 新用户名 |
添加新用户 |
- -m 自动建立用户家目录
- -g 指定用户所在的组,否则会创建一个和用户同名的组
|
passwd 用户名 |
设置用户密码 |
如果是普通用户,直接用passwd修改自己的账户密码 |
userdel -r 用户名 |
删除用户 |
|
cat /etc/passwd | grep 用户名 |
确认用户信息 |
新建用户后,用户信息会保存在/etc/passwd文件中 |
提示:
创建用户时,如果忘记添加-m选项,最好删除重建。
创建用户时,默认会创建一个同名的组。
用户信息保存在/etc/passwd文件中。
使用useradd新建的用户的终端使用的shell是dash,可以通过
usermod -s /bin/bash 用户名 改成bash
9.2 查看用户信息
id [用户名] |
查看用户UID和GID信息 |
who |
查看当前所有登陆的用户列表 |
whoami |
查看当前登陆用户的账户名 |
用户名:是否有密码:UID:GID::家目录
当只使用id时,查看的是当前用户所在的所有组。
9.3 usermod
- usermod可以用来设置 用户 的 主组/附加组 和 登陆shell,命令格式如下:
#修改用户的主组(passwd中的GID)
usermod -g 组 用户名
#修改用户的附加组,重新登录后才能生效
usermod -G 组 用户名
#修改用户登陆的shell
usermod -s /bin/bash
- 主组:通常在新建用户时指定,在etc/passwd的第4列GID对应的组
- 附加组:在etc/group中最后一列表示该组的用户列表,用于指定用户的附加权限
注意:使用useradd添加的用户,默认是没有权限使用sudo以root身份执行命令的,可以使用
usermod -G sudo 用户名
将用户添加到sudo附加组中
9.4 切换用户
su - 用户名 |
切换用户,并切换目录 |
-可以切换到用户家目录,不添加-表示位置不变 |
exit |
退出当前登陆账户 |
|
- su 不接用户名,可以切换到root,但不推荐使用,因为不安全
- exit示意图如下:
9.5 修改文件权限
chown |
修改拥有者 |
chgrp |
修改组 |
chmod |
修改权限 |
# 修改文件/目录的拥有者
chown 用户名 文件名|目录名
#递归修改文件/目录的组
chgrp -R 组名 文件名|目录名
#递归修改文件/目录权限,三个数字分别对应 拥有者/组/其他用户 的权限(r-4,w-2,x-1)。
chmod -R 755 文件名|目录名
10 系统信息相关命令
本小节涵盖:
- 时间(date)和日期(cal)
- 磁盘(df)和目录空间(du)
- 进程信息(ps,top,kill)
10.1 时间和日期
cal |
查看日历 |
-y 可以查看一年的日历 |
date |
查看系统时间 |
|
10.2 磁盘信息
df -h |
df(disk free)显示磁盘剩余空间,-h以人性化的方式显示文件大小 |
du -h[目录名] |
du(disk usage)显示目录下的文件大小 |
10.3 进程信息
ps |
process status 查看进程的详细状况
- a 选项 显示终端上的所有进程,包括其他用户的进程
- u选项 显示进程的详细信息
- x选项
|
top |
动态显示运行中的进程并排序 |
Kill 进程代号 |
终止指定代号的进程
|
11.其他命令
目标
- 查找文件find
- 软链接ln
- 打包和压缩tar
- 软件安装apt-get
11.1查找文件
find [路径] -name "*.py" |
查找指定路径下扩展名是.py的文件,包括子目录 |
11.2 软链接
软链接类似于windows下的快捷方式
ln -s 被链接的源文件 链接文件 |
建立文件的软链接 |
- 注意,没有-s选项的话建立的是一个硬链接文件,两个文件占用相同大小的硬盘空间,工作中几乎不会用到
- 源文件要使用绝对路径,不能使用相对路径,否则移动链接文件后,链接文件就不能再链接到源文件了
11.3 打包压缩
- 打包压缩是日常工作中备份文件的一种方式
- 在不同的操作系统中,常用的打包方式是不同的
- windows常用rar
- mac常用zip
- linux常用tar.gz
1)打包/解包
- tar是linux中最常用的备份工具,此命令可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件
- tar的命令格式如下:
#打包文件
tar -cvf 打包文件.tar 被打包的文件/路径
#解包文件
tar -xvf 打包文件.tar
2)压缩/解压缩
gzip
- tar与gzip命令结合使用可以实现 文件打包和压缩
- tar只负责打包不压缩,gzip负责之后的压缩,打包并压缩的文件扩展名为xxx.tar.gz
- 在tar命令中,有一个选项 -z 可以调用gzip,从而方便地实现压缩和解压缩
- 命令格式如下:
# 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径
#解压缩文件
tar -zxvf 打包文件.tar.gz
#解压缩文件到指定目录,该目录必须存在
tar -zxvf 打包文件.tar.gz -C 目标路径
bzip2
- bzip2的使用和gzip类似,不同之处在于:1)选项为-j;2)打包并压缩后的文件的后缀名为.tar.bz2
12 软件安装/卸载
12.1 通过apt安装/卸载软件
- apt是 advanced packaging tool,是linux下的一款安装包管理工具
- apt可以在终端中方便地 安装/卸载/更新 软件包
# 1.安装软件
sudo apt install 软件包
# 2.卸载软件
sudo apt remove 软件名
# 3.更新已安装的包
sudo apt upgrade
12.2 配置软件源
- 如果希望在linux中安装软件更快,可以设置镜像源,镜像源是一个访问网速更快的服务器,可以提供软件的下载服务。
Linux_01_基础