压缩包管理
原始压缩工具
-
gizp -gz格式的压缩包
- 压缩语法:
gizp *.txt
(压缩所有txt为后缀为gz的压缩文件,不会保留源文件,单独压缩不会打包) - 解压语法:
gunzip *.gz
- 压缩出 .gz格式
- 每个文件各个压缩,多个压缩包
- 压缩语法:
-
bzip2-bz2格式的压缩包
- 压缩语法:
bzip2 *.txt
(压缩所有txt为后缀为gz的压缩文件,不会保留源文件,单独压缩不会打包) - 解压语法:
bzip2 *.bz2
- 不能压缩目录
- 压缩语法:
-
压缩后也是多个包,bz2格式
- 强于gzip ,借助参数 -k ,可以保留源文件地去压缩
-
两种命令都无法压缩文件夹/目录:如执行:
gzip animal/
会失败(当前在含有animal文件夹的目录下)
高富帅版
tar — 不使用z/j参数,该命令只能对文件或目录打包
-
参数:
- c – 创建 – 压缩(与x对立,每次只能用一个)
- x – 释放 --解压缩(extract,与c对立,每次只能用一个)
- v – 显示提示信息 --压缩/解压缩都能用 --可以省略
- f – 指定压缩文件名字 – 压缩解压缩必需(file)
- z – 使用gzip地方式压缩文件 后缀是 .gz
- j – 使用bzip2的方式压缩文件 后缀是 .bzip2
-
vf参数一般都带
-
压缩:
tar zcvf 生成的压缩包的名字(xxx.tar.gz) 所有要压缩的文件或目录的名字(如果有多个,中间空格间隔)
tar jcvf 生成的压缩包的名字(xxx.tar.bz2) 所有要压缩的文件或目录的名字(如果有多个,中间空格间隔)
- 解压缩:
tar zxvf 压缩包的名字(对tar.gz压缩文件解压到当前目录)
tar jxvf 压缩包的名字(对tar.bz2压缩文件解压到当前目录)
tar zxvf 压缩包的名字 **-C** 解 压缩的目录名字 (用于解压到指定目录)
rar – 必须安装该软件才能用
-
参数:
压缩: a
解压缩: x 释放
-
压缩:
rar a 生成的压缩文件的名字(temp) 压缩的文件或目录
- 解压缩:
rar x 解压缩文件名(temp) +(解压缩目录)
zip – 安装得到,能提示文件的压缩比
-
压缩
zip 压缩包的名字 压缩的文件或目录
- -r 压缩目录(递归操作)
rar x mytest.rar +路径
-
解压缩
unzip 压缩包的名字
- deflated指示没有被压缩的比率
unzip 压缩包的名字 -d 指定的目录
总结
相同的语法:
压缩:tar/rar/zip 参数 生成的压缩文件的名字 压缩的文件或目录 -- 压缩时的语法
解压缩:tar/rar/unzip/ 参数 压缩包的名字 参数(rar没有参数) 解压缩目录 --解压缩语法
进程管理
who
- 查看当前在线用户的情况
- 用户名字 终端名字 时间
- 终端名字:tty7 对于linux操作系统的桌面终端,tty1-6是文字终端,tty7是图形界面终端 。文字终端通过黑窗口方式实现用户登录。pts是设备终端,也即黑窗口的个数。/后是编号,不会重复。
- 切换终端方式为
ctrl + alt +f1-f7
- 各个终端互不影响
- 用户名字 终端名字 时间
- 查看进程的命令(ps):
ps a 查看所有的用户
- 包括tty1-tty7,因为每个终端下都能登录一个用户
ps au
在a的基础上,详细查看所有用户- user pid(当前程序对应的进程id) %cpu %mem tty(指示终端情况)
ps aux
查看没有终端的应用程序 此时tty值是个问号,不需要与用户交互- 借助管道进行重定向,对文件过滤。
- 管道的含义:语法:
指令1 | 指令2
,表示指令1的输出作为指令2的输入 ps aux | grep bash
,最后一条进程是grep的查询进程,不是结果,也即,如果grep查出一条结果,实际是没有查到
kill (杀死进程)
- 杀死进程
kill -l 查看信号总目录
,相当于help,不同信号不同作用。kill -SIGKILL 进程ID(pid)
(通过ps aux |grep 查询名字 过滤出来所得到的 )kill -9(指向SIGKILL)
也即 kill -9=kill -SIGKILL
env(环境变量查看)
env
查看当前进程的所有的环境变量- 只索引path,借助管道:
env | grep PATH
- 补充: linux 下的环境变量的格式(键值对形式):key - value
- key=value,相互之间靠:间隔
- 只索引path,借助管道:
top(资源查看)
- 相当于windows下资源管理器,按ctrl+c查看,但是无法关闭,只能看
网络管理
ifconfig
(查看网络接口信息)
- eth0代表第一块网卡,如果有第二块,则是eth1
- 硬件地址,也即硬件地址,也即网卡编号
- lo代表回环地址,做的事本地回环
- 对应于windows下的ipconfig命令
ping
(测试两台主机间能否通信)
- linux 下会一直ping(ctrl +c退出)
ping 目的主机 [参数]
- 参数 -c (c表示count,后面跟上期望ping的次数,)
- 参数 -i 设定间隔几秒发一个ping包
nslookup
(查看服务器域名对应的ip地址)
nslookup www.xxx.com
用户管理
创建用户的两种方式
-
sudo adduser + 用户名
实际是一个脚本,参数少(用户名不能大写)- 执行该命令需要当前用户密码,且提示正在添加用户,正在添加新组(默认和用户名字是一致的),正在添加新用户到组,创建主目录/home/xxx,正在从/etc/skel复制文件(修改配置文件),输入新的unix密码,也即xxx登录进去的密码。之后提示输入用户的信息,全名,房间号码,工作电话,家庭电话,其他。
su xxx
切换到xxx用户
-
sudo useradd -s /bin/bash -g itcast -d /home/itcast -m itcast
- -s 指定用户登陆时shell类型,bash或者是shell
- -g 指定所属组,该组必须事先存在(先添加组)
- -d 指定用户家目录
- -m 用户家目录不存在时,自动创建该目录
- 没有提示则说明创建成功
添加用户组
sudo groupadd xxx
增加新的用户组
密码修改
sudo passwd xxx
修改用户xxx的密码passwd 修改当前用户密码
(需要输入当前用户密码)sudo passwd (root)
修改 root 用户的密码
切换用户
- 切换到固定用户
su 用户名
- 切换到root用户
su -
su
sudo su
删除用户
sudo deluser + 用户名
(家目录不会被删除)sudo userdel **-r** 用户名
(-r表示遍历,会把家目录下文件夹同样删掉)
查看当前操作系统下用户
- 进入配置文件目录:
/etc
vi /etc/passwd
检测是否插入成功
ftp服务器搭建
借助软件 vsfptd 注意软件库要更新apt-get update&& apt-get upgrade
ftp最用:文件的上传与下载(作为一个服务器,可以被客户远程取用)
服务器端
修改配置文件
-
如何修改配置文件-> vsftpd.conf
-
cd /etc
进入配置文件目录,ls - l vsftpd.conf
找到配置文件gedit vsftpd.conf
,sudo vi vsftpd.conf
-
修改配置文件(vsftpd):
- write_enable=YES ->是否拥有写权限
- anon_root=/home/itcast/ftp ->匿名用户ftp根目录(要手动添加)
- anonymous_enable=YES ->是否允许使用匿名用户
- anonymous_upload_enable=YES ->是否允许匿名用户的上传权限
- anon_mkdir_write_enable=YES ->是否允许匿名用户创建目录
-
借助readme修改需要修改的权限
-
重启服务
- 什么命令能够重启服务
sudo service vsftpd restart
-
创建新用户并设置密码:
sudo useradd -d /home/xxxx/ -s /bin/bash xxxx
sudo passwd xxxx
(设置xxxx用户的密码)Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
-
修改配置文件vsftp.conf:userlist_file=/etc/allowed_users #允许登录的用户
-
新建/etc/allowed_users,添加允许访问的用户,我们在文件中添加我们刚才创建的用户
vim /etc/allowed_users
键入:xxxx -
查看文件/etc/ftpusers,文件中的列表是禁止访问用户
复制代码 -
参看文件,文件中的列表是禁止访问的用户:
-
sudo vim /etc/ftpusers
/etc/ftpusers: list of users disallowed FTP access. See ftpusers(5).
root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
nobody -
重启vsftpd:
sudo /etc/init.d/vsftpd restart
-
ftp ip-address
输入用户名和密码put
#上传文件local-file: path
remote-file: path
get
#下载文件local-file: path
remote-file: path
客户端
找另一台win10性质的主机,借用mstsc命令远程访问
实名用户登录
ftp + IP(server)
- 输入用户名和密码
- 此处ls,可以看到服务器家目录的文件,pwd可以看到服务器的家目录的具体路径
- 退出ftp可以用:
bye,quit,exit
- 文件的上传和下载
- 文件上传:
put 本地的文件名
(要在登录ftp服务器的目录下上传该目录下的文件) - 文件下载:
get 文件名
- 不允许操作目录,把目录打包tar/rar/bzip
- 文件上传:
- 弊端,暴露了账号密码,且能切换目录
匿名用户登录(更多使用)
ftp + IP(server)
用户名:anonymous 密码:直接回车
- 不允许匿名用户在任意目录间切换
- 只能在一定的目录范围内操作
- 需要在ftp服务器上创建一个匿名用户的目录 – 匿名用户的根目录(限制了登录用户的权限)
- 创建一个目录后,还要在配置文件里设置,找位置添加一句话:
anno_root=home/xxx(服务器名字)/yyy(自己设置的匿名用户的文件名)
,然后service vsftpd restart
- 下载是个读权限:
chmod 777
,上传是个写权限
- 创建一个目录后,还要在配置文件里设置,找位置添加一句话:
- 匿名用户root创建
- 指定匿名根目录:/home/xxx/ftp,并在配置文件里增加:anon_root=home/xxx/ftp ->匿名用户ftp根目录
- 默认目录:/src/ftp
- 退出服务器操作:
- bye
- quite
- exit
lftp客户端访问ftp服务器
-
一个ftp客户端软件,可以上传和下载,功能强大,可以下载/上传一个及多个文件,一个目录。该工具能够访问ftp服务器,进而对服务器操作设置
-
软件安装
sudo apt-get install lftp
-
登录服务器
- 匿名:lftp servetip 回车 ,**键入login,**lftp 连接的IP 回车(不输入密码),进入到了匿名用户的根目录。。
-
使用pwd得到的是远程登录到的服务器的目录
-
lpwd命令,查看当前用户的目录。
- lcd + 目录,切换本地目录。
- put 上传一个文件。mput 上传多个文件。
- get 下载文件,mget下载多个文件 mget xxx yyy zzz (xxx,yyy,zzz都是文件名)
mirror dir
上传整个目录及其子目录mirror -R dir
下载整个目录及其子目录
-
实名:
lftp username@服务器ip
回车 ,输入服务器密码
nfs服务器搭建
网络文件系统,允许网络中计算机之间通过TCP/IP网络共享资源,创建类似windows下类似的所谓的共享文件夹,本质是挂载服务器的共享目录。
安装:sudo apt-get install nfs-kernel-server
服务器端
- 创建共享目录
sudo makedir xxx
- 为了方便文件的上传与下载,修改文件的读写权限:
sudo chmod 777 /home/xxxx
- 修改配置文件
sudo vi /etc/exports
- /home/userid/shareid *(ro,sync)//代表共享的网段。ro代表read only,rw表示可读可写,sync代表随时把内存数据更新到磁盘上。
- 修改结束后重启服务:
sudo service kernel-nfs-server restart
- 重启服务
sudo service nfs-kernel-server restart
- 服务器安装成功后会随系统自动启动
客户端(登录到nfs服务器)
- 挂载服务器共享目录(mount命令挂载)
sudo mount serverIP: sharedir (/home/用户名/nfs)/mnt(服务器IP跟上共享目录,挂载到非空会临时覆盖文件)
- tree /mnt 有内容
- cd /mnt ,ls查看内容
- 可以尝试挂载本地的服务器
SSH服务器
服务器端(仅安装即可)
- 安装
ssh:sudo apt-get install openssh-server
客户端
- 如何登陆
- 远程登录
ssh username@serverIP
//确认连接时一定要写yes/no,而非y/n- 例如服务器管理员通过ssh远程登录外地主机,进行维护
- 输入完密码就进入到了shareid。
- 退出登录
logout
scp命令
scp==super copy,直接从远程服务器拷贝文件或目录,不需要搭建ftp。
- 使用命令的前提条件:目标主机已成功安装openssh-server
- 使用格式:
- scp -r 目标主机用户名@目标主机IP地址:/目标文件的绝对路径/保存到主机的(相对)路径:scp -r ( -r 拷贝目录必选参数)
- scp -目标用户名@目标主机IP地址: /目标文件的绝对路径/保存到主机的(相对)路径
其他命令
- 终端翻页
shift + pageup/pagedown
上下翻页
- 清屏
clear / ctrl+l
- 创建终端
ctrl + alt +T (ubuntu)
ctrl + shift + T(添加新标签页)
- 看手册
- 查看man文档(帮助文档)
- 命令 man man [参数 ]
- 1 查找普通命令
- 2 系统调用
- 3 库调用
- 5 文件格式和规范
- 按q键退出
- 设置命令是否被封装以及如何被封装
- 查看 alias 比如
alias ls 'ls --color=auto' ls
实际上被封装为展示颜色的ls - 设置(打造)
alias pag='ps aux| grep'
- 查看 alias 比如
- echo 输出一个字符串到终端上
echo $PATH
($ 表示从后边的变量里去取值(value),$PATH表示取出key为PATH的value值)
- 关机重启:
poweroff
reboot
shutdown
(都需要sudo)- 参数
- -t 秒数
- -k 仅送出警告信息,并不是真的要shutdown
- -r shutdown 之后重新开机
- -h shutdown 之后关机
- -n 不经过init,有shutdown指令本身来做关机动作(不建议使用)
- -f 重新开机时,跳过fsck指令,不检查档案系统
- -F 重新开机时,强迫做fsck检查
- -c 将已经正在shutdown的动作取消
- 例子
shutdown -r now
立即重新开机shutdown -h now
立刻关机shutdown -k now' Hey! Go away! now ...'
发出警告信息,但没有真正关机shutdown -h 10:42 'Hey! Go away! '
10:42 关机shutdown -r 10’Hey! Go away!'
10分钟后关机shutdown -c
将刚才下的shutdown 指令取消(cancel),必须切换到其他tty,登入之后,才能下命令shutdown now
切换至单人操作模式(不加任何选项时)
- 参数