Linux笔记
2022-07-21 13:56:59 0 举报
AI智能生成
登录查看完整内容
Linux的归类导图,省的天天看笔记了,还不够清晰,正在慢慢补充
作者其他创作
大纲/内容
待续
安装
基本配置
CentOS
Ctrl+Alt+F1
图形界面
Ctrl+Alt+F2~F6
tty
图形界面和终端
前边是用户名
后边是所在域/主机名
@
当前用户家目录 home
~
普通用户
$
超级用户 root
#
sudo 用户名
然后输入密码,回车
切换用户
命令后什么也不输入:关闭当前终端
给终端传递EOF(End Of File,文件结束符)
Ctrl+D
exit
退出root用户
获取当前用户名
whoami
输出主机名
hostname
命令提示符:提示在其后输入命令,有权限的限制
CST:中央标准时间
date
-a列出当前目录下的所有文件,包含隐藏文件。
以点开头的都是隐藏文件
ls -a
蓝色:目录
ls
简单命令
命令可以包含多个参数和参数之间空格隔开
command -p
command -p -a -T -c
command -paTc
横杠接字母
短参数
command --parameter
command --parameter1 --parameter2
不能像短参数合并
command -paTc --parameter1 --parameter2
可以和短参数混用
两个横线
长参数
ls --all
效果一样
command -p 10
command --parameter=10
长、短参数不同
参数的值
命令参数
命令符号
Tab两次补全命令和文件名、路径名
空格下一页
回车下一行
q退出
y:分页显示
如果显示文件过多
按时间顺序向前查找用过的命令
按向上键
按时间顺序向后查找用过的命令
按向下键
查找使用过的命令
Ctrl+R
列出之前使用的所有命令
!编号:重新运行对应编号的命令
histroy
历史记录
Ctrl+L
clear
清理终端内容
向上滚屏,与鼠标向上滚轮同效
Shift + PgUp
Shift + PgDn
光标跳到一行命令开头,同Home
Ctrl + A
光标跳到一行命令结尾,同End
Ctrl + E
删除光标左侧的命令字符
Ctrl + U
删除光标右侧的命令字符
Ctrl + K
单词指空格隔开的一个字符串,例如-a就是一个单词
删除光标左侧一个单词
Ctrl + W
恢复(Ctrl + W|Ctrl + U|Ctrl + K)删除的单词,类似剪切粘贴
Ctrl + Y
常用命令和快捷键
.txt
.doc
.odt
等
文本类型的文件
.wav
.mp3
.ogg
程序
声音文件
此类文件windows中也有
普通文件
例如光盘驱动
表示一些东西
特殊文件
类型分类
Linux中一切皆文件
windows中是反斜杠\\表示,Linux中是斜杠/ 表示
层级关系
可包含空格等符号
尽量不使用空格或者其他特殊符号
尽量用小写英文字母
命名规则
/
有且只有一个根目录
没有比根目录再高一阶的目录,没有目录包含根目录
Linux最顶层目录
根目录
ls /
列出命令
bin
boot:英语boot表示“启动” boot目录包含与 Linux启动密切相关的文件
boot
dev
etc
home
lib
media
mnt
opt:英语 optional application software package的缩写表示“可选的应用软件包用于安装多数第三方软件和插件
opt
root
sbin
srv
tmp
类似 Windows中的 C: \\Windows和C:\\ Program Files这两个文件夹的集合usr目录里安装了大部分用户要调用的程序
usr
根目录的直属子目录
https://linuxtoy.org/archives/linux-file-structure.html
文件系统结构图
目录结构
文件名
权限
文件内容
每个文件都分三个部分通常说两个:文件名和文件内容
组成
因此每个文件名都绑定到它的文件内容(用inode标识)
存储
文件
显示当前目录的路径
Print Working Directory ( “打印当前工作目录” )的缩写
pwd
获取命令的可执行文件的位置
which
列出文件和目录
蓝色-->目录
绿色-->可执行文件
红色-->压缩文件
浅蓝色-->链接文件
灰色-->其他文件
CentOS 的终端默认是有颜色标注的。一般来说
开启颜色标注: Is --color=auto
关闭颜色标注: Is --color=none
颜色标注
一个点就是当前目录
点点就是它的上级目录
唯一不同就是-A不列出.和..这两个文件
所有文件的大小,0千字节
total 0 :并不是统计当前目录真正的所有文件的大小,逐层的文件大小相加。只是统计了当前这一层的文件的大小,并没有深入的统计总的所有文件(包含子目录)的大小,
文件权限:dkwxr-xr-x之类的。
文件的所有者的名称
文件所在的群组
最近一次修改的时间
每一个文件或目录都有对应的一行信息
-l参数使得Is命令列出一个显示文件和目录的详细信息的列表
-t参数:按照文件或目录最近一次修改时间的降序排列
时间最近一次排序,然后是列出所有文件,然后又是列出它的详细信息, -h就是便于人类阅读
-h的效果,多少多少k。1k就是1024个字节。
-t:按文件最近一次修改时间排序
参数
cd命令后面接的参数就是一个:你要去的那个目录的路径
一个点表示当前目录,两个点表示上一级目录
相对路径:相对于当前目录的一个路径表示法
路径
cd /home/oscar
cd ~
cd /usr/games
重回家目录的3种方式
cd
浏览和切换目录
显示目录包含的文件大小
-h参数的用法类似之前在Is命令中的-h参数: du-h
-a显示文件和目录的大小
du列出的都是些目录
可能没有权限去访问
-s:只显示总计大小
du
目录大小
cat 命令可以一次性在终端中显示文件的所有内容
用法:只需要在命令后加上想要显示的文件路径即可
输出了里面所有内容,一个屏幕都显示不开。所以cat适合处理小点的文件,因为它会一次性显示全部,不适合一次显示全部的文件
一次性显示文件的所有内容
显示文件的编号: cat -n Xorg.9.log
cat -n Xorg.9.log Xorg.0.log
连接两个文件,一并输出
cat
和cat 命令最大的区别: less会分一页一页地显示文件内容
左下角显示文件的名字。每页显示若干行,取决于终端屏幕的大小
分页显示文件内容
与键盘上的PageDown (下一页)效果一样
空格键:文件内容读取下一个终端屏幕的行数
b键:后退一页。与键盘上的PageUp (上一页)效果一样
y键:后退一行。与键盘上的向上键效果是一样的
d键:前进半页(半个屏幕)
u键:后退半页(半个屏幕)
会显示当前页面的内容是文件中第几行到第几行
lines表示行
=号:显示你在文件中的什么位置
h键:显示帮助文档。按q键退出帮助文档
输入内容,然后按下回车键
在搜索结果中跳转。按n键。就跳到下一个搜索到的关键词了
用大N键的话。就是调到上一个符合的内容。n是英语next的缩写
正则表达式(Regular Expression )也是可以用在搜索内容中
/(斜杠):进入搜索模式
less
head Xorg.9. log
显示文件的开头几行
head
显示文件结尾的几行
tail -f -s 4 Xorg.9.log
tail 命令还可以配合-f参数来实时追踪文件的更新
可以用快捷键Ctrl + c来终止tail -f命令
tail
创建一个空白文件
touch 命令其实一开始的设计初衷是修改文件的时间戮就是可以修改文件的创建时间或修改时间让电脑以为文件是在那个时候被修改或创建的
touch new_file1 new_file2
touch同时创建多个文件
touch \"new_file\"
创建的文件名,如果带空格,那么就需要用双引号括起来。在linux中尽量不要让文件名包含空格。
touch
创建一个目录
如果文件夹带空格也是用双引号
还可以用-p参数来递归创建目录结构: mkdir -p one/two/three
mkdir
创建文件
浏览和创建文件
*
通配符
cp file1 file1copy:复制文件file1,复制一个新的叫做file1copy
之前创建的目录one将其拷贝为one_copy cp r one one_copy
拷贝目录
cp
移动文件(或目录)
mv new_file renamed_file以上命令将new_file 重命名为renamed_file
重命名文件(或目录)
mv命令有两个功能
mv
文件的复制和移动操作
在终端中没有回收站或垃圾箱
rm命令可以删除一个文件、多个文件、目录
甚至你的整个Linux系统(如果你愿意的话)
rm new_file_copy 除当前目录下的 new_file_copy 这个文件
例如: rm file1 file2 file3
语法
-i参数:向用户确认是否删除
强制删除file文件
rm -f file
-r参数:递归地删除
干万不要这样做!=> rm -rf /*或者rm -rf /
整个命令的意思很明确:强制递归删除根目录下所有文件!
rm: use --no-preserve-root to override this failsafe意思是:“如果你坚持要在根目录/上递归地运行rm命令那么请加上--no-preserve-root 来取消保护\"
cd / 后 sudo rm -rf *
CentOS系统对下面的命令是没有防护措施的
rm命令加-r和-f参数:极为危险!。
rm
看着和rm-r挺像
但是这个命令有个局限性:只能删除空的目录
rmdir
删除
用一个你比较熟悉的词:快捷方式虽然Linux 的链接比起Windows的快捷方式要更复杂一些但是性质是类似的
原理
可以用Is -i命令查看一下(-i参数可以显示文件的inode)可以看到file1和file2 的inode是一样的
只有既删除file1又删除file2它们共同指向的文件内容才会消失也就是那个inode才会被删去
特点
In file1 file2
创建硬链接
Physical link : 物理链接或硬链接
In -s file1 file2 :创建了 file1 的软链接 file2
ls -l 查看
如果删除file1 那么 file2变成红色了
Symbolic link :符号链接或软连接
链接类型
In
链接
文件的删除和链接
命令
文件和目录
sudo 命令: 暂时以root 身份运行命令
sudo su 命令: 一直成为root
exit 切回到普通用户
不仅切换到了root用户,而且切换到了root的家目录
只需要su命令就可以了。比较建议再加一个横线 su -
ctrl+D 退出
sudo -i 和 su -
成为root用户
介绍
普通用户下提示无权限(权限被否决)\"bash: /usr/sbin/useradd: Permission denied\"
没有给新用户创建密码。这个用户就暂时还不能使用。
useradd 用户名 :命令:添加新用户
ls /home 查看用户
passwd 用户名 :命令:修改密码
如果执行提示 当前要删除用户正在被process进程PID 使用着,可以重启下当前系统重启后,默认进入的是登录账户切换到root。再删除用户
userdel 这个命令还是要谨慎使用
用rm -rf删除home下的thomas目录。rm -rf /home/thomas
这样home下就没有oscar这个目录了。
如果你想要连此用户的家目录也一并删除(”抄家“)
可以加上-r或--remove这个参数userdel -r thomas 或者 userdel --remove thomas
userdel 用户名 :删除用户
修改
用户的crud
root才能执行的命令
用户
查看用户
第三列是目录的所有者。第四列是目录的群组
ls -l /home
概念
groupadd 群组名
用户thomas改为群组friends
usermod -g friends thomas
-g:修改用户所在群组
注意
例如: usermod -aG good thomas
把thomas追加到good这个群组
-G添加多个群组
usermod 命令:修改用户账户
创建群组
groups thomas
查看群组
groupdel 群组名
删除群组
群组
用Is -1命令来看一下它的信息。file.txt的所有者和群组都是 普通用户(oscar)(这里不用root去创建,如果是root切换成普通用户创建)
ls -l file.txt
查看所有者和群组
chown thomas file.txtfile.txt
chown oscar:friends file.txt
假如想要把用户 thomas的家目录的所有子目录和文件都占为己有
chown -R oscar:oscar /home/thomas
/home/thomas 我( oscar ) 所有了
-R参数:递归设置子目录和子文件
chown 命令:改变文件的所有者
chgrp thomas file.txt
chgrp命令:改变文件的群组
在我们运行Is-1命令的时候显示的每个文件或目录的第一列信息就是访问权限
exit退出root。然后pwd查看我们所在的目录
ls -l test/
文件访问权限符
文件的第一列
查看流程
SELinux全称Security-Enhanced Linux,是一种访问控制体系。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上。SELINUX有「disabled」「permissive」,「enforcing」3种选择。
Disabled就不用说了,permissive就是Selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你的违反的内容记录下来。Enforcing就是你违反了策略,你就无法继续操作下去。SELinux提供了比传统的UNⅨ权限更好的访问控制
Enforcing
getenforce
我们可以通过getenforce来查看SELinux的运行模式
接着创建一个文件,会发现创建的这个文件的权限后面有点,启用了安全标签
SELINUX=disabled
接下来,修改selinux配置文件, vim /etc/sysconfig/selinux,关闭安全标签
Disabled
重启系统,再验证,如下,发现关了
这时候新建一个文件,发现文件权限后面的小点没了,和我们平时看到的文件权限一样,正常了。
这个时候我们再修改配置文件,打开selinux标签,然后重启系统,会发现testforselinuxoff文件加上了这个安全标签,而且权限的后面又多了一个点。
含义
d表示文件或者目录的属性符号
第一组rwx表示文件的所有者对于文件的访问权限
第二组rws表示文件所属的群组的其他用户对于次文件的访问权限
第三组rws表示除两组之外的其他用户对于此文件的访问权限
那是因为访问权限是按照用户来划分的
ls -l renamed_file
renamed_file 这个文件的访问权限是-rw-rw-r-
r--:表示其他用户(除去oscar这个群组的用户)只可以读此文件但不能写也不能执行“可远观而不可亵玩焉”
解析-rw-rw-r-
例子分析
权限的原理
解释
三位二进制数转十位而已
6:文件的所有者有读和写的权限4:文件所在群组的其他用户具有读的权限0:除此之外的其他用户没有任何权限
举例640
ls -l renamed_file
查看权限
renamed_file 文件的访问权限被修改为了:rw------
chmod 600 renamed_file
用数字来分配权限chmod 的绝对用法
和权限字母配合的几个符号
chmod u+rx file文件file的所有者增加读和运行的权限chmod g+r file 文件file的群组其他用户增加读的权限chmod o-r file 文件file 的其他用户移除读的权限
举例
用字母来分配权限chmod 的相对用法
-R参数:递归地修改访问权限
chmod 命令:修改访问权限
修改文件的所有者和群组
群组的管理和文件权限
用户权限、群组、文件权限管理
一般用于修改配置文件
mac也有
快捷键
Nano
Vim
Emacs
文本编辑器
yum update不删除旧包
而yum upgrade删除旧包
基本没区别
默认情况下没有区别,而使用 update 则更为灵活
区别
yum update / upgrade : 更新软件包
sudo yum search
yum search:搜索软件包
sudo yum install xxxxxx 是对应软件包名
yum install:安装软件包
sudo yum remove xxx或者 sudo yum autoremove xxxXXX是对应软件包名
yum remove:删除软件包
常用的终端的软件包命令
包管理工具
软件包(package)
因为Linux 是在Windows之后诞生的(1991年前后)为了避免Windows的这个“弊端”Linux 选择创建一个集中存放软件的地方
全球有很多个软件仓库(也就是有很多服务器)
要编辑的那个包含软件仓库的列表的文件是
/etc/yum.repos.d/CentOS-Base.repo
sudo nano /etc/yum.repos.d/CentOS-Base.repo
https://www.centos.org/download/mirrors/
CentOS 官方的源列表
软件仓库绝不只是存放在一台服务器上
有时候CentOS默认的yum源不一定是国内镜像,导致yum在线安装及更新速度不是很理想。这时候需要将yum源设置为国内镜像站点。国内主要开源的开源镜像站点应该是网易和阿里云
1、首先备份系统自带yum源配置文件/etc/yum.repos.d/CentOS-Base.repo
[root@localhost ~] # mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、进入yum源配置文件所在的文件夹
[root@localhost ~] # cd /etc/yum.repos.d/
[root@localhost yum.repos.d] # wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
CentOS7
[root@localhost yum.repos.d] # wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
CentOS6
[root@localhost yum.repos.d] # wget http://mirrors.163.com/.help/CentOS5-Base-163.repo
CentOS5
3、下载163的yum源配置文件到上面那个文件夹内
[root@localhost yum.repos.d] # yum makecache
4、运行yum makecache生成缓存
5、这时候再更新系统就会看到以下mirrors.163.com信息
修改CentOS默认yum源为mirrors.163.com
[root@localhost ~] # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~] # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
[root@localhost ~] # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
2、下载ailiyun的yum源配置文件到/etc/yum.repos.d/
[root@localhost ~] # yum makecache
3、运行yum makecache生成缓存
4、这时候再更新系统就会看到以下mirrors.aliyun.com信息
修改CentOS默认yum源为mirrors.aliyun.com
切换CentOS的软件源
软件仓库(repository)
依赖(dependency)关系
软件仓库
RTFM(命令手册)
————————————以下开始高级部分————————————
grep命令:筛选数据
grep text file
在etc下的profile文件内搜索path这样一个文本。而且显示所有包含path的行。
grep path /etc/profile
查找中间带空格的
双引号包括起来
grep \"Hello World\" file
简单用法
grep -i path /etc/profile
-i参数 忽略大小写
grep -n path /etc/profile
-n参数:显示行号
grep -v path /etc/profile
-v参数:只显示文本不在的行
rgrep
-r参数:在所有子目录和子文件中查找
高级用法,配合正则表达式
E是extended regular expression 的第一个字母表示“扩展的正则表达式\"grep -E Path /etc/profile
egrep
grep ^path /etc/profile
grep -E ^path /etc/profile: ^匹配行首(匹配输入字符串的开始位置)
[Pp]既可以匹配大P也可以匹配小p
grep -E [Pp]ath /etc/profile
grep -E [0-4] /etc/profile:用于搜索包含0至4的任一数字的行
grep -E [a-zA-Z] /etc/profile:包含在a至z之间的任一字母或A-Z之间的任意字母的行
示例
-E参数:使用正则表达式
正则
sort是英语“排序”的意思sort命令用于对文件的行进行排序
Quick Sort
快速排序
Merge Sort
归并排序
Insertion Sort
插入排序
排序算法
按照首字母进行了排序。sort并不区分大小写。
sort name.txt
nano name.txt
例子
name_sorted.txt就存储了排序后的结果
sort -o name_sorted.txt name.txt
-o参数:将排序后的内容写入新文件
sort -r name.txt
-r参数:倒序排列
-R参数:随机排序
sort不加-n参数。这样就把数字当做字符串了。按照1到9的顺序排列了
加上-n参数就会真的按照数字来排序,按照数值的大小来排列了
-n参数对数字排序.
sort 命令:为文件排序
所以就是41+9 是50个字节。
第一个9是9行的意思。一共有9个单词这是第二个9的意思。9行9个换行符。换行符占用9个字节。
行数(newline counts ): newline 是英语“换行、换行符”的意思单
词数(word counts ): word 是英语“单词”的意思
字节数( byte counts ): byte是英语“字节”的意思
wc命令显示的三个数字
wc name.txt
查看手册
man wc
wc -I name.txt
-l参数:统计行数
-w参数:.统计单词数
也许c是character (英语“字符”的意思)的缩写吧
-c参数:统计字节数
-m统计字符数
wc命令:文件的统计
uniq repeat.txt
处理后的文件保存到新的文件中
uniq repeat.txt unique.txt
uniq -c repeat.txt
-c参数:统计重复的行数..
uniq -d repeat.txt
-d参数:只显示重复行的值
uniq命令:删除文件中的重复内容..
cut是英语“剪切”的意思cut命令用于对文件的每一行进行剪切处理
只保留了234位的字符
cut -c 2-4 name.txt
-c参数:根据字符数来剪切.
CSV 是Comma Separated Values B缩写翻成中文是“逗号分隔值”
Ctrl+X 退出。然后输入文件名然后输入y,输入回车 就退出并保存了文件
span style=\
nano notes.csvnote是英语\"成绩”的意思
学生名字成绩(满分是100分)评语
逗号分隔开的。这三部分分别是下面
cat notes.csv
cat命令看下当前的文件
创建一个csv格式的文件
CSV 格式
这样就从notes.csv里面剪切出来了第一部分内容
要1和3这两部分
剪切第二部分 直到最后的内容
cut命令进阶根据分隔符来剪切
article data-content=\
把剪切出来的文件存储到文件里,而不是像之前那个显示在终端
cut命令:剪切文件的一部分内容
数据操作
正则表达式和数据操作
>可以将命令的输出结果重定向到你选择的文件中
运行这个命令,终端不会有任何的显示
而且是不会征求用户确认的
注意事项
此文件具有唯一的属性:它总是空的它能使发送到/dev/null 的任何数据作废就好像这些数据掉进了无底的黑洞一般
输出文件到黑洞
Linux 中有一个俗称“黑洞”的文件/dev/null
> 重定向到新的文件
>> 重定向到文件末尾.
stdin 标准输入流
我们运行ls 就列出当前目录下的所有文件。这就是标准输出 stdout
比如
标准输出: stdout。指终端输出的信息(不包括错误信息)
stdout :标准输出流
我们用cat notes.csv文件,如果里面还有内容,正常显示那么这就是标准输出。
如果notes.csv文件不存在,那么终端就显示错误信息。那么这就是标准错误输出
标准错误输出: stderr。指终端输出的错误信息
stderr标准错误输出流.
文件描述符
图解
因为not_exist_file.csv这个文件是不存在的。所以这里会产生错误。但是这个错误并没有如愿的写入到results.txt中。这个错误仍旧在终端输出了。>和>>只是将标准输出重定向到文件。并没有把标准错误输出到重定向文件。如果我们要重定向标准错误输出,该怎么办呢?就要用到2>符号
终端没有显示错误信息
errors.log文件是输出的错误信息
cat not_exit_file.csv > result.txt 2> errors.log
2>符号
2>>符号用于将标准错误输出重定向到文件末尾
2>>符号
将标准错误输出重定向到与标准输出相同的地方
标准输出和标准错误输出都重定向到results.txt
如果追加内容的话。前面用两个大于号。
cat not_exits_file.csv > results.txt 2>&1
2>&1组合符号
输出重定向符号
符号用于指定命令的输入cat < notes.csv
虽然运行结果一样,但是原理不一样
cat 命令接受的输入是notes.csv 这个文件名那么它要先打开notes.csv文件然后打印出文件内容
cat命令接受的输入直接是notes.csv 这个文件的内容cat命令只负责将其内容打印打开文件并将文件内容传递给cat 命令的工作则交给终端完成
cat < notes.csv
cat < notes.csv 的运行结果和 cat notes.csv一模一样
< 从文件中读取
进入了键盘输入模式。光标一直在闪动
sort -n是按照从小到大排列。那么我们就输入数值,每输入一个数值就用回车来换行。最后输入END来结束输入。END被称作结束字符串。当然你也可以用其他字符串来代替END
输入结束的END然后回车。数字被从小到大的进行排序了。
wc命令,用来统计字符wc -m << END
当然也可使用其他命令
<< 从键盘读取
输入重定向
sort -n << END > numbers_sorted.txt 2>&1
在控制台输入一些东西然后存到numbers_sorted.txt文件内
输入和输出来结合使用
使用率高的符号,一个竖线
现在要cut和sort排序连起来。用管道连接
输出到txt内。就是结果重定向到txt
之前学习过用cut把字符剪切
head命令的作用:如果不用-n参数去指定函数,那么head会默认显示前10行。
du命令是深入遍历当前目录下每个子目录。把所有文件大小都做一个统计,du命令的输出结果就会做为sort -nr的输入
然后sort-nr:是表示数值,此处就是文件的大小进行排序,默认是小的在前面,-r是实现倒叙排列,有了-r参数,那么排序就是大的数字在前面了
前面两个命令的输出 又最后作为head命令的输入,head就是列出前10行。所以我们得到的结果就是从大到小的排序,列出前10个文件
du | sort -nr | head
根据大小排序目录
sudo grep log -Ir /var/log | cut -d : -f 1 | sort | uniq
grep可以在文件中查找关键字,显示关键字所在行。有时候我们会觉得显示的信息太冗长了。每一行不仅有文件名还有关键字出现的那行文本
遍历/var/log这个目录及其子目录。列出所有包含log这个关键字的行 -l参数用于排除二进制文件, -r参数用于递归遍历
sudo grep log -lr /var/log
分解命令
cur -d : -f 1
从sudo grep log -Ir /var/log 的输出结果中只剪切出文件名那一列(由冒号分隔的第一个区域)
sort:将文件名的列以首字母顺序进行排序
uiniq:去掉重复的文件名
grep
列出关键字的文件
实践
管道符号
重定向符号、管道符号
Linux 是多任务多用户的操作系统
可能某个用户或者某个任务(其实就是运行着的程序)在某时让Linux系统过载了就是任务太繁重了
多用户多任务的隐患
Windows系统下超级组合键
前置内容
迄今为止遇到过的最短的命令: w可以帮助我们快速了解系统中目前有哪些用户登录着以及他们在干什么
uptime命令其实就是w命令的第一行信息
运行时间(用uptime命令也可以做到)
up表示已经已经运行了多长时间。一旦系统重启或者是关机,这个运行时间就会归零。linux中一般只有系统的内核升级才会要求重新启动系统,一般安装软件是不需要重启系统的。
up
表示登陆终端的用户数量
users
1分钟之内的平均负载5分钟之内的平均负载15分钟之内的平均负载
负载的三个数值
这些数字就是一段时间的平均活跃进程数。也就是使用cpu处理器的进程数。进程简单的来说就是运行起来的程序。
绘制随时间变化的负载曲线图
左上角的三个数值就是对应的1、5、15分钟的平均负载。途中横坐标是表示时间,纵坐标的高低表示负载的大小
Ctrl+C结束 运行。在运行w看下 负载。
tload
系统负载运行曲线图
负载(同样可以用uptime命令获知)
登录的用户列表(用who命令也可以做到)
运行who (who是英语“谁”的意思)命令会输出当前哪些用户正登录着
who
w命令,除去第一行,下面的三行是归为一个部分的。登陆的用户的列表。当下系统中,链接的用户是哪几位?他们在做什么?任务进行多长时间了。
Ctrl+F1回到图形界面后,:0就是对应的TTY1 图形终端, 就是我们平常启动centOS桌面版时登陆的图形界面
TTY登录的终端名称
from是英语“从\"的意思
FROM :用户连接到的服务器的IP地址(或者主机名)
因为我们都是本机登陆的,所以ip这里都显示的:0.表示我们登陆的是一个本地的电脑。
from
用户连接系统的时间
LOGIN@
用户有多久没活跃了(没运行任何命令)
IDLE
该终端所有相关的进程使用的CPU(处理器)时间
JCPU
表示CPU (处理器)执行当前程序所消耗的时间
当前进程就是在WHAT列里显示的程序
PCPU
当下用户正运行的程序
WHAT
w
有的程序运行时却会创建不少进程例如Google 的Chrome 浏览器每开一个标签栏都会创建一个新的进程
ps\\top 列出运行的进程
进程的静态列表
PID:进程号
pid 是 process identifier 的缩写每个进程有唯一的进程号
pid
CMD:产生这个进程的程序名
如果你在进程列表中看到有好几行都是同样的程序名那么就是同样的程序产生了不止一个进程
cmd
不加任何参数直接运行ps命令
PPID ( parent process ID) : PPID是程序的父进程号
列出所有进程
-ef参数可以使ps 命令列出所有用户在所有终端的所有进程
ps -ef
less命令会帮我们显示的信息清晰点
还可以配合管道和less命令来方便查看
ps -ef | less
常用命令 查找某程序的所有进程
ps -ef | grep 程序名
多层缩进,表示这个进程是这个进程的子进程
-efH 可以使 ps命令按照乔木状列出进程
ps -efh
列出此用户运行的进程
ps -u 实际的用户名
通过CPU 和内存使用来过滤进程
ps -aux --sort -pcpu | less
根据CPU使用率来降序排列
ps -aux --sort -pmem | less
根据内存使用来降序排列
ps -aux 或者 ps -aux | less
表示了父进程和子进程的关系
以树形结构显示进程
pstree
ps-axjf 和pstree效果比较类似
ps -axjf
ps
第一行相当于我们原来的w命令
显示的内容是占据整个终端页面大小的数据
下面是进程的列表。top命令无法显示全部的进程,只显示排在前面的进程
top命令的前几行就是最消耗的
输入top。随时间一直在变化。这个列表实时更新的。
j就进入到了命令的一个帮助文档
按q回到top命令的主界面
f/F:在进程列表中添加或删除某些列
按下u后,会在这里让你输入要显示的用户
按下回车
按下u,啥也不输入。直接回车就是显示原来的内容。
u:依照用户来过滤显示
比如输入PID 回车后就会结束掉这个进程。按下esc就是取消这个操作
按下k就会让你输入要结束掉的进程号
s:改变刷新页面的时间
一些键盘的按键
而在终端中拷贝和粘贴需要用 \"Ctrl + Shift + C\" 和 \"Ctrl + Shift + V\" 来执行
Ctrl +C:停止终端中正在运行的进程
进程是root用户启动的,前面加上sudo
sudo kill PID
kill 8461 8561 1706
可以用kill -9 PID来立即强制结束进程
kill -9 PID
假设我开了好几个终端,每个终端我都运行find命令
列出所有oscar用户运行的find命令。前提是如果他们是不同的终端去打开的话。
ps -u oscar | grep find
killall find
同一个程序运行时可能启动多个进程一个更快捷的命令: killallall是英语“全部”的意思
killall
kill 命令:结束一个进程..
进程的动态列表
top
yum install epel* -yyum install python-pip python-devel -yyum install glances -y
sudu
glance软件
yum install -y epel-releaseyum install -y htop
我们上面在安装glances的时候 已经安装过epel这个软件。所以我们这里在安装htop的时候,只需要运行第二句话就可以了。
运行htop
q退出软件的显示
htop 软件
系统监控软件
进程和系统监控
例如ls就是列出当前目录下的文件。这些命令就是运行在前台的
后台进程与键盘没有必然的关系
在后台运行进程
1表示它是当前终端的第一个后台进程。 15479就是PID进程号Done表示这个后台进程执行完毕
cp file.txt file-copy.txt &
让终端记住oscar的密码。先用sudo su 输入oscar的密码 这样就切换成了root用户。然后exit退出root用户身份。这样当前终端就是暂时记住了你的用户密码
我们再运行这句。这样就不会提示你再输入oscar的密码了
以root身份在根目录查找所有以.log结尾的文件。 最后&表示在后台运行。
终端中一直在显示查找到的内容不得不ctrl+C退出上面命令的运行结果页
可以把find的结果重定向到文件内
这样不会一直有信息输出了。但是还是会有点信息输出,标准错误信息。
可以把标准错误信息也重定向到文件内 2>&1
sudo find / -name \"*log\" > output_file 2>&1 &
sudo find / -name \"*log\" > output_file &
sudo find / -name \"*log\" &
&
使进程与终端分离
想让进程在以上情况下仍然继续在后台运行须要用到nohup命令
man nohup的命令解释
可以用nohup命令使命令不受HUP 信号影响
忽略输入了。把输出都追加到了nohup.out文件中
nohup cp file.txt file-copy.txt
ps -ax | grp command
nohup cp file.txt file-copy.txt &
nohup
进程在后台运行,在执行命令的时候却忘了在最后加上&符号。如果再使这个进程转为后台进程呢?新打开一个终端,这样后台的编号会重新从1开始编号
top命令是实时的显示各种信息
如果我们按ctrl+z的组合键,倒数第二行 就显示了[1] Stopped
用top命令演示
stopped 是英语“停止的”的意思
此时已经放在后台,子进程还是内存中,只不过被暂停运行了。因为Stopped是停止的意思。下面命令行又出现了。我们又可以做其他的命令。
Ctrl + Z
top 的PID是17001.它的状态是T
ps -aux
再来查看进程的信息
使进程转到后台
bg
使前台进程转为后台进程
使进程转到前台
会把top命令转到前台运行
fg
不加参数
fg 2:运行的是 sudo grep -r \"log\" / > grep_log 2>&1 &
显示后台进程状态
jobs
运行(正在运行或在运行队列中等待)
R
S
D
Z
T
5种常见的进程状态
进程状态
管理前后台进程
关闭系统
sudo halt
halt
重启系统
需要以root身份才能重启系统
sudo reboot
reroot
halt 和reboot 这两个命令都调用了Linux 的另一个命令
shutdown
立即关机
poweroff
停止和重启系统
最基本的就是输出当前时间
显示当前时间:date \"+%H:%M:%S\"
date \"+%H时%M分%S秒\"
定制date的输出
sudo date 时间戳
...
修改系统时间需要使用root身份
修改系统时间
调节时间
可以用at 命令来设定一个程序的执行时间at是英语“在时刻”的意思注意:at命令只能让程序执行一次
已经安装过 会提示,已经安装,并且是最新版本
先yum安装at命令sudo yum install at
at>就是要输入在 22:10要执行的命令。at 22:10输入:touch file.txt
在指定时刻执行程序
at now + 10 minutes:现在开始的10分钟之后执行
at now +7 weeks表示在距今7个星期之后执行
在指定间隔之后执行程序
列出正等待执行的at任务
atq
删除正在等待执行的at任务
atrm
休息一会
touch file.txt :创建文件 file.txtsleep 10 :暂停 10秒rm file.txt :删除 file.txt
touch file.txt ; sleep 10 ; rm file.txt
touch file.txt; sleep 15m ; rm file.txt
sleep
minutes :表示“分钟\"hours :表示“小时\"days :表示“天\"weeks :表示“星期\"months :表示\"月\"years :表示“年\"
关键字
延时执行一个程序
at
||前的命令执行失败,才会执行后面的命令
&&和||符号
定时执行程序
在CentOS ( Red Hat -族)中安装 Crontab
sudo apt install cron#安装 crontabservice cron restart 或者 restart cron #重启 crontab
在Ubuntu ( Debian-族)中安装Crontab
来修改.bashrc这个文件这是Bash这个Shell(简单地说就是控制我们当前终端的程序)的配置文件
把这一句话加入.bashrc文件export EDITOR=nano
cat .bashrc
这句话的意思是 让系统的默认编辑器是nano
用我们学过的重定向知识,我们可以这样。两个大于号表示追加。echo \"export EDITOR=nano\" >> ~/.bashrc
使用source。让这个命令立即生效
soyrce .bashrc
前期配置工作
三个主要参数
修改crontab文件。如果没有就是创建。因为我们上面配置了默认的编辑器是nano,所以默认就会用nano来打开
crontab -e
编辑的格式 m h dom mon dow command上面的这句话给出了crontab中的每行指令的书写格式
操作基础
10 22 * * * touch ~/file.txt
保存文件,输入y然后回车
每天的22点10分都在家目录下创建file.txt文件可以在crontab文件里写入
路径最好用绝对路径因为你并不能确定cron命令执行这些语句的时候是在哪个目录不过~就是代表当前用户的家目录了
修改crontab文件
crontab -r
删除crontab文件
操作示例
安装crontab
crontab
任务的定时和延时
rar
zip
常用压缩格式
WinRAR
7-Zip
软件
windows
gzip常用
.tar.gz :用 gzip 命令压缩后的文件后缀名
gzip
bzip2不是那么常用,压缩比gzip更大,但是更耗时
.tar.bz2:用bzip2 命令压缩后的文件后缀名
bzip2
同时压缩多个文件
tar
Linux
基础
将多个文件归档
打包:是将多个文件变成一个总的文件这个总的文件我们通常称为archive是英语“存档归档”的意思
打包
将一个大文件通过某些压缩算法变成一个小文件
压缩
tar -cvf sorting.tar sorting/
-cvf 创建一个tar归档
tar -tf sorting.tar
tar -rvf archive.tar file_extra.txt
将file_extra.txt 这个文件添加到 archive.tar归档中
-rvf 追加文件到归档
tar -xvf sorting.tar
-xvf 解开归档
tar的参数
相当于压缩后,把原来的sorting.tar文件删掉了
gzip sorting.tar
gunzip sorting.tar.gz
解压
bzip2 sorting.tar
bunzip2 sorting.tar.bz2
tar -zcvf sorting.tar.gz sorting
解压zxvf中的x就是提取的意思
tar -zxvf sorting.tar.gz
jar和gzip
tar -jcvf sorting.tar.bz2 sorting/
tar -jxvf sorting.tar.bz2
jar和bzip2
同时归档和压缩
显示了压缩文件的三个文件的内容
zcat soring.tar.gz
显示的是文件的内容
bzcat sorting.tar.bz2
显示乱码
cat soring.tar.gz显示压缩文件的内容
zmore
bzmore
more的派生
zless
bzless
less的派生
显示用gzip/bzip2压缩的文件的内容
centos中自带了zip的程序了。不用再单独安装
sudo yum install unzip
用unzip和unrar来解压
加上-r参数就是递归的压缩子目录内的所有文件
-r
zip -r sorting.zip sorting/
解压后直接就是压缩文件内的内容,注意看是否需要建个文件夹,解压到文件夹内
unzip archive.zip 解压.zip文件
unzip -l archive.zip 不解压,只查看其中的内容
如果某个windows用户给你发送的文件大部分都是.zip和.rar结尾的压缩文件
rar a sorting.rar sorting/
它没有解压到目录而是把三个文件直接解压出来了
unrar e sorting.rar
查看
rar压缩文件
tar gzip 和bzip2 zip rar
文件的解压和压缩
yum这种安装方式,比较方便安装大部分的软件。有些软件并没有包含在仓库中,只能手动安装,也就是只能下载的源代码,编译、生成可执行文件。
要为每种Linux创建一个安装文件几乎成了不可能的事
Linux系统有太多变数
当我们要找的软件不在CentOS的软件仓库中时可以试试去软件的官方网站找后缀是.rpm的安装包rpm Redhat Package Manager 的缩写
Debian后缀格式为.deb
可以将deb安装包和rpm安装包互相转换
这个软件是alien (“外星人”的意思)
输入y确认安装
man alien的用法
sudo yum install alien
sudo alien -r xxx.deb
下载搜索的linux版本
下载后,放在共享文件夹内。切换到root用户,可以看到share文件夹下的文件。ls share/sogoupinyin_2.2.0.0108_amd64.deb
拷贝到当前目录cp share/sougoupinyin_2.2*
转换成一个rpm软件包:alien -r
将deb转换为rpm
alien 软件
首先尝试找安装包
安装失败了。需要Qt这样一个库
sudo rpm -i xxx.rem
安装搜狗拼音出错是因为没有安装依赖的软件
也许你没有安装那些依赖软件
不需要我们亲自动手
yum工具会帮我们自动下载各种依赖软件
rpm直接安装rpm的包,相关的依赖不会自动去下载的
安装rpm安装包如果出错
安装rpm安装包
源代码->自己编译
编译安装
read是英语“阅读”的意思me是英语“我”的宾语形式README文件一般会说明详细的安装步骤
README 文本文件
之前我们学过top命令,可以查看电脑中的各种性能状态,占用多少内存、cpu用量等等。有点类似于windows中的任务管理器htop是类似于top命令的软件,颜值高一些
以htop这样一个小软件来讲解编译
找到最新版
下载
第一步去软件的官网: https://hisham.hm/htop源码地址: https://hisham.hm/htop/releases2.2.0 版的源码: https://hisham.hm/htop/releases/2.2.0
复制到当前目录下cp share/htop-2.0.0.tar.gz
放到了share文件夹下
把所有者和群组改成oscarchown oacar:oscar htop-2.2.0.tar.gz
目前它的所有者和群组都是root
ll
tar zxvf htop-2.0.0.tar.gz
进入到这个目录cd htop-2.2.0/
它会分析你的电脑,是否编译相关所需的程序都安装了。执行过程需要一些时间
我们先来试试,--disable -unicode这个命令。
还是提示
安装完成
再来运行configure
最后一行有个错误
运行这个配置文件
编译源码。使用make命令。
编译
一步步编译程序
实在找不到rpm安装包
下载源代码
解压压缩包
配置
编译安装的大致步骤
wget https://www.rarlab.com/rar/rarlinux-x64-5.7.0.tar.gz
man wget可以看到手册
用wget命令获取压缩包
用tar解压这个压缩文件
会生成一个rar的目录
进入到rar目录
已经编译好了这两个可执行程序
运行makefile文件。输入make 空格会自动变成cat 命令
用sudo管理员权限去执行make文件。可以看到里面有三个程序了。htop\ar\\unrar
echo $PATH删除环境变量,usr/local/bin是在环境变量中的。所以这几个命令可以在全局被调用
输入rar可以显示它的用法
安装rar和unrar
编译安装软件
wget 可以使我们直接从终端控制台下载文件只需要给出文件的HTTP或FTP地址
wget非常稳定它在带宽很窄的情况下和不稳定网络中有很强的适应性
如果是服务器打断下载过程它会再次联到服务器上从停止的地方继续下载这对从那些限定了链接时间的服务器上下载大文件非常有用
参看wget的使用手册man wgetwget 的一个优点是会显示下载的进度
优点
下载文件
sudo yum install wget
安装wget
wget [参数] [URL地址]
wget http://cdimage.debian.org/debian-cd/10.1.0/amd64/isocd/debian-10.1.0-amd64-netinst.iso
例如
命令格式
继续中断的下载
未下载完结束,删掉文件
结束
ctrl+c
下载地址的获取方法
其他
wget
scp是基于 SSH (Secure SHell )的原理来运作的SSH 会在两台通过网络连接的电脑之间创建一条安全通信的管道
表示把我的电脑中当前文件夹下的file.txt文件拷贝到远程电脑(ip地址是192.168.1.5)的用户root 的/root 目录下
scp file.txt root@192.168.1.5:/root
server端的 ip地址
设置的网络连接是桥接的方式
网络相关
服务器端家目录有这些文件
复制name.txt到服务器端
在服务器端,多了个name.txt文件。
从自己电脑拷贝文件到另一台电脑
scp root@192.168.1.5:/root/file.txt file_changed_name.txt
从另一台电脑拷贝文件到自己电脑
scp source_file destination_file
网间拷贝
修改端口
scp
文件服务器
从公共的FTP服务器下载文件
从私有的FTP服务器上传或下载文件
使用FTP 主要分为两种情况
sudo yum install ftp
安装ftp命令
试着连接到Debian的镜像FTP服务器https://www.debian.org/mirror/list试试 Debian 在法国的FTP 服务器: ftp.fr.debian.org
password随便输入都被接收
链接进去了 让你填写用户名
ftp -p ftp.fr.debian.org
连接到FTP服务器
也可以在浏览器上,输入ftp的地址登陆
Is :列出当前目录的文件pwd :显示当前目录的路径cd:转换目录
进入到debian文件夹中
列出里面的文件
用get命令下载README这个文档
!
链接到FTP服务器了 又想用本地的linux的命令
没有权限
put上传,当前目录的文件
用FTP 进行文件传输
ctrl+d退出ftp
其他的FTP命令
在FTP服务器中操作
ftp
sftp是Secure FTP 的缩写。表示“安全的FTP\
概述
sftp user@ip
例如 sftp osçar@xxx.com
用法
sftp 安全加密的ftp
rsync remote synchronize 的缩写remote 表示“远程\
rsync 命令使我们可以同步两个目录不管这两个目录位于同一台电脑还是不同的电脑(用网络连接)
增量备份(incremental backup )是备份的一种类型指在一次全备份或上一次增量备份后以后每次的备份只需备份与前一次相比增加或者被修改的文件
rsync应该是最常用于“增量备份”的命令了
rsync 就好像更智能的scp命令
rsync -arv Images/ backups/
将Images 目录下的所有文件备份到backups目录下
-arv参数
用rsync备份到同一台电脑的其他目录
rsync -arv --delete Images/ backups/
加上--delete参数就可以了。delete是英语“删除”的意思
本地的目录删除了 ,远端也希望删除的话
删除文件
rsync -arv --delete Images/ oscar@89.231.45.67:backups/
用rsync备份到另一台电脑的目录
强大的rsynd
rsync 同步备份
ftp & sftp 5
文件传输
加密
安装 SSH : yum install openssh-server启动SSH : systemctl start ( restart) sshd设置开机运行 SSH: systemctl enable sshd
ps -ef | grep ssh
查看进程
systemctl list-unit-files | grep enabled
列出所有被激活的,开机启动的
使用
服务器
安装opensshsudo yum install openssh-clients
linux
ssh
连接服务器
客户端
用账户和密码来验证登录
基于口令
搜索-t参数。、指定生成什么样的密钥
不指定,直接回车就可以了
默认是在家目录的 .ssh目录下
指定保存密钥对的路径
输入密钥对,加密的密码。再次输入密码
生成好了
生成密钥
cat id_rsa
私钥一般比较长
第1步:在客户机中生成密钥对(公钥和私钥)ssh-keygen (默认使用RSA 非对称加密算法)以上命令等价于 ssh-keygen -t rsa
ssh-coopy-id默认就会把家目录下的id_rsa.pub文件 拷贝到远程的服务器上
在服务器上
看下known_hosts里面的内容
服务器上输出的就是我们 客户端的公钥
输出keys
在客户端访问到服务器上
ssh-copy-id 把客户机的公钥追加到服务器的一个文件authorized_keys~/.ssh/authorized_keys
第2步:把客户机的公钥传送到服务器şsh-copy-id root@172.20.10.2
免密码登录测试
ssh -o PreferredAuthentications=password -oPubkeyAuthentication=no user@host
设置SSH 免密码后仍想使用密码登录
公钥验证登录
为了免去每次用SSH协议连接远程机器都要输入用户密码的麻烦我们可以创建一个用于验证身份的密钥对(公钥和私钥)
基于密钥
SSH 的两种安全验证方法
windows免密登陆的方式
免密登录
sustemctl status sshd
看下sshd的状态
SSH 客户端的配置: /etc/ssh/ssh_configSSH 服务端的配置: /etc/ssh/sshd_config
查看config文件的使用手册SSH 服务端 config文件的使用手册: man sshd_configSSH 客户端 config文件的使用手册: man ssh_config
用户的配置文件
全局的配置文件
客户端的配置文件有两个
客户端config文件的常用配置参数
Hast imooc HostName 172.20.10.2 Port 22 User root
客户端config文件的配置例子
#号开头的表示注释
用nano来看下ssh_config。这是全局的客户端的配置文件
服务端config文件的常用配置参数
退出 输出y。重启sshd
查看服务端的
全局的config加一行。保存退出 下次登录才会生效
服务端
全局config文件
先cd回到家目录,ls -al可以看到隐藏的目录
进入到.ssh。里面只有一个know_hosts
root 用户的家目录下如果没有.ssh目录
在服务器端
尽量去修改权限,要不然在某些时候会产生错误
创建完~/.ssh/config文件之后一般会把~/.ssh/config的权限修改为600chmod 600 /.ssh/config
看一下刚才的修改
之前我们链接服务器是这样的
直接ssh imooc 自动识别要登陆172.20.10.2这个主机
输入密码后成功登陆
在配置文件内已经写入了这样一组配置
多了一组配置
在config内再添加imooc2
nano打开配置文件
在客户端配置
局部config文件
用config文件配置SSH
连接远程终端
System Administrator :系统管理员
host 和whois 命令:告诉我你是谁..
前置
每台连上网的电脑都会被一个IP地址所标识这个IP地址是全球唯一的
因为是8位二进制数。2^8-1= 256 -1 = 255
大多数IP地址是这样的形式 43.136.208.71这样的形式被称为IPv4 格式(以小数点分隔)分隔开的部分的取值范围是0~255
IP是Internet Protocol ( \"网际协议”或“互联网协议” )的缩写v是version (“版本\" )的首字母4表示这是“第四版”
IPv4 格式
因为IPv4的地址不够用的关系现在已经有不少IP地址的格式是IPv6的格式了已有的IPv4 地址也慢慢被替换成IPv6
IPv6 格式
可以为每一个IP地址绑定一个主机名主机名的英语是host name
这里的主机名其实应该被称为“完整主机名\
host name (主机名)和domain name (域名)是不同的概念
用主机名或域名代指FQDN相比于记忆一串数字(IPv4)或数字+字母(IPv6)的IP地址人脑更擅长记住主机名
主机名
host github.com (host www.github.com )会得到IP地址13.250.177.223 (不一定每次获得的IP地址都一样host 13.250.177.223 则会得到主机名的信息
IP地址和主机名的互相转换
当你在浏览器的地址栏里输入github.com时你就能收到由网络上的DNS服务器帮你解析出来的IP地址
例如你可以加一条Github的解析对13.229.188.59 github.com
自定义解析的作用
自定义解析
了解有关域名的信息
whois
列出网络接口
ifconfig 用于显示或配置网络设备(网络接口卡)的命令全称是Network Interface Configuration ( \"网络接口配置\")
如果你的CentOS系统里没有ifconfig这个命令那么可以运行以下命令来安装sudo yum install net-tools
旧版的centOS里面运行ipconfig的显示
ifconfig
RJ45网线
eth0
lo
wlan0
三个网络接口
IP地址
子主题
图
有线连接就是用的这里的eth0。RX和TX表示发送包和接受包
给自己发送东西也是会发生的。
老版本的centOS的截图
新版本的centOS里面运行ifconfig
新版用systemd替换掉了initd来引导系统其带来的另外一个副作用(或者可以说是优点)就是网络接口的命名方式变了
具体的可以参考这篇英文
也可以把enp0s3改成eth0这种格式,但是一般不推荐去改。
因为我们虚拟机采用的是桥接的方式,所以会有上面这种
如果不喜欢可以删掉
这是因为我们在服务器上用的是桥接模式。
在服务器上运行和ifconfig。服务器上就没有虚拟的网络接口。
enp0s3
mac地址
主要关注的是下面三个
interface :由你想要修改的网络接口名称代替( eth0 / enp0s3
wlan0 等等)。interface是英语“接口”的意思
ifconfig interface state
关闭enp0s3这个有线接口之后就没有任何网络传输会在enp0s3上进行了sudo ifconfig enp0s3 down
激活enp0s3 这个有线接口sudo ifconfig enp0s3 up
配置网络接口
ip addr
关于ifconfig和ip addr
分析网络
which ifconfig
查询关于ifconfig的一些信息
查询net-tools的信息
ip命令就属于iproute命令里面
同样会列出iproute的描述
查询iproute
netstat都是net-tools包里面的
netstat -i 列出你电脑的所有网络接口的一些统计信息RX是receive (表示“接收” )的缩写TX 是transmit (表示“发送” )的缩写
MTU : Maximum Transmission Unit 的缩写表示“最大传输单元”指一种通信协议的某一层上能通过的最大数据包大小(单位是字节)
netstat -i 网络接口的统计信息
TCP 和UDP是两种不同的协议用于在网络上传输数据
可以只显示TCP 连接的信息netstat -ta
只显示UDP 连接的信息(不常用)netstat -ua
ESTABLISHED :与远程电脑的连接已建立establish是英语“建立\"的意思
CLOSED :连接没有被使用。关闭了
LISTEN :监听着可能进入的连接此时连接还没有被使用listen 是英语“听”的意思
State含义
netstat -uta 列出所有开启的连接
之前的https就变成了443端口
netstat -utan
端口(port)
netstat -It :只列出状态是 LISTEN 的统计信息
更多的用man stats
netstat -s:列出总结性的统计信息
ss命令
netstat
统计网络
网络
sh 就是shell 的缩写
后缀名.sh已经成为一种约定俗成的命名惯例
vim test.sh
指定脚本要使用的Shell
创建脚本文件
原则很简单:只需要写入你想要执行的命令
只输入ls命令。
加一句注释
注释
保存这个文件:x或者是:wq
刚才添加的文件的权限.当前的权限,没有可执行权限。
加上可执行权限 chmod +x test.sh
给脚本文件添加可执行的权限
运行脚本文件./test.sh
调试一个脚本程序 bash-x test.sh参数-x表示以调试模式运行Shell 就会把我们的脚本文件运行时的细节打印出来了
以调试模式运行
创建属于自己的命令
运行命令
第一个Shell脚本
shell
常用软件
Linux笔记
0 条评论
回复 删除
下一页