linux基础
elear 清屏
帮组命令
man 选项 文件名(或者命令名)
结果里面:
NAME:命令功能
SYNOPSIS:选项的格式
DESCRIPTION:命令描述
OPTIONS:选项
>,覆盖写入
ls -l / >~/bbb
注意:
1、若写入的文件不存在就自动创建。
2、如果文件存在系统会将内容情况然后将这一次的内容写入。
3、命令不管执行成功或者失败都会将重定向文件中的内容清空。
>>,追加写入
ls -l />>~/yanhaijingzhentmshuai
注意:
1、如果文件不存在就先创建,如果存在就追加写入。
2、注意右边不要有空格。
重定向标准输出、标准错误输出:
[root@yanhaijing ~]# ls -l xxxxxxxxxxxx 1>test.txt
让命令执行正确的写入到test.txt中
[root@yanhaijing ~]# ls -l xxxxxxxxxxxx 2>test.txt
让命令执行错误的写入到test.txt中。
[root@yanhaijing ~]# ls -l / 1>t1.txt 2>t2.txt
如果命令执行成功写入到t1.txt如果执行失败写入到t2.txt
/dev/null “黑洞”所有写入到这里面的东西都将会被“吞噬”。
[root@yanhaijing ~]# ls -l /asdfasdfasdfsaf 1>t1.txt 2>/dev/null
注意:
1、默认时只会将号码1的重定向。
2、当命令执行完成后,这些号码就失效了。
计划任务:
单一计划任务(好比定时炸弹,到时候炸了就没了。)
格式:at 时间
时间格式:
HH:MM YYYY-MM-DD 时:分 年-月-日
HH:MM 时:分
now + minutes 多少分钟之后执行
当你输入之后进入到提示符at>里面。
注意:
1、写命令,每一行一条命令。
2、写完之后按ctrl + d 保存
选项:
-l,查看计划任务列表。
-c 序号,查看计划任务的内容。
-d 序号,删除计划任务
周期性计划任务(每个月1号联通都让我交话费。)
格式:
crontab 选项
选项:
-l,查看当前用户计划任务。
-e,编辑crontab的工作内容。
-r,删除所有的计划任务
进入到crontab中写的格式:
分 0~59
时 0~23
日 1~31
月 1~12
周 0~6
命令
其他符号
*,表示每个周期执行。
,,表示或者 10,15 表示10分或15分
-,表示一个时间段 1-5 表示从1点到5点每个小时。
5种日期、时间选项的关系。
分、时、天、月他们的关系是并且的。
分、时、月、周他们关系是并且的。
同时设置分、时、天、月、周这个时候 天和周的关系是或者的关系。
crontab
查找命令:
whereis 配置文件/命令
locate 关键字
updatedb手动更新数据库,whereis 和locate都是从这个数据库中找这个数据。
查找文件的路径
which 文件(夹)
查找:
find 起始目录目录 -属性 属性值
属性:
-name 按照指定的文件名查找
find ./bbb/ -name aaa.txt
-user 按照指定的所有者查找
-group 按照指定的所属组查找
-size 按照指定的大小进行查找
find / -size 2M 表示查找2m的文件
find / -size +2M 表示查找大于2m的文件
find ./ -size -2M 表示查找小于2m的文件
-perm 按照指定的权限查找
find ./bbb -perm 755
grep 在文件中搜索符合条件的字符串
gerp 要搜索的字符串 文件名
grep javascript ./bbb/
管道符: 将命令1的结果作为命令2的参数
命令1|命令2
find / -name *passwd* | grep /etc/passwd
ls:显示目录内容
ls -a 显示隐藏文件 ls -1 列显示 ls -sh 以K M G显示 ll -sh 以长格式显示 相当 ls -lsh
创建目录:
mkdir ./dir1 ./dir2 ./...
递归创建目录:
mkdir -p ./parentDir/childDir
mkdir -p ./parentDir/{childDir1,childDir2,...}
删除文件或目录
rm -rf ./dir r递归 f不提示直接删除
创建文件 如果文件不存在则创建空文件 否则就更新文件的时间
touch ./filename
复制目录或者文件
cp [选项] 源文件 目标文件
当目标文件文件不是目录则表示重命名
当目标文件是目录则表示直接复制
选项: -p 表示保持源文件的原始属性(比如时间啥的) -r 递归
重命名aaa.txt文件为bbb.txt : cp ./aaa.txt ./bbb.txt 复制aaa.txt文件到bbb目录下 cp ./aaa.txt ./bbb 复制aaa目录到 bbb目录下 cp ./aaa ./bbb 如果bbb文件夹不存在 那么会将aaa重命名为bbb
移动或者重命名文件/文件夹:
mv 源文件或者源目录 目标文件夹/ 移动
mv 源文件或者源目录 目标文件 移动并且重新命名
mv aaa/ ./bbb 将aaa目录移动并重命名为bbb mv aaa/ ./bbb/ 将aaa目录移动到bbb目录下 mv aaa.txt ./bbb 或者mv aaa.txt ./bbb/ 将aaa.txt移动到bbb mv aaa.txt ./bbb/bbb.txt 将aaa.txt移动到bbb 并且重命名为bbb.txt
创建软连接和硬连接: ln
创建软连接(相当于windows的快捷方式,源文件被删除那么目标文件则失效) ln -S ./源文件 ./目标文件 删除软连接的时候注意去掉 后面的/
创建硬连接(相当于php中引用的概念,不能跨区只能超级用户创建,也不能是目录) ln ./源文件 ./目标文件
查看文件内容:
查看全部内容并且显示行号
cat -n ./aaa.txt
分屏显示
less
-f 强迫打开特殊文件
-i 忽略搜索时的大小写
-N 显示每行的行号
ps查看进程信息并通过less分页显示同时显示行号
ps -ef|less -N
浏览多个文件
less test2.log test.log
显示行号浏览完毕后自动退出:
less -eN ./aaa.txt
进入文件后的操作:
/字符串:向下搜索“字符串”的功能 按下/键输入文字再按enter键就是搜索了
?字符串:向上搜索“字符串”的功能
n:向下搜索 按下/键输入文字再按enter键然后按n是向下先试试搜索的字符串,N是向上
N:向上搜索
h 显示帮助界面
Q 退出less 命令
u 向上翻半页
d 向下翻半页
y 上一行
回车键 下一行
空格键 下一页
b 上一页
[pagedown]: 下一页
[pageup]: 上一页
从头显示
默认从上至下显示10行:
head ./aaa.txt
n为整数表示从前面显示多少行,负数表示从第一行开始到倒数多少行
head -n 3 ./aaa.txt # 从第一行开始显示3行 head -n -3 ./aaa.txt #显示从第一行到倒数三行
tail:从后面显示文件内容
tail -n m ../aaa.txt #显示后面10行
权限
角色:所有者、所属组、其他
权限: r(4)、w(2)、x(1) :可读 、 可修改文件内容|在文件夹中可可进行创建|删除|重命名|剪|”复制 、 可(进入目录)执行文件
755 rwx r-x r-x 所有者,所属组,其他
4.0K drwxr-xr-x 2 root root 4.0K Jul 10 00:50 bbb 文件类型(d:文件夹)文件夹aaa所有者权限、文件aaa所属组的权限。其他用户权限 文件aaa所有者 文件aaa所属组 文件
创建用户: useradd 用户名
修改用户名: passwd 用户名
修改角色权限
方法1:
chmod 755 ./aaa.txt 修改aaa.txt的权限
方法2:
chmod 角色 操作 权限
角色:u:所有者; g所属组; o其他
Linux系统中,预设的情況下,系统中所有的帐号与一般身份使用者,以及root的相关信 息, 都是记录在/etc/passwd
文件中。每个人的密码则是记录在/etc/shadow
文件下。 此外,所有的组群名称记录在/etc/group
內!
操作:
+ : 在原有的基础上加上某权限
- : 在原有的基础上减去某权限
= : 不管原来什么权限 都改成 当前设置的权限
权限: r w x
chmod -R go-rx ./aaa.txt
chmod u+x,g+w ./f01 //为文件f01设置自己可以执行,组员可以写入的权限 chmod u=rwx,g=rw,o=r ./f01 chmod 764 ./f01 chmod a+x ./f01 //对文件f01的u,g,o都设置可执行属性
修改所属组:
chgrp 选项 新所属组名 文件(夹)名
chgrp -R root ./bbb/
同时修稿所有者和所属组
chown 所有者用户名:所属组名 文件(夹)
chwon -R root:root ./bbb/
压缩和解压缩
gzip压缩 :压缩后源文件就没有了 不能压缩文件夹 最多只能通过 gizp -9v ./dir/* 将文件里面的文件依次压缩
选项 -# (#表示1-9)1压缩快但是压缩比差 9压缩比最好但是也是最慢的 默认的是6
-v 显示压缩比信息
gzip -9v aaa.txt
gzip 解压: -d 选项就是解压
gzip -dv aaa.txt.gz
bzip2 压缩 和gzip一样就是多了一个保留源文件 -k 参数
压缩 bzip2 -9kv ./aaa.txt 解压 bzip2 -dv ./aaa.txt.bz2
tar安装
yum install -y tar
tar打包 可以压缩多个文件 可以压缩文件夹
tar打包时默认的时候没有压缩功能,压缩是后面的选项-z -g
默认解压是解压全部 可以后面跟要解压的文件名,就能将某个文件解压出来
选项
压缩
-c 创建打包文件
-f 新建文件名
-t 查看
解压
-x 解压
-C 这里的大写C配合-x使用将包解压到指定位置
其他
-v 显示解压过程
-z gzip压缩方式
-j bzip2压缩/解压缩方式
-c:建立一个压缩文件的参数指令(create 的意思);
-x:解开一个压缩文件的参数指令!
-t:查看 tarfile 里面的文件!
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
可选参数
-z:有gzip属性,即需要用 gzip 压缩
-j:有bz2属性,即需要用 bzip2 压缩
-Z:有compress属性的
-v :压缩的过程中显示文件(显示所有过程)!这个常用,但不建议用在背景执行过程!
-O:将文件解开到标准输出
-f :使用档名,请留意,在 f 之后要立即接档名!不要再加参数!例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
# tar -cf all.tar *.jpg // 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif // 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif // 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar // 这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar // 这条命令是解出all.tar包中所有文件,-x是解开的意思
tar [-cxtzjvfpPN] 文件与目录 ....
tar -cf archive.tar foo bar # 将foo 和 bar打包成archive.tar
tar -tvf archive.tar # 详细列出archive.tar中的所有文件
tar -xf archive.tar # 从archive.tar中提取(解压)所有文件.
tar 选项 新包名 打包文件(夹)注意f后面不能有其他的选项了
tar -c -f xxoo.tar file1 file2 file3 将file1、file2、file3打包到 xxoo.tar文件中 tar -x -c ./bbb -f xxoo.tar file1 提取xxoo.tar 中的file1文件 并移动到当前路径的bbb文件夹内 tar -c -f xxoo.tar.bz2 -j file1 file2 file3 将file1、file2、file3用bzip2方式压缩并打包到 xxoo.tar.bz2文件中 tar -j -x -f xxoo.tar.bz2 -C ./ccc/ 将xxoo.tar.bz2 解压到ccc文件夹
tar -cjfv lichiuha.tar.bz2 parentDir 将parentDir压缩打包成lichiuha.tar.bz2
挂载:
/dev为linux的设备 直接是访问不到这里的设备的 如cd /dev/cdrom 提示cdrom不是目录 我们要用这个设备必须将这个设备挂载到一个存在的文件目录上
查看挂载设备:
直接输入mount 回车是查看已挂载的设备
挂载设备:
mount [选项] 外部设备 挂载点(挂载点是一个存在目录 必须是一个空目录否则已有的文件会被暂时覆盖)
选项: -t 挂载类型
如 mount -t 9600 /dev/cdrom /media/
卸载设备
mount /media/ (必须突出带/media/以外的目录才能成功,否则会提示 device is busy)
软件包安装:
程序员将程序写好,然后在编译成电脑能读懂的而二进制程序执行,
Linux中最标准的程序语言C,所以使用C语言的语法进行源代码的编写,写完之后,在LInux标准的C语言编译器(GCC)中来进行编译,让编译器生成可以使用二进制程序。
所以装完linux系统记得安装gcc
软件包安装方式: 详细的教程
centos 编译安装php7.1 mysql nginx
1)、源码包,tarball,将所有的软件源文件以tar打包在进行压缩,常见格式为*.tar.gz
*.tar.bz2,所以tarball是一个软件包,通常里面有源代码的软件、检测程序文件、说明(Install或README)
源码包的特点:
优点:开源自由定制。
缺点:
1、编译时间长。
2、一旦报错,很难解决。
3、需要知道这个软件需要哪个子程序的支持。
2)、二进制包:RPM包(Linux下都是二进制包,和windows中一样),由于tarball不容易管理、安装,所以各个厂商开始向办法,让它更加容易使用。
厂商先将软件在固定的硬件平台、操作系统上安装编译好。然后将这个软件所有相关文件打包成一个特殊格式的文件,这个文件内还包含了预先检测软件的脚本,并提供记录该软件所有文件的信息。
客户取得这个文件后只需要通过特定的命令来进行安装。
RPM是红帽开发出来的。很多Linux都使用这种机制。CentOS Fedora
RPM的优点:
1、避免重新编译。
2、安装之前,会预先检查。可以避免文件被错误的安装。
3、RPM文件本身提供软件版本信息,依赖的子程序的文件名、软件的用户说明。
RPM的缺点:
1、不能自动解决软件依赖关系。还是必须要先安装子程序。
2、用户不用重新编译,缺少自定义性。
3)、YUM安装方式,(实际上这种包也是使用RPM包)
YUM是通过分析RPM的数据后,根据软件的相关制作信息,找出各个部分的依赖,然后自动解决。
和RPM包相同但是自动的解决了依赖关系。
YUM是通过分析RPM数据后,根据各个软件相关信息制作出软件各个的依赖部分。
在一个服务器中的文件夹中包含所有软件包,当客户端要安装一个软件的时候,先发送请求到服务器,说明要安装这个软件,这个时候服务器会自动去找和该软件相互有依赖的包,然后将要装的软件和所有该软件相互依赖的包一起发送到客户端(只是将这些依赖包放在客户端的缓存中),客户端进行安装(安装完成后会将放在客户端的缓存删除掉)
源码安装php7
下载php安装包解压
tar -xjcf php-7.0.tar.bz2
进入解压后的php目录 找到configure工具shell脚本主要编译安装源代码库软件可以检测依赖关系
configure --prefix=/home/work/study/soft/php
编译源码
configure
make
mak install
进程管理:
1、什么是进程?进程是程序在运行的时候在内存中一种体现。程序开启会消耗一定的CPU和内存。
ls命令是否会产生进程?既然是命令,命令也是程序,程序运行就会将产生进程,只不过向这种进程结束的很快。
2、进程和程序的区别:进程是动态的,程序是静态的,程序如果没有运行不会消耗内存和CPU,程序在运行的时候产生了进程会消耗内存和CPU。进程会使用编号标记出来。这个进程的编号我们叫PID
进程的作用:
查看系统中的所有进程。
格式:ps 选项
功能:查看进程
选项:(选项没有-)
a,显示所有进程
u,显示进程的所有者
x,更加详细的显示。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2872 1420 ? Ss 10:38 0:01 /sbin/init
user:该进程属于哪个账号。
pid:进程号
%CPU:该进程使用掉CPU资源的百分比
%MEM:该进程所占用的物理内存百分比
VSZ:使用掉的虚拟内存的数量。
RSS:该进程占用的固定内存两。
TTY:该进程在那个终端上面运行。
?表示与终端无关内核正常调用。
tty1-tty6 在本机上面的登录者。
pts,有网络连接的进程。
STAT:该进程目前的状态,R(正在运行),S(正在休眠),Z(僵尸进程,进程已经终止但是没有办法消除。要么重新启动要么直接杀死。)
START:该进程被触发的时间。
TIME:该进程实际使用了CPU的时间。
COMMAND:该进行的实际命令。
判断服务器的健康状态。一般来说CPU和内存占用超过80%就是高负载了。使用进程可以查看到谁占用了这么多的内存和CPU
动态的显示当前系统中的进程:
格式: top
默认的时候是3秒抓取一次。
选项:
-d 数字,进程多少秒刷新
top - 12:02:06(系统时间) up 1:23(系统运行了多长时间), 1
user(登录了多少个用户), load average: 0.00, 0.00, 0.00(平均负载
1分,5分,15分)
Tasks: 116 total(总共116个进程), 1 running(1个运行), 115
sleeping(115个休眠), 0 stopped(0个停止), 0 zombie(0个僵尸进程)
Cpu(s): 0.3%us, 0.7%sy, 0.0%ni, 99.0%id(CPU空闲率), 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 3484300k total, 999692k used, 2484608k free, 62064k buffers
Swap: 3620856k total, 0k used, 3620856k free, 763676k cached
看着1、5、15的负载和CPU的空闲率。
杀死进程:所有进程都有正确的终止手段。只有使用正确的关闭进程的方式不好使的时候才会杀死进程。
格式:kill -信号 PID
信号:
-1,重启服务
-9,强制中断
-15,以正常的结束进程来终止该进程。
可以使用ps aux 查看pid号
格式:killall -信号 进程名
信号:
-1,重启服务
-9,强制中断
-15,以正常的结束进程来终止该进程。
注意:一般使用killall,如果已经知道了进程ID那么使用kill 来进行杀死。
服务管理:
服务-----》软件运行的时候提供给客户的功能。
windows里面也有服务。 msconfig
服务:服务的状态,服务的启动。
服务:
RPM包安装的服务:RPM包是默认安装的服务(Linux装系统的时候,有很多东西都是使用RPM包安装出来的,所以Linux将会将RPM包安装的成为默认服务)
独立服务:独立服务可以自己单独启动的服务,这种类型的服务可以让用户自主决定是否启动。不必通过其他的管理机制。他的特点:服务一启动就加载到内存中,一直占用内存资源。这样当有请求过来的时候可以快速响应。
chkconfig --list 来查看RPM包安装的服务以及,自启动状态。
[root@lichihua ~]# chkconfig --list
结果如下:
NetworkManager 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
系统运行的级别:0:关机 1:单用户 2:单用户,但是不带文件共享 3,文字界面 4:未使用(预留) 5:图形界面 6:重启
开启、关闭、重新启动
格式:service 服务名 动作
动作:start 开启 stop 停止 restart 重新启动服务。
比如:service network restart 重新启动网络服务
注意:也可以使用/etc/init.d/服务名
动作来进行处理,因为service命令也是从/etc/init.d中查找指定的服务名。
独立服务的自启动:
方法1:chkconfig [--level 运行级别] 服务名 on|off
chkconfig --level 12 vsftpd on ===》 让vsftpd这个服务在1和2运行级别中自启动。
chkconfig vsftpd off ===》让vsftpd这个服务在2345中关闭自动启动。
注意:--level如果省略表示的是2345运行级别
方法2:使用vtsysv命令管理(红帽专有)
方法3:在/etc/rc.local文件中写入开启的命令
(了解内容)非独立服务:(现在用的太少了),基于xinetd的服务。xinetd他是一个独立服务。其他的这些非独立服务由他来调用。
就相当于你去银行排号,办理某种业务。
源代码包安装的服务:
要启动或者要停止,看安装目录中的服务名。
/Apache/bin/Apachectl start
/apache/bin/apachectl start (apachectl最后的1是1234的1不是L)
自启动-----》在/etc/rc.local文件中写入开启的命令
tarball(源码包)安装的软件这些服务能够用service开启或者关闭吗?可以
/etc/init.d里面没这个东西。 现在我有一种方法。我给这个源码包安装的服务软连接到/etc/init.d中。
/Apache/bin/Apachectl
ln -s /Apache/bin/apachectl /etc/init.d/apache
service apache start
service apache stop
系统运行级别:
0,关机
1,单用户
2、单用户,但是不带文件共享
3、文字界面
4、未使用
5、图形界面
6、重启。
init 0
init 6
runlevel 查看当前运行级别 第二个是当前的运行级别,第一个是当前运行级别的上一个运行级别。
网络配置
网卡信息:
Linux中普通有线网卡使用eth表示。无线网卡使用wlan表示。
0表示第一张网卡,1表示第二章网卡。
eth0
查看、配置网卡信息:ifconfig
格式:ifconfig [选项] [网卡名]
默认的时候查看,已经激活的可用的网卡信息。
-a,查看所有的网卡的信息。
ifconfig eth0 查看eth0的网卡信息。
eth0(网卡名) Link encap:Ethernet HWaddr 00:0C:29:0E:15:70(网卡的Mac地址)
inet addr:192.168.186.86(IPv4) Bcast:192.168.186.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe0e:1570/64(IPv6) Scope:Link
UP(网卡状态) BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1803 errors:0 dropped:0 overruns:0 frame:0
TX packets:1001 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:179917 (175.7 KiB) TX bytes:209314 (204.4 KiB)(从开机到现在已经发送了多少包)
Interrupt:19 Base address:0x2000
配置网络:
/etc/sysconfig/network-scripts/ifcfg-eth0
[root@lichihua network-scripts]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
UUID="242cb6db-e380-4e0f-86da-7a6fa381575c"
HWADDR=00:0c:29:0a:bf:46
DEFROUTE=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
IPADDR=192.168.200.2
NETMASK=255.255.255.0
GATEWAY=192.168.200.1
USERCTL=no
DEVICE 网卡名
BOOTPROTO 这张网卡通过什么方式来获得IP地址(none,通过手工获得。static,静态获得。dhcp,动态获得)
HWADDR=00:0c:29:0e:15:70 (MAC地址)
ONBOOT=yes(系统或网络重新启动时候是否直接自动启动。)
IPADDR=192.168.186.86 (你设置的IP地址)
DNS1=202.106.0.20(配置主DNS地址,可以最多有3个 第二个DNS2 DNS3)
DNS:domain name server,将主机名转换为IP地址或将IP地址转换为主机名
注意:设置完配置之后一定要重新启动网络让新的配置生效。
service network restart
查看当前网络开启的端口
netstat 选项。
选项:
-n,不将IP地址解析成主机么一
-t,查看tcp情况
-u,查看udp的情况
-l,查查看监听的端口
-p,显示端口对应的进程。
netstat -ntulp
注意:
如果Apache开启的话 80 httpd
ipconfig/all(windows)
文件服务器:
FTP服务器:
FTP:文件传输协议,用于在inter上控制文件的双向传输(上传、下载)。
FTP的工作原理:
FTP服务器开启以后,会开启两个端口:20和21
20,用来传输数据。
21,用来传输信令,验证信息。
FTP两种模式来进行工作:
主动模式,客户端使用M端口(1024),来连接服务器的21端口,验证完成之后服务器通过20端口和客户端的N端口进行链接,也就是说FTP会主动链接到客户端的N端口。
被动模式,客户端使用M端口连接FTP的21端口,客户端同时告诉FTP传输数据使用N端口进行传输,也就是说FTP服务器根据客户端提供的端口来进行数据传输。
vsftpd:vervy secure ftp daemon 非常安全的FTP,VSFTP是一个在Unix操作系统上运行的FTP服务器的名字。
安装:
yum install vsftpd
注意:安装完成后会自动创建一个ftp用户和一个ftp组
开启服务:
service vsftpd start
service vsftpd stop | restart
注意:做实验的时候要把防火墙和seLinux的关掉。
setenforce 0 让seLinux暂停 临时关闭
进入到/etc/selinux/config
SELINUX=disabled
[root@yanhaijing Packages]# rpm -q vsftpd
vsftpd-2.2.2-11.el6.i686
VSFTPD的设置
vsftpd的配置文件:/etc/vsftpd/vsftpd.conf
匿名用户
anonmous_enables,是否启用匿名用户登录
注意:
1、匿名用户默认的时候是进入到/var/ftp这个目录中。
2、如果你用匿名用户登录,登录的时候用户名ftp
3、匿名用户没有密码。
anon_root,更改匿名用户的用户根目录。
注意:
1、要修改ftp这个用户的家目录为你anon_root的值。
usermod -d 目录 用户名 修改用户的家目录
2、修改配置之后重新启动服务
anon_upload_enable,匿名用户是否可以上传
注意:
1、ftp这个用户一定要对这个目录有写权限。
2、vsftpd不能直接匿名根目录。
anon_mkdir_write_enable,匿名用户是否可以创建新目录
anon_other_write_enable,匿名用户是否可以删除、重命名。
本地用户
local_enable,是否允许本地用户登录
注意:本地用户登录后目录是/home/用户名 ,用户的家目录。
write_enable,是否设置本地用户可写。
/×虚拟用户×/
chroot选项:
什么是chroot,他让你的ftp的根目录定位在你设定的目录中不能往上走。也就是说,如果你是使用本地用户登录只能最上层只能是/home/用户名
这个就是你的ftp的根目录
chroot_local_user,是否启用本地用户的chroot
chroot_list_enable,让某些用户可以改变目录。
chroot_list_file,写在这个文件中的用户可以进行改变目录。
注意:在这个里面每一行写一个用户名。写在这个里面的可以进行改变目录。
SAMBA
三八服务器。
我们如果能够让文件直接在服务器上面进行修改。
在Linux和Linux之间可以使用NFS服务器。
windows和windows之间可以使用网上邻居。CIFS
windows和Linux之间怎么通信?
在1991年的时候有个小伙子发明了SMB(server Message Block)让Linux和windows进行通信,但是在注册商标的时候SMB没有办法通过,因为SMB没有文字意义。正好SAMBA中有了SMB这三个字母就使用了SAMBA
安装yum
yum install samba
注意:
1、SAMBA主要使用两个服务
nmbd:用来进行解析工作(链接到那个地址)开启137和138端口。
smbd:用来管理分享的目录,开启139端口。
开启:
service smb restart|start|stop
service nmb restart|start|stop
samba的主要配置文件
vi /etc/samba/smb.conf
注意:
1、#号开始和;开始都是注释信息。
;号开始表示的选项,#号开始表示的是描述。
2、[global] => 全局生效的东西
包括工作组、主机名、字符编码、是否使用密码,密码使用的机制。
格式:参数=参数对应的值
3、[分享资源名]=>针对开放的目录进行权限方面的设定
格式:参数=参数对应的值
注意:
1、workgroup必须和windows中的设定的工作组一样。
WORKGROUP
2、interface监听那个网卡(哪个端口)
3、security通过什么形式来进行验证。
share(分享的数据不需要密码) user(使用SAMBA本身的密码)
匿名用户登录SAMBA
windows-》Linux
1、确保Linux和Windows能够ping通
2、workgroup和windows的group一定要一样。
3、将security=share
4、加入分享名字。
[lamp129]
path = /lamp129//分享的服务器上面的路径
writeable = yes//是否可写
public =yes//匿名用户是否可以访问。
注意:一定要关闭seLinux
注意:
1、如果不能写入通常注意三个方面:
1、服务器设置是否可写。
2、是否有这个目录的权限。匿名用户是目录里面的其他人(nobody),那么其他人必须有w的权限。
3、seLinux问题。
打印机和传真。
进行验证的SAMBA 登录