常见服务器搭建
ftp
-
1.安装vsftpd服务器
sudo apt-get install vsftpd
-
2.配置vsftpd.conf文件
sudo vi /etc/vsftpd.conf
-
3.重启服务器,重新加载/etc/vsftpd.conf配置文件
sudo /etc/init.d/vsftpd restart
-
4.进入你的/home/zxghost/ftp目录下创建一个空目录,供用户上传
cd ~/ftp
mkdir anonymous
chmod 777 anonymous
-
5.测试上传功能,登陆ftp服务器,进入到anonymous目录
ftp IPcd anonymous
-
6.上传命令,可以把你当前目录下的文件上传到ftp服务器的anonymous目录
put somefile
-
主要指令
- put 上传文件
- mput 上传多个文件
- get 下载文件
- mget 下载多个文件
- mirror 下载整个目录及其子目录
- mirror –R 上传整个目录及其子目录
- !command 调用本地shell执行命令command
nfs
- 1.安装nfs服务器
sudo apt-get install nfs-kernel-server
- 2.设置/etc/exports配置文件
/home/用户名/nfs *(rw,sync,no_root_squash)
sudo vi /etc/exports
- 3.在用户目录下创建nfs目录
mkdir /home/用户名/nfs
- 4.重启服务器,重新加载配置文件
sudo /etc/init.d/nfs-kernel-server restart
- 5.在/home/用户名/nfs目录下创建测试文件hello
cd /home/用户名/nfs
touch hello
- 6.测试服务器,把服务器共享目录nfs挂在到/mnt节点
sudo mount -t nfs -o nolock -o tcp IP:/home/用户名/nfs /mnt
- 7.进入/mnt目录可以看到hello文件,表示构建成功
- 8.卸载网络共享目录
sudo umount /mnt
ssh
- 1.安装ssh服务器
sudo apt-get install openssh-server
- 2.远程登陆
ssh 用户名@IP
网络配置
子网掩码 & IP地址 == 网段
ping *****
ifconfig *****
netstat ***
NAT模式(由真机分配IP)
相当于在主机与网络之间增加路由器,限制从外网的访问
只能由内向外连接网络,不能从外部访问内部
IP设置:自动获取,相当于由路由器分配IP
- 点击虚拟机的“编辑”选项,选择“虚拟网络编辑器”,添加网络,选择’NAT’模式
- 点击虚拟机的“虚拟机”选项,点击“设置”选项,选择“网络适配器”,网络连接选择“自定义”选项,选择之前添加的网络
- 在Ubuntu中点击网络选项,选择“edit connections”
- 在Wired中,点击已有连接,点击Edit,在IPv4 Settings中Method,选择“Automatic(DHCP)”
桥接模式(由路由器分配IP,与真机不同)
相当于另一台独立主机,与现有主机是分开的
从内向外或者从外向内访问都可以
IP设置:需要手动设置
- 点击虚拟机的“编辑”选项,选择“虚拟网络编辑器”,添加网络,选择桥接模式,"桥接到"选择Realtek PCIe GBE Family Controller
- 点击虚拟机的“虚拟机”选项,点击“设置”选项,选择“网络适配器”,网络连接选择“自定义”选项,选择之前qia桥接的网络
- 在Ubuntu中点击网络选项,选择“edit connections”
- (1)在Wired中,点击已有连接,点击Edit,在IPv4 Settings中Method,选择“Manual”,手动配置ip
(2)复制Device MAC address:00:0C:29:EC:31:EF (eth0)到Cloned MAC address:修改为00:0C:29:EC:31:11(随意修改),选择保存
MAC(Media Access Control或者Medium Access Control)
地址,意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。
关机重启
poweroff
poweroff //关闭系统
reboot
reboot //重启
shutdown
shutdown -t 秒数 [-rkhncfF] 时间 [警告讯息]
options
- -t 秒数 : 设定在切换至不同的runlevel之前, 警告和删除二讯号之间的延迟时间(秒).
- -k : 仅送出警告讯息文字, 但不是真的要 shutdown.
- -r : shutdown 之後重新开机.
- -h : shutdown 之後关机.
- -n : 不经过 init , 由 shutdown 指令本身来做关机动作.(不建议你用)
- -f : 重新开机时, 跳过 fsck 指令, 不检查档案系统.
- -F : 重新开机时, 强迫做 fsck 检查.
- -c : 将已经正在 shutdown 的动作取消
进程管理
who
who
- 查看当前在线上的用户情况。
- 不使用任何选项时,who命令将显示以下三项内容:
- login name:登录用户名;
- terminal line:使用终端设备;
- login time:登录到系统的时间。
ps
ps [options]
USER 用户名
UID 用户ID(User ID)
PID 进程ID(Process ID)
PPID 父进程的进程ID(Parent Process id)
SID 会话ID(Session id)
%CPU 进程的cpu占用率
%MEM 进程的内存占用率
VSZ 进程所使用的虚存的大小(Virtual Size)
RSS 进程使用的驻留集大小或者是实际内存的大小,Kbytes字节。
TTY 与进程关联的终端(tty)
STAT 进程的状态:进程状态使用字符表示的(STAT的状态码)
R 运行 Runnable (on run queue) 正在运行或在运行队列中等待。
S 睡眠 Sleeping 休眠中, 受阻, 在等待某个条件的形成或接受到信号。
I 空闲 Idle
Z 僵死 Zombie(a defunct process) 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放。
D 不可中断 Uninterruptible sleep (ususally IO) 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。
T 停止 Terminate 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。
P 等待交换页
W 无驻留页 has no resident pages 没有足够的记忆体分页可分配。
X 死掉的进程
< 高优先级进程 高优先序的进程
N 低优先 级进程 低优先序的进程
L 内存锁页 Lock 有记忆体分页分配并缩在记忆体内
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)
- 位于后台的进程组
START 进程启动时间和日期
TIME 进程使用的总cpu时间
COMMAND 正在执行的命令行命令
NI 优先级(Nice)
PRI 进程优先级编号(Priority)
WCHAN 进程正在睡眠的内核函数名称;该函数的名称是/root/system.map文件中获得的。
FLAGS 与进程相关的数字标识
options
- -e: 显示所有进程。
- -f: 全格式。
- -u: 显示面向用户的格式
- -h: 不显示标题。
- -l: 长格式。
- -w: 宽输出。
- -a: 显示终端上的所有进程,包括其他用户的进程。
- -r: 只显示正在运行的进程。
- -x: 显示没有控制终端的进程
jobs
jobs
- 用来显示当前shell 下正在运行哪些作业(即后台作业)
- [2]+ Stopped cat
第一列方括号中的数字表示作业序号,它是由当前运行的shell 分配的,而不是由操作系统统一分配的
第二列中的“+”号表示相应作业的优先级比“-”号对应作业的优先级高。
第三列表明作业状态,是否为运行、中断、等待输入或停止等。最后列出的是创建当前这个作业所对应的命令行。
fg
fg [job…]
把指定的后台作业或挂起作业移到前台运行。
参数job是一个或多个进程的PID,或者是命令名称,或者是作业号(作业号前面要带一个%号)
bg
bg [job…]
把被挂起的进程提到后台执行。 其中,job是一个或多个进程的PID、命令名称或者作业号,在参数前要带%号。
env
env
-
查看当前进程环境变量
-
vim ∼/.bashrc
- 配置当前用户环境变量
-
vim /etc/profile
- 配置系统环境变量,配置时需要有root权限
ln
ln -s 产生符号链接
若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。因此软链接的创建与使用没有类似硬链接的诸多限制:
软链接有自己的文件属性及权限等;
可对不存在的文件或目录创建软链接;
软链接可交叉文件系统;
软链接可对文件或目录创建;
创建软链接时,链接计数 i_nlink 不会增加;
删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。
ln 产生硬链接
硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:
文件有相同的 inode 及 data block;
只能对已存在的文件进行创建;
不能交叉文件系统进行硬链接的创建;
不能对目录进行创建,只可对文件创建;
删除一个硬链接文件并不影响其他有相同 inode 号的文件。
tree
tree
- Ubuntu下安装 sudo apt-get install tree
- 按结构树的形状显示目录和文件
wc
wc
- 用来计算文件的字节数、字数、行数
若不指定文件名称或文件名为’-',表示从标准输入设备读取数据 - -c/-bytes/-chars 显示字节数
- -l/-lines 只显示列数
- -w/-words 只显示字数
od
od [-A 地址进制] [-t 显示格式] 文件名
od(octal dump)命令可以以八进制、十进制、十六进制和ASCII码的格式来显示文件或者流,它们对于访问或可视地检查文件中不能直接显示在终端上的字符(如换行符等)很有用。此外,在一些有空洞的文件中可以通过od命令查看空洞的位置。
options
- -默认地址 8进制
- -A ( 地址进制)按指定的进制显示地址信息;
- -o:八进制(系统默认值)
- -d:十进制
- -x:十六进制
- -n:不打印位移值
- -t 指定数据显示的格式。
- -c:ASCII字符或反斜杠序列(如\n)
- -d:有符号十进制数
- -f:浮点数
- -o:八进制(系统默认值)
- -u:无符号十进制数
- -x:十六进制数
软件安装
apt-get
- sudo vi /etc/apt/sources.list
更新源服务器列表 - 相关命令
- sudo apt-get update 更新源
- sudo apt-get install package 安装包
- sudo apt-get remove package 删除包
- sudo apt-cache search package 搜索软件包
- sudo apt-cache show package 获取包的相关信息,如说明、大小、版本等
- sudo apt-get install package --reinstall 重新安装包
- sudo apt-get -f install 修复安装
- sudo apt-get remove package --purge 删除包,包括配置文件等
- sudo apt-get build-dep package 安装相关的编译环境
- sudo apt-get upgrade 更新已安装的包
- sudo apt-get dist-upgrade 升级系统
- sudo apt-cache depends package 了解使用该包依赖那些包
- sudo apt-cache rdepends package 查看该包被哪些包依赖
- sudo apt-get source package 下载该包的源代码
- sudo apt-get clean && sudo apt-get autoclean 清理无用的包
- sudo apt-get check 检查是否有损坏的依赖
deb包安装
- 安装deb软件包命令: sudo dpkg -i xxx.deb
- 删除软件包命令: sudo dpkg -r xxx.deb
- 连同配置文件一起删除命令: sudo dpkg -r --purge xxx.deb
- 查看软件包信息命令: sudo dpkg -info xxx.deb
- 查看文件拷贝详情命令: sudo dpkg -L xxx.deb
- 查看系统中已安装软件包信息命令: sudo dpkg -l
- 重新配置软件包命令: sudo dpkg-reconfigure xxx
源码安装
- 解压缩源代码包
- cd dir //dir 源码包目录
- ./configure
检测文件是否缺失,创建Makefile,检测编译环境 - make
编译源码,生成库和可执行程序 - sudo make install
把库和可执行程序,安装到系统路径下
学习笔记持续更新,公众号记录: