linux有很多发行版本,ubuntu,centos,redhat…
Ctrl+Alt+t:打开终端
lsb_release -a :查看Ubuntu版本 LTS(代表长期支持的版本)
uname -a:查看Ubuntu的内核
gsettings set com.canonial.Unitv.Launcher launcher-position Bottom
sudo apt install ..
第二步打开VMware - 新建虚拟机 - 安装程序光盘映像文件(iso)选择刚才保存的镜像文件
下一步之后设置系统全名,用户名,密码
下一步给虚拟机命名,并设置系统文件保存路径
下一步设置磁盘内存大小,这里的20g并不是一下从真实磁盘分离出来,而是慢慢蚕食磁盘,而且将磁盘存储为一个文件,多个文件都无所谓,一个更方便
选择Ubuntu的硬件配置,声卡,网络
点击完成,VMware自动开机这个Ubuntu电脑
Linux 发行版与内核的关系
shell
Unix/Linux默认图形界面系统
桌面环境
GNOME:以GTK为基础
KDE:以QT为基础
窗口管理器
一个控制窗口外表、位置的程序
提供用户操作这些窗口的方法
桌面环境
Shell是什么?
操作系统只是内核,对内核的操作只有两种一种是Shell命令接口,一种是视窗接口。
工作模式
集中常见的Shell
whereis ls //这一句查看ls这个命令所在的文件路径
which ls //这一句查看ls这个命令的文件
安装软件在root模式下安装
sudo su
cd //切换目录
ls //显示当前目录下的文件,想显示的详细一点就加一个-a
ls -a //可以显示一些隐藏文件
ls -l //可以以列表的形式显示文件,可以把日期,权限等
ls -al //以列表的形式显示所有文件
ls --help //可以显示更多ls的命令介绍,
pwd //查看当前目录
mkdir //创建文件夹
cd .. //两个点返回上级目录
cd . //一个点是当前目录
touch main.c //创建一个文件
echo "#include " >main.c//可以使用echo这个命令往文件里写入东西,注意写入的内容要加“”,标明文件是:'>文件名'
cat main.c //然后查看文件内容
gedit main.c//也可以用gedit来打开main.c,打开后会像一个windows下的文本文档一样可以输入内容,并按Crtl+c保存
head -3 main.c //head 只显示这个文件的前三行
tail -1 main.c //tail 只看文件的后一行
cp main.c hello.c //cp 两个参数,第一个参数是复制源文件,第二个参数是复制的结果粘贴到的文件,复制main.c文件生成hello.c
mv hello.c test.c//移动或者重名,有两个参数,第一个参数是所要移或重命名的文件的源文件,第二个参数可以是路径,也可以是文件名,文件名的话就是对源文件重命名,路径的话就是对源文件移动到的路径
mv test.c .. //这句命令mv的第二个参数是.. 说明是吧test.c这个文件移动到上一级目录里
cd .. /;ls //如果想要两个命令一起连续使用,就用分号(;)隔开,
rm test.c //删除一个文件,很多时候在普通用户里不能随意删除文件
sudo rm test.c //使用sudo 使用超级权限进行删除
ln main.c main_ln //建立一个链接文件,相当于给main.c建立一个快捷图标 这个快捷图标可以操作,操作后也改变了main.c,属于硬链接,是整整的两个文件
ln -s main.c soft //软链接的方式,生成的是一个纯纯的快捷方式,像是一个指针,指向main.c,使用的时候都差不多
wc main.c //统计这个文件有多少行多少字符多少个单词
wc -l main,c//查看有多少行
wc -c main.c//查看有多少个字符
wc -w main.c//查看有多少个单词
//解压和压缩
gzip * //压缩当前目录的所有文件成一个压缩包
gzip main.c //压缩这个文件
gzip -d main.c // 解压这个文件
gzip -r //压缩当前目录下的所有文件,每个文件压缩成一个包
gzip -rd //解压当前目录下的所有文件
tar xvf test.tar -C Desktop/ //压缩到指定目录,tar xvf 是这个shell命令,然后第一个参数是要解压的文件名,然后是 -C 这个杠大c说明是下边要输入解压的到的路径了,然后Desktop/是第三个参数就是要解压到的路径
tar cvf shell.tar shell/ //压缩这个包到shell/这个路径
time tar cvf sheell.tar shell/ // 第一个命令是time 这个命令计算这一行运行所需要的时间,也就是压缩这个文件所需要的时间
date //查看当前的系统时间
uname //查看内核
uname -a //详细查看系统内核
uname -r //
lsb_release //查看Ubuntu的版本
apt search lsb_release //在apt 搜索lsb_release这个包
apt update //更新apt 的资源包
du //查看当前路径的文件所占用内存的空间
dmeasg //查看内核的信息,内核的启动信息
uptime //显示时间,用户负载,链接数,哪个用户登录的
w /who //root下的查看登录用户
whomi
hostname
cal //日历
bc //计算器
quit //退出
free //查看内存和交换空间
ping //检测网络连接
ifconfig //配置网络
ifconfig ens33 192.168.21.158 netmask 255.255.255.0//配置一下网卡 ens33网卡
netstat //
service network start
//1.查找命令
find . -name test.c // 第一个是find,是命令入口,这个命令的第一个参数是路径,一个‘.’,代表在当前目录里查询,然后第二个参数是‘-name’,这个参数说明是精准查找与所要求的文件名相同的文件,这个参数可以替换为“-iname”,这样会忽略文件名的大小写第三个参数是 要查找的文件名,之后系统就会在当前目录下查找
find Desktop/ -name test.c //这是在指定目录下查找文件
grep "test" -r //通过关键字进行查找,-r是全部搜索,
grep "test" -r -c //找到关键词以后只显示关键字所在行
grep "usb" -c -r /drivers/usb //指定路径搜索
cscpoe -Rk
//2.管道
ps //查看当前的所有进程
ps -a //查看所有的进程
ps -A |grep usb //ps -A,把所有的进程文件放到一个缓冲区,但是不打印不输出,然后通过一个管道,与grep 建立连接,然后执行grep usb这命名,然后结果是grep在通过管道在ps -A的内容中搜索usb这个关键词
//例子
cat file | grep hello //cat test.c打开这个文件但是不看他然后通过管道,在这个文件里搜索hello这个关键字
cat file | ls > file2 //
cat file | file2
//3.重定向
> //输出到重定向到一个文件或设备
>!//输出重定向到一个文件或设备,强制覆盖原来的文件
>> //输出重定向到一个文件或设备,追加原来的文件
< //输出重定向到一个程序
cscpoe -Rk
cscope是一个搜索工具,打开以后有对各类文件的搜索,关键字的搜素,搜索出来以后在上方显示,按空格键向下查看,按回车键打开这个文件,然后按q退出这个文件打开,然后按tab键把光标切到可以在下方的选择栏
//写好一个程序文件,需要用解释器编译,这时候就可以使用这几种解释器去解释文件了
echo $SHELL //这一句可以查看$SHELL这个环境变量所安装的解释器,也就是bash解释器,不同的解释器语法命令可能有所不同
//知道预装的bash解释器之后,
bash hello //在这之前把程序文件写入到hello这个文件中,在这时,bash解释器就把hello这个文件用bash解释器的语法解释以后在终端中输出结果
//一般来说不这么使用脚本文件,首先是在脚本文件中开头加入解释器的路径:#!/bin/bash,这样的话这个文件会自动使用该路径的解释器,然后保存文件之后在给文件加上可以执行的权限
chmod +x hello.c //这句命令就是给这个hello.c的文件加上x也就是可执行的权限,到这里用ls查看这个文件,这时就会看到这个文件有高亮显示,然后直接在命令行中执行这个文件
./hello.c //这句话就是在这个文件的当前目录下执行执行这个文件,就会输出这个结果,这个结果和刚才直接bash hello 的效果都一样
在Vim中编写程序文件
#!/bin/bash //这一句话说明
echo hello shell //echo 就是打印这句话
echo Now time is:$(date) //echo打印Now time is:然后想要打印出当前时间,需要date这个shell命令,但是命令不能直接使用,必须再前边加一个$美元符号,在加一个括号,才能正常打印date命令的结果,否则打印的是Now time is:date
TIME=$(date) // 这是把date这个命令的结果给TIME,算是定义一个变量TIME接收date的值 ,注意这种赋值的时候=等于号前后不能有空格,这是vim编辑器的特殊地方,空格不能随便用
echo new time is:$TIME // 这时候打印这一句和刚才打印那一句是一样的效果
使用音乐播放器播放音乐
apt install mplayer //安装音乐播放器mplayer
mplayer files //使用myplayer打开这个files文件
mplayer -vo caca files //使用mplayer,以-vo caca格式打开files,也就是以ASCII码的方式打开
//在编辑器中 # 是注释的一行
for i in 1 2 3 4 5
do
echo $i
done
for i in {1..10}
do
echo $i
done
gedit 文本文件打开
vim 和 vi
vim是vi的升级版本,兼容vi的所有指令
支持多级撤销,而vi按u只能撤销上次命令
vi只能运行与类Unix,vim多种OS运行毫无压力
语法加亮
可视化操作
可通过vimrc文件配置更加高级功能
vim有各种模式
首先打开的是命令模式
- 命令模式下可以上下左右移动光标,可以敲击命令
- 命令模式下敲 i 可切换到编写模式
编写完程序,就’shift+:‘,这个时候可以敲击命令,然后按‘wq’,w是保存,q是退出,wq是保存并退出,q! 是不保存退出
命令模式下:
按 ‘o’:在光标该行的下一行插入一个空白行并进入编辑模式,然后光标停在插入这行的开头
按 ‘ctrl + : ‘:弹出命令行,然后输入set nu 会显示行号,暂时性的显示
按 ‘ctrl’+‘J’:底部显示文件当前的状态
按’ctrl + b’ :一次向下翻页一行
按‘ctrl’+‘U’ :一次向上滚动半页
按’ctrl’+‘D’ :一次向下滚动半页e
按’shift +j’ :到最后一行
按’1000’然后’shift +j’ :跳到1000行
按’H’:当前屏幕的第一行
按’L’:当前屏幕的最后一行
按’X’:剪切一个字符
按’P’:粘贴字符
按’5’ 然后按’X’:向后剪切5个字符
按’D’ :删除当前光标到这一行结尾所有内容
按’D’+‘W’ :删除(剪切)光标所在的单词
按’5’ +‘D’+‘W’ :删除(剪切)光标往后5个单词
按’DD’ :删除(剪切)光标所在一行
按’5’+‘DD’:删除(剪切)光标所在行开始向下共5行
按’YY’ :赋值当前光标所在行
按’5’+‘YY’: 复制当前光标所在行开始向下共五行
按’U’ :多级撤销,无限次的撤销
vimrc
当我们需要在linux下开发一个软件工程与多个文件,这个时候就是使用make管理了,在window下开发软件工程,就是vc++6.0,等,这里只需要使用IDE不需要理解底层是怎样的
但是在linux环境下,默认安装的有一个gcc,访问c语言和c++的语言编译器,
gcc -o hello test.c //gcc 是第一个参数,代表着使用gcc编译器编译,-o是第二个参数,hello是第三参数,代表着可执行文件的名字,test.c是第四个参数,代表着是所要编译的源文件,但是这样每次编译都是这么写会很麻烦
//编写一个Makefile文件,进行编译文件,想要使用Makefile编译文件,首先是在工程文件目录下新建一个名为:Makefile的文件,然后vim Makefile 用vim打开这个文件
//然后写入
hello:main.o //第一行是生成的应用程序或者目标文件叫hello 这个文件是main.o生成的,然后如果有很多.o文件,都要写出来
cc -o hello main.o//第二行是规则 ,cc是gcc编译器,然后是-o hello main.o ,main.o也就是hello的依赖文件 ,到这里编译命令就生成了
main.o:mian.c
cc -c main.c
clean:
rm hello main.o //然后第三行是一个清除命令
//到这里一个简单的编译文件就洗完了,然后保存退出
make //make 这个命令,会直接在当前工程目录下直接寻找Makefile文件 ,根据Makefile的编译规则和依赖关系进行编译文件
make clean //就调用了Makefile文件里的clean,然后删除了Makefile生成的文件
再新建一个hello.c
然后在文件中简单写个函数
#include
void hello(void)
{
printf("hello hello");
}
然后在touch一个文件叫hello.h
然后写入
void main(void);
然后回到hello.c
把刚才新建的hello.h头文件,加到上边
#include
#include "hello.h"
int main()
{
printf("hello world");
hello();
}
然后到Makefile文件中,重新修改编译链
hello:main.o hello.o //hello又依赖了hello.o
cc -o hello main.o hello.o //然后gcc编译并链接hello.o
main.o:main.c
cc -c main.c
hello.o:hello.c //
cc -c hello.c
clean:
rm hello main.o
然后保存,并make一下
make
//结果是
cc -c hello.c
cc -o hello main.o hello.o
此时ls一下显示的文件
hello.c hello.h hello.o main.c main.o Makefile
此时可以运行一下hello文件
./hello //运行这个文件
形成编译链之后再修改文件也不需要重新删除可执行文件,直接修改文件内容,然后运行就是运行的修改后的内容
每个类型的文件都有很多坑(截完图才想起来可以复制粘贴写成代码块。。。。。。)
到此,vim,makefile,都大致有个了解了。。。
前面学习脚本的时候可以定义变量,比如
PH=7.0 //终端输入这个,就定义了这个PH变量,值为7.0
echo $PH //echo这个变量,前边加上$美元符号,就可以打印这个变量值
PH-7.1 //再次修改这个变量
echo $PH //修改后再次打印这个变量,就直接打印修改后的值
windows下也有很多环境变量,在高级系统设置里就有path,环境变量
echo $PATH //打印系统下的环境变量路径
echo $HOME //在root用户操作时,HOME是/root,打印出来的是/root
echo $LOGNAME //在root用户操作时,LOGNAME是root,打印结果是root
su jyl //切换到jyl,也就是普通用户登录的时候
echo $HOME //打印HOME是/home/jyl
echo $LOGNAME //打印LOGNAME,结果是jyl
Shell下的环境变量
环境变量一般为大写字母,通过echo查看
环境变量何时生成的?
Ubuntu启东时,初始化或启动脚本会创建大量环境变量并对其赋值
每次用户启动一个新程序,新程序会继承启动程序的环境变量
shell启动过程中,不同登录用户会启动不同的脚本,生成一些环境变量,
环境变量根据用户不同会发生变化(eg:USER/HOME)
提示符
一般用户为:$
root用户为: #
Shell启动过程
内核镜像(如/boot/vmlinux)加载内存启动
内核启动完毕后,开启第一个init进程
进程init扫描/etc/inittab,找出可用的终端及其属性,一旦找到活动的终端,mingetty将会启动login提示符合口令,提示用户输入用户名和口令
将用户和口令传递给login,验证是否匹配,若匹配,login将会自动转到其他$HOME
将控制权移交给所启动的任务,如在/etc/passwd文件中用户的shell为、bin/bash
Shell启动过程(2)
Shell将会读取文件etc、profile和/.profile 中系统和用户定义的环境变量,给出提示符:“$”或“#”
其他一些用户登录时会启动一些额外的脚本
/etc/profile.d
有的系统会提供/etc/bashrc脚本(Fedora),系统中任何用户每次启动bash shell时都会执行;系统登录用户时也会执行
每个用户的home目录都包含一个.bashrc脚本,用户登录或者在当前用户下启动shell时都会执行
脚本启动大致流程
./etc/profile->/.profile->/etc/bashrc->-/.bashrc
有些环境变量,你需要考虑是全局还是当前用户独享…
如何声明一个变量
添加想运行的可执行文件,作为环境变量,然后就可以在各种地方使用这个可执行文件
linux作为多用户多任务的操作系统,允许多个用户登录的,
- 用户
管理员root:具有系统所有权限,uid为0
系统用户:保障系统运行的用户,uid为1-499
普通用户:部分权限受限,uid范围:500-60000
用户组
普通用户组:可以加入多个用户
系统组:一般加入一些系统用户
私有组:创建用户时,若没指明所属组,则会定义一个私有组,名称与用户名相同
用户常用的配置文件
account:用户名或账号
password:用户密码占位符
UID:用户的ID号
GID:用户所在组的ID号
GECOS:用户的详细信息,(如姓名,年龄,电话等)
diretory:用户的家目录
shell:用户所在编程环境
/etc/shadow
格式:account :password:最近更改密码的日期;密码不可的天数;密码需要重新更改的天数;密码更改的警告期限;密码过期的宽限时间;账号失效日期;保留
用户组配置文件
/etc/group
格式:group name:password:GID:user list
group name 组名
password 组密码
GID :组的ID号
user list :以group name 为附加组的用户列表
/etc /gshadow
用户组设置
添加用户
添加用户的时候可以给他分配一个组
usermod -g testtrem wukong //
usermod -u 2000 wukong //
userdel -f wukong //强制删除用户,但是目录没有删掉
userdel -
useradd -g jyl -c "Jiang_double" -m hu
userdel -r hu
useradd -g testterm -c "seng.sga" -m seng
crw-r--r-- ....//c代表字符文件
drw-r--r-- ....//d带包是一个目录,也就是一个文件夹
brw-r--r-- ....//b代表是一个doc文件
lrwxrwxrwx ....//l代表是一个链接文件
更改文件组的属性
groupadd testteam //groupadd这个命令新建一个组,这个组的组名是testteam
chown jyl:testteam hh // 然后chown更改文件的组,jyl是原来的组,然后:冒号,然后是想要更改好的组名,testteam,这个组名,然后是想要更改的文件名,也就是hh这个文件
改变文件所属关系
chown user:group file
给其它用户添加写权限
chmod a+x file
chmod 666 file
权限共有----------
10位标志
除去最左边这一位,右边共9位,这9位可以按照二进制来进行权限赋值
比如-rwx–xr–,三位为一个二进制转换为十进制,分别是代表714 所以想要文件权限为这个形式可以使用这一句chmod 714 file
除去左边第一位开始,前三位为所有者的权限,然后中间三位是用户组的权限,后三位是其他用户的权限
给用户组添加写权限
删除用户的执行权限
chmod u+x hh
chmod g=rw hh
chmod o+x hh //加一个执行权限
chmod o+w hh //加一个写权限
chmod o-w hh //去掉写权限
chmod o=rwx hh //加上读写执行权限
chmod a-w hh //去掉所有文件的写权限
ps //查看当前的进程
进程一般都在
/etc/init.d
查看当前全部进程 ps -A 这里有一个守护进程,检测端口是否插拔的进程
ps -A | grep udev
详细查看
ps u
ps aux
ps -A
ps -A | grep udev
杀进程
kill 285 //这个285是进程的PID
有的进程杀掉脚本重启的时候回重新出现,有的进程只启动一次,杀掉之后就没了
使用proc查看进程信息
使用top查看CPU使用率
top -d 2 -p 123 -p 321
top -d 2 //每两秒刷新一下
top -d 1 -p 123 -p 321 -p 345 //每一秒刷新一次123和321和345这三个进程,这三个数字是这对应的进程的PID
top //这个命令查看当前系统cpu的利用率
在top内容中敲击f 进入交互模式,更改cpu的刷新率
linux下的软件编译安装卸载,apt的软件源更新较慢,可以到软件的官网进行安装包下载,
AUTOMAKE\AUTOCONF
Makefile的作用:自动编译和链接
使用Automake和Autoconf工具生成
Makefile
生成符合GNU规范的makefile
可以使用./configure;make;make install 安装
默认安装目录
/usr/local/bin
当然我们也可以自己制定安装目录,但是PATH要自己设置
Makefile
安装步骤
下载源代码包
生成脚本文件:AUTOCONF
配置
./configure
安装
make install
添加环境变量
PATH
清理临时文件
make clean
卸载
make uninstall
复制源代码包到文件路径
然后解压
然后打开原码包
找config文件
找不着的话就 autoconf 这个命令生成config文件
然后就会有这个configure这个脚本 ,configure这个文件是高亮的可执行文件
然后./configure 这一句命令运行一下这个config文件
就生成了Makefile文件
然后make 一下 make -j4 可以加速编译
然后这一句话 make install 就是安装这个软件了
安装完还要添加环境变量
vim ~/.bashrc //这一句可以直接打开环境变量的文件,然后到最后面进行添加环境变量
添加环境变量:
export PATH=/opt/git/bin:$PATH //这句话添加到bashrc文件的末尾处,export不能少,然后PATH紧接着等于号,不能有空格,然后是新版本的安装路径,/opt/git/bin然后是冒号:然后是$PATH这个的意思是新版本的路径依赖于$PATH这个环境变量,然而这个环境变量是啥呢,其实就是老版本的路径
到这个时候软件就安装成功了
使用deb包不方便的地方
作为底层工具,不能处理依赖关系
apt是上层工具,可以解决复杂依赖关系,自动安装
APT包管理器(Advanced Packaging Tool)
自动下载、配置、安装二进制或源码包
工作在客服端/服务器模式
服务器:保存最新的Linux软件包,在Ubuntu中称为源,APT分析每个软件包头信息并存放在下载列表中/etc/apt/sources.list 这个文件中存储的是服务器的源地址
也就是说,当你使用apt install 下载软件的时候,然后Ubuntu就会打开这个文件,然后找到对应的下载地址,进行下载,这个文件的内容都是一些软件的下载路径
客户端:本机软件与下载列表对比,确定哪些软件(及其依赖包)需要下载、那些需要升级。若要安装的软件在源中没有对应版本,就需要自己添加源或者手动下载了
APT的命令
检查依赖性:apt check
安装 ;apt install
更新本地数据库: apt update
软件升级 :apt upgrade
卸载 :apt remove/autoremove
清除本地已经下载并安装的包:apt clean
还可以添加国内的服务器提供的源,阿里云源,搜狐源,163源,等,速度会比较快,就是把这些服务器的源地址,复制粘贴到/etc/apt/sources.list这个文件下,然后更新一下apt的源
有些软件只发行了Windows版本,但没有发行Linux版本,那这个时候想在Ubuntu系统中使用这个软件只能通过wine,相当于一个模拟器一样
wine
能够在多种可移动操作系统接口上运行Windows应用的兼容层,
wine is not an emulator
运用API转换技术LinuxAPI<-WindowsAPI
安装
apt install wine
大概三百多兆,需要的时间比较久
安装界面和Windows下差不多,但是会有一些bug卡顿之类的
网络服务的配置及使用
apt install nfs-kernel-server
设置共享目录
vim /etc/exports //打开这个配置文件
home/nfs *(rw,sync,no_subtree_check,no_root_squash) //把这一行写在最末尾处,记得在nfs后边空一格,然后加星号在往下写,星号代表通配符后边是权限,然后退出保存
/nfs*(rw,sync,no_root_squash) //这一句和上一句一个意思,加上边这个就不写这个了
启动NFS服务器
service protmap restart //服务器启动 这句标记为1
etc/init.d/protmap restart //和上句一样 这句标记为1'
service nfs-kernel-server restart //服务器连接nfs这句标记为2
etc/init.d/nfs-kernel-server restart //这句标记为2'
//可以1完了2,和1'完了2'一样,如果不行,那就121'2'两套全打一遍就好了
//然后nfs网络配置就通了
ps -A | grep nfs //就可以看到这个nfs的
客服端步骤
首先在nfs原来的服务器查看服务器ip
ifconfig //这一句可以查看
然后下边在客户端操作
进入root目录
mount -t nfs 192.168.21.153:/home/nfs/mnt //这里的ip地址就是nfs主机的ip地址也就是刚才在设置nfs的时候ifconfig查看到的ip
cd mut/ //进入到这个文件夹里,这里的内容就是通过nfs和主机共享的文件,随意编写文件,都会在主机的/nfs目录和从机的mut/之间共享文件
apt install samba //安装samba
apt install smbfs //安装smbfs
cd opt/ // 到opt目录下
mkdir share // 新建一个目录
chmod 777 /opt/share //执行权限
vim /etc/samba/smb.conf //打开这个config文件,添加共享的选项,然后到最后边写入
[share]
path = /opt/share
available = yes
browseable = yes
public = yes
writable = yes
touch /etc/samba/smbpasswd
smbpasswd -a wit
启用这个服务
/etc/init.d/samba restart //启动samba服务
/etc/init.d/smbd restart //上边这一句不行话,那就是这一句,也可以自己跳到init.d文件下看一下
查看这进程
ps -A | grep sm //通过管道查看这个进程
这个进程正常运行的话,就是可以直接在Windows下在计算机的地址栏填写samba的ip地址进入到由samba服务的共享文件夹,和nfs一样可以直接进行文件实时共享
在计算机地址栏中输入
\192.168.56.128 就可以看到这个share文件
在Ubuntu中opt目录下share目录中新建一个main.c文件写入内容
然后到Windows下查看这个share文件夹中也会有一个main.c文件内容同样是和Ubuntu中的Share文件夹中的main.c内容一样
在Windows下还可以将这个文件目录映射成盘符,下次打开就不需要输入地址了,直接就会显示盘符,点击轻松访问,有一个映射成网络驱动器就可以了
就是这样:
也可以在另一个Linux系统挂载使用
打开另一个Linux
mount -t smbs -o username=jyl,passwd=777777 //192.168.158/share /mut //这行命令的意思是mount 挂载 username 的参数是开启这个samba的服务用户名,然后是passwd密码,然后是双斜杠// 下边输入开启samba服务的主机的地址,然后是一个斜杠/然后share是主机的共享目录名称,然后是空格 ,然后/mut说明的是挂载到从机的哪个目录上
这个Linux是一台ros小车的操作系统,刚测试的时候apt进程被占用,删了好几次进程,好了之后下载就正常了,然后使用apt下载samba然后输入那个客户端配置命令,就是不行
远程登录,很多时候使用的时候是都是不直接打开使用,而是远程登录操作
什么是SSH
Secure Shell 的缩写
建立在应用层和传输层基础上的安全协议
防止网络传输过程中的信息泄露
为什么他能做到?
传输数据进行加密
登录采用两种级别的安全验证
SSH服务配置使用
apt install openssh-server
service ssh restart
开启之后可以看一下管道
ps -A | grep ssh
ssh serverip //这个sreverip是要远程登录的服务器的ip,然后就直接登陆成功了
登录之后的效果,就是直接操作登录上的这太电脑一样
还可以在Windows下登录这个服务器,使用putty
或者vmware都可以远程登录
密匙的安全验证
使用一对密匙(公匙、私匙进行验证)
id_raspub <————>id_ras
public就是公钥放在服务器上,另一个是私钥放在终端上
具体步骤
在服务端生成一对密钥,然后把公钥复制给客户端
cd ~ //在普通用户下就可以进入到这个目录里,然后一定是 ls -al 才能看到 .ssh文件
ls -al
cd .ssh/
ssh-keygen //生成密钥,然后三个确认键,然后中断就会弹出 :下边这个四行
Generating public/private rsa key pair. //
Enter file in which to save the key (/home/jyl/.ssh/id_rsa): //这里有个目录就是密钥的保存路径
Enter passphrase (empty for no passphrase): //
Enter same passphrase again: //
ls //然后还在这个目录下 ls一下,就出来了两个文件:
id_rsa id_rsa.pub //这就是两个文件,pub是公钥,没有pub的是私钥 私钥比较长,公钥比较短
cat id_rsa //cat一下就可以看出来了
cat id_rsa.pub //这里边就是私钥,然后复制下来到客户端
cd / //切换到根目录,然后新建一个.ssh 目录
mkdir .ssh //新建一个.ssh目录
cd .ssh/ //切换到这个.ssh目录下
touch authorized_keys //新建一个文件,用于存放公钥
vim authorized_keys //编辑这个文件,把公钥的内容复制进来
chmod 600 authorized_keys //给文件加权限,必须是600 因为别的用户不能有任何权限
FTP协议
File Transfer Protocol
两台计算机传送文件的协议
客户端可以通过FTP命令从服务器下载、上传文件、修改目录
FTP服务器安装及配置
安装
apt install vsftpd //安装这软件,这个软件会在后台守护进程
useradd -d /home/userftp -s /bin/bash -m userftp //ftp需要账号登录的,所以需要用这一行创建账户,这句运行以后右上角账户设置会出现一个名叫userftp的账户
passwd userftp //给这个账户设置密码,会重复确认密码
vim /etc/vsftpd.conf //打开这个文件,打开以后
vim /etc/allowed users //打开以后在里边填写你想让登录的用户首先是就是userftp root 还有其他用户也可以
vim /etc/ftpusers //这里边是黑名单,不允许登录的用户
vim /etc/vsftpd.conf //还是打开这个文件,修改下边这两个参数使能
write enable=YES //允许上传 ,可以根据实际需求是否允许别人上传文件
local enable=YES //允许登录
service vsftpd restart //开启这个服务了
ps -e |grep ftp //查看一个进程,可以看到有一个守护进程
ftp //直接敲击ftp 入口会变成ftp>
oepn 192.168.56.158. //这一句就是打开连接远程服务器,然后会让输入用户名userftp,然后让输入密码,会显示启动成功,使用二进制传输文件
常用的FTP命令:
open : 连接远程服务器
close :断开远程服务器
ls :列出服务器当前目录
cd :在服务器上改变工作目录
lcd :在本地改变工作目录
get :从服务器传送指定文件到本地
put :从本地上传指定文件到服务器
? :显示本地帮助信息
! :转到shell中 :转到shell在转回来需要重新连接