Linux操作系统基础

Linux操作系统基础

  • Linux概述
    • Linux结构
    • Linux文件系统类型
    • Linux文件属性
    • Linux目录结构
    • Linux系统环境
  • 命令概述
    • 1. 命令格式
    • 2. 命令帮助
  • 目录操作
    • 1. 目录的路径概念
    • 2. 目录的显示和切换
    • 3. 目录的新增和拷贝
    • 4. 目录的删除
    • 5. 目录的移动和改名
  • 文件操作
    • 1. 文件的显示和过滤
    • 2. 文件的新增和拷贝
    • 3. 文件的删除
    • 4. 文件的移动、改名和查找
    • 5. 文本文件的编辑
  • 文件压缩和归档
    • 1. 文件归档
    • 2. 文件压缩
    • 3. 库文件归档
  • 设备挂载、软件包升级与安装
    • 1. 设备挂载和卸载的概念
    • 2. 光盘设备挂载
    • 3. U盘设备挂载
    • 4. 设备卸载
    • 5. 软件包在线升级
    • 6. 软件包离线安装
  • 进程管理
    • 1. 进程查看
    • 2. 进程树查看
    • 3. 进程动态查看
    • 4. 进程中止操作
  • 系统管理
    • 1. 清屏、重启、关机
    • 2. 系统信息和主机名查看
    • 3. 计划任务
    • 4. 内存状态查看
    • 5. 磁盘系统和磁盘占用查看
    • 6. 磁盘分区查看和设置
  • 网络管理
    • 1. 网络连接查看
    • 2. 网络地址查看和设置
    • 3. 域名解析查询
    • 4. 路由信息查看
    • 5. 网络统计信息查看
  • 用户管理 (注意:wzy代表用户)
    • 1.用户添加与删除
    • 2.用户查看
    • 4.用户账号锁定
    • 5.用户账号配置文件
  • 用户组管理
    • 1. 用户组添加与删除
    • 2. 用户组查看
    • 3. 用户组成员更改
    • 4. 用户组的配置文件
  • 文件权限属性
    • 1. 文件权限设置
    • 2. 文件属主和属组设置
  • Linux网络服务
    • 1. ftp的命令使用(ftp文件传输协议 CS架构 异步传输)
    • 2. ftp服务的安装
    • 3. ftp服务的启动停止和配置
    • 4. ssh的命令使用
    • 5. ssh服务的安装
    • 6. ssh服务的启动停止和配置

Linux概述

Linux结构

  kernel->运行期库->shell->实用工具程序

Linux文件系统类型

  EXT3、EXT4是当今Linux操作系统默认使用的文件系统类型
  SWAP类型的文件系统只是在Linux交换分区中被使用
  Linux操作系统至少需要两个分区:跟分区(EXT4格式)和内存交换分区(SWAP格式)
    /分区:容纳跟文件系统
    SWAP分区:用于内存扩展

Linux文件属性

  文件名:可由字母、数字、下划线、圆点等组成
  文件类型包含:普通文件、目录文件、链接文件、设备文件等
  文件类型属性:用字符体现 ls -l 命令查看
    -   代表普通文件
    d  代表目录文件
    l  代表链接文件
    b  代表块设备文件
    c  代表字符设备文件
    p  代表管道文件

Linux目录结构

  Linux的根目录结构
  /
  /sbin  /lib  /etc  /dev  /root  /usr  /var  等

Linux系统环境

	Linux的磁盘分区
	磁盘分区的种类
		主分区(小于3个)+ 扩展分区(扩展分区里有很多逻辑分区)<=4
	磁盘分区的表达
		/dev/sda1 代表第一个主分区
		/dev/sda5 代表第一个逻辑分区
		/*用文件来表示硬件设备*/
		(/dev/sda5中的dev  	所有硬件设备文件的目录)
		(/dev/sda5中的sd    为硬件设备的代号,hd代表IDE并口设备,sd代表SCSI,SATA等的高速串口设备)
		(/dev/sda5中的a      同类型设备的编号,a代表第一个硬盘,b则代表第二个硬盘,可类推)
		(/dev/sda5中的5      分区号)

命令概述

1. 命令格式

$ #	command [option] [arguments] 回车提交
用户	命令名	选项	参数	 回车提交
	例子:
	$ ls -l /home

2. 命令帮助

man 手册页:
man db		//安装命令帮助
man			//阅读帮助手册页
man --help	//获取快捷帮助信息
info		//阅读帮助信息页
help		//查看内部命令(子命令 内部命令 内建命令)的帮助信息

	例子:
	ls				//缺省方式ls
	ls /home		//默认方式ls
	ls -l /home		//详细方式ls
	man ls			//查看ls
	上下键翻页
	/-l 回车		//查看-l的匹配
	n				//查看下一个匹配
	q				//退出帮助
	ls -a			//查看隐藏的文件
	info ls			//官方化查看ls帮助,如果man没有可以用info
	type pwd		//查看pwd命令是内部还是外部命令
	help pwd		//查看内部命令pwd
	ls --help		//ls的快捷帮助

目录操作

1. 目录的路径概念

路径是搜索到达文件所经历的目录途径
相对路径(从当前目录开始表达的路径)
绝对路径(从根目录‘/’开始表达的路径)

2. 目录的显示和切换

	ls			//目录内容显示
	ls -l		//列示文件和目录条目
	ls -d		//列示当前条目的自身信息
	ls -ld
	cd			//切换目录~
	pwd			//当前目录显示

3. 目录的新增和拷贝

	mkdir			//目录新增
	mkdir -p		//递归创建多层目录
	cp				//将源目录拷贝到目标目录下,支持拷贝的同时改名
	cp -a			//全部拷贝
	cp -f			//强制拷贝

4. 目录的删除

	rmdir			//空目录删除
	rmdir -p		//递归删除多层空目录
	rm -rf			//-r 递归删除目录,-f强制删除目录

5. 目录的移动和改名

	例子:
	mv a b			//a文件改为b文件
	mv a b/a		//a文件移动到b下
	mv a b/c		//a文件移动到b下的同时改名为c
目录操作例子:iotek用户
	ls -l
	pwd				//显示当前目录路径
	ls -ld .		//当前目录详细信息(相对路径)
	ls -ld /home/iotek	//当前目录详细信息(绝对路径)
	cd ~			//回到home目录
	cd 				//回到home目录
	cd ..			//回到上级目录
	mkdir a b c		//同时创建同一层的目录a b c
	mkdir -p d/e	//同时创建递归目录d/e
	rmdir a			//删除空目录
	rmdir -p d/e	//删除d/e空目录
	mkdir b/f		//b已经是存在的目录可以不用-p选项
	cp test.txt b/f	//把test.txt拷贝到b/f下
	rm -rf b/f/test.txt	//删除test.txt
	rm -ri b		//提示方式来删除文件
	cp -a aa bb		//把aa拷贝到bb下

文件操作

1. 文件的显示和过滤

cat			//全屏显示 可以同时显示多个文件
more		//显示一屏(空格键翻页)
less		//显示一屏(上下键翻页)
head -n		//指定显示前n行
tail -n		//指定显示后n行
tail -f		//查看尾部最新信息
grep -v		//反向筛选不含指定关键词的行
grep 		//正向筛选包含指定关键词的行
	例如:
	cat
	hell
	Ctrl + d		//退出
	cat test.c		//假设test.c文件存在
	cat -t test.c	//显示Tab特殊字符
	more test.c
	空格键下一屏		//只能向下看
	q				//退出
	less test.c
	上下键
	q				//退出
	head -6 test.c			//看前面的6行
	tail -6 test.c
	echo "hello" >>test.c	//添加到test.c
	tail -f test.c			//查看最新的尾部(适合看日志文件)
	grep iotek test.c		//查看test.c中有iotek的行
	grep -v iotek test.c	//查看test.c中没有iotek的行
	grep -i iotek test.c	//大小写不明感查看test.c中有iotek的行
	grep -r "iotek" a		//在a目录下查找所有的写有iotek文件

2. 文件的新增和拷贝

touch		//若文件不存在,则创建新文件
			//若文件存在,则更新文件的时间戳到当前系统时间
cp			//缺省只拷贝文件
cp -a		//拷贝文件和目录
cp -i		//提示拷贝时是否覆盖
	例子:
	touch test.c	//创建空的文件
	cat test.c
	echo "hello">>test.c
	cat test.c
	ls -l test.c
	touch test.c	//文件存在,则更新文件的时间戳到当前系统时间
	ls -l test.c
	tail -f test.c

3. 文件的删除

rm 			//缺省删除指定的文件
rm -i		//提示确认的将要被删除的内容
rm -r		//递归删除指定的文件或目录
rm -f		//强制删除指定的文件或目录,无论其是否存在
	例子:
	rm test.c tes.c		//同时删除test.c tes.c
	rm -i exemples.c	//提示方式删除
	mkdir a/b
	rm -ri a			//递归+提示方式删除

4. 文件的移动、改名和查找

mv			//文件的移动改名
find		//文件查找
which		//查找系统命令文件
locate		//系统文件的快速查找
	例子:
	mv test.c b/		//test.c移动到b目录下
	ls b
	mv b/test.c test1.c	//b/test.c移动到当前目录下,并改名为test1.c
	ls
	ls b
	find . -name "a"	//在当前目录查找名为a的文件
	find / -name "a"	//从根目录查找a文件
	which cc			//查找系统命令文件cc
	locate cc			//索引方式查找系统文件

5. 文本文件的编辑

vim基础操作:
	//命令模式
	//可编辑模式
	//末行模式
	例子:
	i		//插入模式(当前插入)
	o		//插入模式(下面插入)
	O		//插入模式(上面插入)
	insert		//替换模式
	:wq		//保存退出
	:w test.c 		//当前目录下创建新文件test.c并写入
	:q		//退出
	2yy		//复制2行
	p		//粘贴到下面
	P		//粘贴到上面
	3dd		//删掉3行
	/io		//查找io	(n下一个	N上一个)
	:s/io/IO/gc	//当前行提示方式替换io为IO
	:%s/io/IO/gc	//全篇提示方式替换io为IO
vim高级操作:
vim ~/.vimrc	//设置vim
	例子:
	:set nonu		//不显示行号
	:set nu			//显示行号
	:13				//跳转到13行
	u				//撤销
	U				//撤销10步
	Ctrl + r		//回做
	:q!				//不保存退出
	/*多文件并发*/
	vim t1.c t2.c t3.c	//同时编辑多个文件
	:args		//显示已经打开的文件
	:next		//下一个文件
	:prev		//上一个文件
	:last		//最后一个文件
	:first		//第一个文件

文件压缩和归档

1. 文件归档

tar			//缺省仅仅打包归档,不进行文件压缩
tar -c		//创建归档文件包
tar -x		//释放归档文件包
tar -t 		//查看归档文件包
tar -v		//显示归档包操作过程信息
tar -f 		//指定归档包文件名
	例子:
	tar cvf guidang.tar *.c *.h	//当前目录下所有的.c和.h文件进行归档
	tar tvf guidang.tar			//查看guidang.tar有哪些文件
	tar xvf guidang.tar -C aa/	//将guidang.tar释放到aa目录下

2. 文件压缩

tar -z		//*.tgz格式压缩
tar -j		//*bz2格式压缩
zip			//压缩zip
unzip		//解压zip
7z -a		//添加文件到压缩包
7z -e		//释放压缩包中的文件到当前目录
7z -l		//列示压缩包中的子文件列表
7z -d		//删除压缩文件中的某个子文件
7z -t		//测试压缩文件的完整性
7za			//单独的可执行文件,负责实现7zip压缩和解压的双向操作
	例子:
	tar czvf ysb.tgz *.c *.h	//压缩包
	tar tzvf ysb.tgz			//查看压缩包
	tar xzvf ysb.tgz -C bb/		//压缩包解压到bb目录
	tar cjvf YSB.bz2 *.dev *.c *.txt
	tar tjvf YSB.bz2
	tar xjvf YSB.bz2 -C cc/		//解压到cc目录
	zip ys.zip *.deb *.c *.txt	//压缩
	cd dd/			
	unzip ys.zip				//zip只能当前目录解压缩
	sudo apt-get install p7zip-full	//安装7z
	7z -a ys.7z *.deb *.txt *.c	//压缩
	7z-l ys.7z					//列显
	7z -e ys.7z 				//解压到当前目录
	7z -d ys.7z test.c			//删除压缩包中的test.c
	7z -l ys.7z

3. 库文件归档

ar			//归档程序的目标代码文*.o到静态库文件*.a
ar -r		//添加目标代码文件到静态库文件中
ar -x		//提取目标代码文件从静态库文件中
ar -t		//查看静态库文件中的目标代码列表
ar -v		//显示详细信息
ar -d		//删除目标代码文件从静态库文件中
	例子:
	ar tv libsupp.a			//详细查看libsupp.a的文件
	ar xv libsupp.a			//提取libsupp.a文件
	ar rv libsupp.a add.o	//将add.o添加到静态库libsupp.a中
	ar dv libsupp.a add.o	//将add.o从静态库libsupp.a中删除

设备挂载、软件包升级与安装

1. 设备挂载和卸载的概念

	盘符和设备挂载
	设备挂载命令
	设备卸载
	例子:
	ls /mddia		//系统默认挂载设备目录

2. 光盘设备挂载

/*光盘手动挂载*/
mount -t iso9660 /dev/cdrom /mnt	//将dev/cdrom设备挂载到/mnt目录下
/*光盘iso镜像文件挂载*/
//将mycd.iso放到loop回环设备,挂载到/media目录
mount -o loop -t iso9660 mycd.iso /media	

	例子:
	sudo mount -t iso9660 /dev/cdrom /mnt			//光盘手动挂载
	ls /mnt
	sudo mount -o loop -t iso9660 mycd.iso /home	//光盘iso镜像挂载		

3. U盘设备挂载

/*FAT32文件系统的U盘手动挂载*/
mount -t vfat /dev/sdb1 /mnt
/*NTFS文件系统的U盘手动挂载*/
mount.ntfs /dev/sdb1 /mnt
	例子:
	sudo mount /dev/sdc1 /home/iotek/a
	ls -l /home/iotek/a
	mount.ntfs /dev/sdd1 /mnt/usb

4. 设备卸载

umount -a	//卸载当前所有的非启动挂载挂载项
umount /mnt	//卸载/mnt目录
umount /dev/sdb1	//卸载/dev/sdb1设备
	例子:
	sudo umount /home/iotek/a		//卸载某个目录
	sudo umount /dev/cdrom		//卸载光盘,挂载到某个目录的文件也被卸载
	sudo umount -a			//卸载所有设备

5. 软件包在线升级

apt-get				//APT软件包管理命令
apt-get download	//软件包下载
apt-get install		//软件包安装
	例子:
	sudo apt-get download vim		//当前目录下载vim软件包
	sudo apt-get install vim		//安装vim
	sudo apt-get update				//更新软件列表
	sudo apt-get upgrade vim		//升级vim

6. 软件包离线安装

dpkg -i		//离线deb软件包安装
dpkg -r		//离线deb软件包卸载
	例子:
	sudo dpkg -i minicom.deb		//安装minicom.deb
	sudo dpkg -r minicom			//卸载minicom

进程管理

1. 进程查看

ps			//缺省仅显示当前shell进程本身
ps -aux		//a 显示关联终端的所有进程信息
			//u 显示所有有效用户的进程信息
			//x 显示没有控制终端的进程信息
ps -ef		//e 显示所有进程信息
			//f 以完全格式来显示进程信息	
	例子:
	ps
	ps -aux
	ps -ef

2. 进程树查看

pstree			//缺省显示由当前所有进程所构成的进程树信息
pstree -p		//附加显示进程号的方式来显示进程树

3. 进程动态查看

top			//缺省显示当前占用cpu资源最多的所有进程信息(动态更新)
top -p 		//仅显示指定进程号进程的资源占用情况
	例子:
	top
	q				//退出
	top -p 5		//查看一个5号进程
	q
	top -p $$		//查看当前进程

4. 进程中止操作

kill			//缺省发送TERM信号给指定进程
kill -l			//选项"-l"表示查看所有系统支持的信号
sudo kill -9	//发送中止该进程的信号
sudo kill -9 $$	//发送中止该进程的信号
killall			//缺省发送TERM信号给指定进程名的进程
	例子:
	kill -l		
	sudo kill -9 $$		//结束当前进程
	killall -9 gedit	//结束gedit(名称)的进程
	gedit				//打开gedit这个软件
	pidof gedit			//查看gedit(名称)进程号

系统管理

1. 清屏、重启、关机

clear		//清屏命令
reboot		//重启
halt 		//关机
shutdown	//关机
	例子:
	clear			//将当前行置顶
	sudo reboot		//重启
	shutdown --help	//查看文档,指定多少秒系统关机

2. 系统信息和主机名查看

cat /proc/meminfo	//系统内存硬件信息查看
cat /proc/cpuinfo	//系统CPU硬件信息查看
uname -a			//操作系统信息查看
hostname			//主机名查看

3. 计划任务

crontab		//计划任务查看与设置
	例子:
	man cron					//查看cron
	crontab -e 					//编辑cron
	sudo service cron restart	//启动cron
	crontab -h					//查看cron
	crontab -ri					//结束计划任务
	crontab -l					//查看当前的计划任务

4. 内存状态查看

free		//缺省以字节为单位显示内存信息
free -s		//指定的间隔秒数显示内存信息
	例子:
	free
	free --help
	free -m			//以M为单位显示内存
	free -s 5		//每隔5秒显示内存
	Ctrl C			//结束

5. 磁盘系统和磁盘占用查看

df			//缺省以字节为单位显示磁盘文件系统的空间使用
df -h		//以人性化方式显示
du			//缺省以字节为单位显示文件空间占用的详细报告
du -s		//概括描述文件空间占用情况
du -h		//以人性化方式显示
	例子:
	df
	df -h
	df -h /home
	du /home		//查看home下的所有信息
	du -s /home		//概括显示显示home的信息(以字节为单位)
	du -sh /home	//概括显示显示home的信息(以M为单位显示)

6. 磁盘分区查看和设置

sudo fdisk -l	//查看磁盘分区
fdisk -help		//查看磁盘分区设置
	例子:
	sudo fdisk -l
	sudo fdisk /dev/sdb		//进入/dev/sdb设置分区

网络管理

1. 网络连接查看

ping 目标地址	//缺省持续测试当前主机至目标主机的网络连通性能
ping -c 目标地址	//指定发送ICMP_REQUEST的包计数
	例子:
	ping 127.0.0.1	
	ping -c 6 127.0.0.1		//6次ping
	ping www.baidu.com	//ping域名

2. 网络地址查看和设置

ifconfig		//查看网络接口详细信息
				//临时设置网络接口相关参数
				//缺省查看所有连接着 的网络接口地址信息
ifconfig -a eth0		//查看某块网络接口的地址信息(eth0表示第一块网卡)
sudo ifconfig etho 192.168.1.1 netmast	255.255.255.0	//获取特权设置网络接口地址
		ip		子网掩码
	例子:
	ifconfig

3. 域名解析查询

nslookup		//域名地址解析命令
	例子:
	nslookup www.iotek.com.cn	//域名->地址
	nslookup 8.8.8.8			//地址->域名(有些不支持)

4. 路由信息查看

route		//查看当前主机的路由设置信息
			//支持设置主机的静态路由信息
			//缺省检测和显示路由信息
route -n	//简单显示缓存于主机的路由信息
	例子:
	route			//查看路由表
	route -n		//查看缓存中的路由表
	sudo route add default gw 192.168.1.1		//添加一条网关
	route -n		
	sudo route del default gw 192.168.1.1		//删除一条网关
	route -n

5. 网络统计信息查看

netstat			//查看当前网络统计
				//缺省显示简单网络统计信息
netstat -a		//显示包含监听信息的所有网络统计信息
netstat -t		//仅显示与TCP协议相关的网络统计信息
	例子:
	netstat
	netstat -a
	netstat -t
	netstat --help

用户管理 (注意:wzy代表用户)

1.用户添加与删除

	例子:
	sudo useradd -m wzy	//添加wzy用户(-m 添加用户的家目录)
	ls /home			//查看home目录写的用户目录
	sudo passwd wzy		//设置wzy用户密码
	su wzy				//wzy用户登录
	exit				//用户退出
	sudo userdel -r wzy	//删除wzy用户(-r 删除用户所有目录)

2.用户查看

whoami			//查看当前用户
who				//查看所有登录用户
id				//用户id查看(-u 仅显示当前有效用户)
3.用户切换
su wzy			//切换到wzy用户
sudo -i 		//切换到root用户
sudo			//用户临时获取管理员权限
		例子:
		whoami				//查看当前用户为iotek
	sudo useradd -m wzy1	//添加wzy1用户(-m 添加用户的家目录)
	sudo passwd wzy1		//设置wzy1用户密码
	su wzy1					//切换到wzy1用户
	sudo wzy				//此时wzy1不在sudoers文件中(待解决)
	exit					//退出wzy1
		sudo -i				//切换到root用户
	gpassd -a wzy1			//将用户wzy1加入到sudo组中(已解决)
		exit				//退出wzy用户
		sudo -i				//进入root用户
		exit				//退出root用户

4.用户账号锁定

sudo usermod -L 用户名	//用户加锁
sudo usermod -U 用户名	//用户解锁
	例子:
	sudo usermod -L wzy1	//锁定wzy1用户
	whoami			//假设查看当前用户为iotek
	su wzy1			//切换到wzy1用户失败,因为wzy1用户已经被锁定
	sudo -i			//iotek切换到root用户
	whoami			//查看当前用户为root用户
	su wzy1			//root用户切换到wzy1用户
	whoami			//查看当前用户为wzy1,因为root用户权限高
	exit			//退出wzy1用户回到root
	passwd wzy1		//root修改wzy1密码
	exit			//退出root回到iotek
	whoami			//查看当前用户为iotek
	su wzy1			//iotek切换到wzy1,此时成功,因为wzy1密码被root修改,自动解锁wzy1
	sudo usermod -L wzy1	//锁定wzy1
	whoami			//查看当前用户为iotek
	su wzy1			//切换到wzy1失败,因为wzy1已经被锁定
	sudo usermod -U wzy1	//解锁wzy1
	su wzy1			//切换到wzy1成功,因为wzy1已经解锁
	exit			//退出wzy1,回到iotek

5.用户账号配置文件

/etc/passwd		//用户证号文件
/etc/shadow		//用户影子密码文件
	例子:
	less /etc/passwd		//查看账号
	sudo less /etc/shadow	//查看密码(加密的密码)

用户组管理

1. 用户组添加与删除

groupadd -g 指定新用户组的gid 用户组名
groupdel 用户组名
	例子:
	sudo groupadd user01	//添加用户组user01
	tail /etc/group			//查看组的组号
	sudo groupdel user01	//删除用户组user01
	tail /etc/group			//查看组的组号已经没有user01
	sudo groupadd -g 1005 user02	//添加指定组号1005的用户组user02(注意指定的组号不能重复)
	tail /etc/group			//查看组的组号,有1005的user02
	sudo groupdel user02	//删除用户组user02
	tail /etc/group			//查看用户组已经没user02

2. 用户组查看

groups			//缺省查看当前用户所在的所有用户组
				//指定用户名时,查看指定用户所在的用户组

3. 用户组成员更改

sudo gpasswd -a 用户名 用户组	//-a 用于将新增用户加入组群
sudo gpasswd -d 用户名 用户组	//-d 用于将用户从组群中删除
	例子:
	whoami			//查看当前用户为iotek
	groups			//查看组群有bancai
	sudo gpasswd -a iotek bancai	//将iotek用户加入到bancai组中
	newgrp bancai	//将bancai成为有效组(bancai到了组群中的第一个位置)
	whoami			//查看当前用户为iotek
	groups			//查看当前组群可以看到bancai到了第一个位置
	touch test.out			
	ls -l			//可以看到test.out的用户为iotek 组名为bancai
	sudo gpasswd -d iotek bancai	//将iotek从bancai组中删除

4. 用户组的配置文件

/etc/group			//用户组账号文件
/etc/gshadow		//用户组影子文件
	例子:假设有bancai组
	less /etc/group			//查看用户组账号
	sudo less /etc/gshadow	//查看用户组影子文件
	sudo gpasswd -R bancai	//限制bancai组的被访问权限

文件权限属性

1. 文件权限设置

	ls -l 文件名		//查看文件属性
	ls -ld 文件目录	//查看文件目录属性
	文件权限描述:
	权限项	读  写  执行	读  写  执行	读  写  执行
	字符表示 	r    w   x		r     w   x		r     w   x
	权限分配		4    2    1		4     2   1		4    2    1
	权限分配	文件所有者	文件所属组用户	其他用户
				u			g				o		a 所有用户

	chomd  <+ - =>  文件	//+ 加某个权限	- 减某个权限	= 只有某个权限
	chomd <7 6 5 4 3 2 1><7 6 5 4 3 2 1><7 6 5 4 3 2 1> 文件		//正向设置权限
	umask <0 1 2 3 4 5 6><0 1 2 3 4 5 6><0 1 2 3 4 5 6> 文件		//反向设置权限
		例子:
		chmod u+x test		//test文件所有者增加执行权限
		chmod o=wr test		//test其他用户只有读写权限
		chmod 644 test		//test文件所有者(读写) 组用户(读) 其他用户(读)
		umask				//查看缺省权限
		umask -S			//具体查看缺省权限
		/*对于目录*/
		umask 022			//设置缺省的掩码(通常系统缺省掩码为022)
		makdir mdir
		ls -ld mdir			//看到文件被权限设置为755,因为之前省掩码设置为022
		/*对于普通文件*/
		touch m.txt
		ls -l m.txt			//看到文件被权限设置为644,因为要在缺省掩码设置022,再减去可执行权限

2. 文件属主和属组设置

	chown		//缺省设置当前文件的所有者用户
				//-R 用于递归设置目录中所有文件的属主
	chgrp		//缺省设置当前所属组变更为目标用户组
				//-R 用于递归设置目录中所有文件的数组
		例子:newdir目录文件	iotek当前用户 	bancai另一用户
										//属主		属组
		ls -ld newdir					//iotek 	iotek
		sudo chown bancai newdir		//bancai	iotek	改变属主
		whoami							//iotek
		sudo chgrp bancai newdir		//bancai	bancai	改变属组
		sudo chown iotek:iotek newdir	//iotek	iotek	改变属主、属组
		sudo chown :bancai newdir		//iotek	bancai	改变属组
		ls -l newdir					//可以看到newdir里的数组没改还为iotek
		sudo chgrp -R bancai newdir		//递归设置目录中所有文件的数组都为bancai
		ls -l newdir
		sudo chown -R bancai newdir		//递归设置目录中所有文件的数主都为ba
		ls -l newdir					//此时可能无法查看,因为newdir属主为bancai
		su bancai
		ls -l newdir
		exit
		sudo chown -R iotek newdir

Linux网络服务

1. ftp的命令使用(ftp文件传输协议 CS架构 异步传输)

	例子:bancai用户
	!为客户端的
	fit 192.168.160		//fit 服务器ip
	输入bancai
	输入密码
	bi			//切换到2进制传输模式(binary mode)
	ls			//看服务器下的内容
	!ls			//看bancai客户端的内容
	passive		//主动模式连接失败用被动模式(passive mode	服务器等客户端
	passive		//第二次关闭被动模式切换回主动模式		服务器主动连接客户端
	ascii		//切换到文本传输模式(ASCII mode)
	bi			//用2进制比较好
	mput test*	//上传文件名为test 某某的所有文件(询问方式需要确定)
	ls			//服务器看到有test某某的文件
	bi
	mget ftp*	//下载ftp某某的文件到客户端
	!ls
	bye			//退出

2. ftp服务的安装

服务器中安装ftp:
	/*在线安装ftp*/
	ping www.baidu.com			//看看是否联网
	sudo apt-get install vsftpd	//在线安装
	sudo apt-get remove vsftp	//卸载
	/*离线安装ftp*/
	ls /var/cache/apt/archives/			//查看下载文件归档是否有vsftpd
	cp /var/cache/apt/archives/vs* .	//把vsftpd拷贝到当前目录
	sudo dpkg -i vsftpd*.deb			//离线安装

3. ftp服务的启动停止和配置

服务器中ftp:
	sudo service vsftpd start		//ftp服务的启动
	sudo service vsftpd stop		//ftp服务的停止
	sudo service vsftpd status		//查看ftp服务的状态
	sudo vim /etc/vsftpd.conf		//ftp服务的配置
		/*打开上传和下载*/
		local_enable=YES
		write_enable=YES	
	sudo service vsftpd reload		//重新加载配置
	sudo service vsftpd restart		//配置文件后要ftp服务的重启	

4. ssh的命令使用

(ssh 远程安全登录)
ssh是客户端命令
ssh仅提供远程安全登录的本地会话窗口
	例子:iotek用户	test.out为服务器的文件
	sudo apt-get install ssh		//安装ssh
	ssh --version					//查看是否安装了ssh
	ssh 192.168.1.80				//ssh 服务器ip
	whoami							//iotek
	ifconfig						//查看网卡地址
	ls -l							//看到test.out组为其他的
	chown :bancai test.out			//改变test.out组为bancai组
	ls -l test.out					//看到test.out组为bancai组
	exit							//退出ssh
	ifconfig						//查看网卡地址

5. ssh服务的安装

服务器中安装ssh:
sudo apt-get install openssh-server	//在线安装 openssh开源的ssh
sudo dpkg -i openssh-server*.deb	//离线安装ssh
	例子:
	/*在线安装*/
	sudo apt-get install openssh-server	
	/*离线安装*/	
	/var/cache/apt/archives/openssh*		//查看ssh安装包
	cp /var/cache/apt/archives/openssh*.deb .
	sudo dpkg -i openssh-server

6. ssh服务的启动停止和配置

sudo service ssh star					//ssh服务的启动
sudo service ssh stop					//ssh服务的停止
sudo service ssh restart				//ssh服务的重启
 /etc/ssh/sshd_config(或sshd.config)	//ssh服务的配置文件
	例子:
	sudo service ssh status				//查看ssh服务的状态
	sudo service ssh tar
	sudo vim /etc/ssh/sshd_config
	Port 22								//端口号

你可能感兴趣的:(Linux操作系统基础)