第三天
复习昨天的内容:
管道:命令 | 命令
重定向:命令 符号 文件名
>
>>
<
2> &>
0 1 2
输入 输出 错误
sdtin stdout stderr
``命令置换符
grep "^字符串$" 指定目录 -R -n
cat 文件名 | cut -d '分隔符' -f 1,3,4
head -10 1.c
tail -10 1.c
cat 1.c | head -10 | tail -1
gzip 1.c 1.c.gz
bzip2 1.c 1.c.bz2
gzip -d 1.c.gz 或者 gunzip 1.c.gz
bzip2 -d 1.c.bz2 bunzip2 1.c.bz2
tar -czvf new.tar.gz new
tar -xzvf new.tar.gz
which whereis都可以查看命令默认的所在位置
今天的内容:
重定向:命令 符号 文件名
>
>>
<
2> &>
0 1 2
输入 输出 错误
sdtin stdout stderr
``命令置换符
grep "^字符串$" 指定目录 -R -n
cat 文件名 | cut -d '分隔符' -f 1,3,4
head -10 1.c
tail -10 1.c
cat 1.c | head -10 | tail -1
gzip 1.c 1.c.gz
bzip2 1.c 1.c.bz2
gzip -d 1.c.gz 或者 gunzip 1.c.gz
bzip2 -d 1.c.bz2 bunzip2 1.c.bz2
tar -czvf new.tar.gz new
tar -xzvf new.tar.gz
which whereis都可以查看命令默认的所在位置
今天的内容:
linux操作系统中有其中一个环境变量叫做PATH,默认存放的是一堆路径,这堆路径存放的都是命令。
PATH=路径 清掉之前存放的所有内容。
PATH=$PATH:路径 在原有内容基础上新增路径
export PATH 将PATH变量变成全局变量(任意路径下都可以直接使用)
ps 用来显示进程相关信息
kill 给进程发送信号。
man 1 命令
man 2 系统调用(函数)
man 3 库调用(c语言中涉及过的函数)
info 查看的是补充信息。
命令 --help 显示的是简易信息。
什么是文件系统(MMU):可以将存储设备上的二进制信息描述为人可以看懂的一些字符,可能给用户提供接口。
文件系统分类:
1、磁盘文件系统
linux:ext2 ext3 ext4 当前12.04使用的是ext4
windows:FAT16 FAT32 NTFS
2、网络文件系统
通过相关的网络协议,将网络中的其他主机下的文件在本地显示并且操作。
3、虚拟文件系统 最重要也最常用——编写驱动时才会发现它很重要。
sda3
sd代表了SCSI类型硬盘 a代表了第一个硬盘 3代表了第三个主分区
linux下的分区:
默认情况下一个磁盘最多可以被分成4个主分区。每个主分区都会有相应的编号从1开始
也可能磁盘被分成了小于4个主分区+不限个数的逻辑分区(逻辑分区编号从5开始)。
查看分区命令:sudo fdisk -l
windows下有c d e f盘。他们的本质其实应该叫做分区。
linux下一些重要文件夹:
/bin /sbin 存放命令
/dev 存放设备文件
/etc 存放配置文件
/lib /usr/lib等有lib出现的目录,就是存放库
/proc 存放进程信息
临时挂载:
mount 命令后面可以接设备文件,也可以接文件系统
sudo mount 设备文件名或者文件系统名 /mnt(被叫做挂载点)
sudo umount 设备文件名或者文件系统名或者接挂载点
卸载时注意:任何路径都可以执行,但是唯独不能在挂载点目录下执行
开机挂载:
sudo vi /etc/fstab
文件系统所在路径 挂载点 文件系统名称 挂载时使用的参数默认是defaults 文件系统备份的时间间隔 fsck检索时间间隔
链接命令:
硬链接:ln 路径/源文件 路径/目标文件
1、修改源文件或者修改硬链接文件,对应文件都会修改
2、删除源文件不影响硬链接文件
3、不能对目录创建硬链接,目录的硬链接个数由它的子目录个数决定
4、不能跨文件系统产生硬链接
5、硬链接文件不占用磁盘空间
软链接(符号链接):
硬链接:ln -s 路径/源文件 路径/目标文件
1、修改源文件或者目标文件,对应也会修改
2、删除源文件,软连接文件失效
3、可以对目录创建软链接
4、软链接文件可以跨文件系统,但是软链接文件必须生成于linux系统中。
5、软链接占用磁盘空间
TFTP:简单文件传输协议
所有的配置文件如果在每行的最前面看见#就是注释(也有例外)
如何配置tftp服务?
1、下载服务器:sudo apt-get install tftpd-hpa
2、配置服务器的配置文件:
sudo vi /etc/default/tftpd-hpa
3 TFTP_USERNAME="tftp" 只是说明我们现在使用的服务叫做tftp
4 TFTP_DIRECTORY="/tftpboot" 指定tftp服务器的具体文件夹,不会自动创建tftpboot文件夹
6 TFTP_ADDRESS="0.0.0.0:69" 0.0.0.0代表本机任意ip 69代表了端口号
7 TFTP_OPTIONS="-l -c -s" 允许上传以及下载
L的小写
3、到根目录下创建tftpboot,将这个文件夹修改为777权限
4、重启tftp服务
方法1:sudo /etc/init.d/tftpd-hpa restart
方法2:sudo service tftpd-hpa restart
选择一种使用就可以。
配置服务器时可能出现的问题:
1、下载失败。ubuntu根本不能上网
2、索引文件陈旧,sudo apt-get update
3、配置文件中写的是/tftpboot 但是实际的tftpboot文件夹创建在了家目录下
4、写成了-l-c-s
5、个别同学注意:可能需要关闭ubuntu的防火墙,sudo ufw disable
如果以上情况还是不能和其他同学互通,只要保证自己和自己能通信就可以。
下载客户端:sudo apt-get install tftp-hpa
tftp 对方的ip地址
tftp> get 1.c 从对方tftpboot中下载1.c到当前目录
tftp> put 2.c 将当前目录下的2.c文件上传到对方的tftpboot目录中
nfs配置:
1、下载nfs服务器:sudo apt-get install nfs-kernel-server
2、sudo vi /etc/exports
在最后一行添加:
/rootfs *(rw,sync,no_subtree_check,no_root_squash)
这个配置文件指定了我们使用的文件夹叫做rootfs,在根目录下。
rw代表读写
sync代表同步
no_subtree_check:不需要检查子目录权限
no_root_squash:不排挤root用户——只能使用root用户
3、在根目录下创建rootfs文件夹
4、重启nfs服务
sudo /etc/init.d/nfs-kernel-server restart
sudo service nfs-kernel-server restart
5、sudo mount -t nfs 对方的ip地址:/rootfs /mnt
挂载了对方的rootfs文件夹到自己的/mnt目录下
-t 用来指定文件系统类型的