一、文件传输
1.1 远程拷贝
1.1.1 将本地文件复制到远程机器
命令:scp local_file remote_username@remote_ip:remote_folder
例:
第一次远程拷贝时,需要在箭头1初输入yes确认一下,验证一下远程主机。然后在箭头2处输入一下远程主机的密码。
1.1.2 将远程机器上的文件复制到本地
命令:scp remote_username@remote_ip:remote_file local_folder
将102虚拟机上root目录下的文件拷贝到本地usr目录下
注意:如果换成是目录则在scp后面添加-r就可以了。
1.2 上传及下载
需先安装好lrzsz : yum install lrzsz -y
安装好后,输入上传的命令rz,弹出一下windows界面,选择一个windows系统里的文件上传至虚拟机的当前目录下
下载命令为sz,sz命令只能下载文件,不能是目录,可先将目录压缩成一个包,再下载至windows系统。下载完之后,按ctrl+c结束。
注:除了可以用rz sz命令进行本地windows系统和虚拟机之间的文件传输,还可以使用XFTP软件。
二、磁盘指令
2.1 查看硬盘信息
命令:df
默认硬盘分区的大小以kb显示
可以在df后面加参数-m mb单位, -k kb单位 , -h 更易于阅读
2.2 查看文件、目录的大小
命令:du 文件名字/目录名字 ,默认单位为kb
-k kb单位
-m mb单位
-a 所有文件和目录
-h 更易于阅读
--max-depth=0 目录深度
查看/etc/profile文件大小
查看/etc目录下,所有文件的大小:du /etc/
查看/etc目录大小,并且目录大小的单位根据实际大小,自动选择。
三、网络指令
3.1 查看网络配置信息
箭头1指向的是本机IP,箭头2为广播地址,箭头3位子网掩码。
3.2 测试与目标主机的连通性
命令:ping remote_ip
输入ping 192.168.87.1代表测试本机和1主机的网络情况,箭头1表示一共接收到了3个包,箭头2表示丢包率为0,表示两者之间的网络顺畅。
注意:linux系统的ping命令会一直发送数据包,进行测试,除非认为的按ctrl + c停止掉,windows系统默认只会发4个包进行测试,以下为windows的dos命令。
3.3 显示各种网络相关信息
命令:netstat
-a (all)显示所有选项,默认不显示LISTEN相关 -t (tcp)仅显示tcp相关选项 -u (udp)仅显示udp相关选项 -n 拒绝显示别名,能显示数字的全部转化成数字。 -l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名 -r 显示路由信息,路由表 -e 显示扩展信息,例如uid等 -s 按各个协议进行统计 -c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
图中1表示的是本机地址,2表示外部地址,如1中的192.168.87.101是该机的ip,连接的端口号为22,3中的192.168.87.1外部机的ip,56545是与本机连接的软件占用的端口号。
2.4 测试远程主机的网络端口
需安装telnet : yum install telnet -y
命令: telnet ip port
上图说明,101远程主机的22端口,我们本机是可以连的上的。
2.5 http请求模拟
命令: curl [option][url]
用法:
-X/--request [GET|POST|PUT|DELETE|…] 使用指定的http method发出 http request
-H/--header 设定request里的header
-i/--include 显示response的header
-d/--data 设定 http parameters
-v/--verbose 输出比较多的信息
-u/--user 使用者账号,密码
-b/--cookie cookie
参数-X跟--request兩个功能是一样的
example:
curl -X GET http://www.baidu.com/
模拟http的get请求,访问www.baidu.com.
三、系统管理
3.1 用户操作
3.1.1 创建用户
3.1.2 删除用户
userdel -r username
3.1.3 修改用户
命令:usermod
注意:usermod不允许你改变正在线上的使用者帐号名称。当usermod用来改变user时,必须确认这名user没在电脑上执行任何程序。
(1)修改用户名
usermod -l new_name old_name
(2)锁定账号
usermod -L username
账号锁定期间,用户输入的命令无论正确与否都提示密码错误,登录不了,即冻结了账号。
(3)解除锁定
usermod -U mytest
(4)查看用户
普通用户可查看/etc/passwd文件,得出系统一个有多少个用户;除此之外,root用户还可以查看/etc/shadow文件,来得出系统一个有多少用户
3.2 用户组操作
3.2.1 创建用户组
命令:groupadd groupname
3.2.2 删除用户组
groupdel groupname
3.2.3 修改用户组
命令:groupmod -n new_name old_name
3.2.4 查看用户组
命令:groups 查看当前登录用户的组内成员
即当前的root用户所属的组为root组。
命令:groups username 查看指定用户所在的组
注意:创建用户时,系统默认会创建一个和用户名字一样的主组。
usermod -G 组名 用户 (或者:groupmems -a 用户 -g 组名) —— 把用户添加到附加组当中
如果想查看一个组下面一共有多少用户,可以通过查看/etc/group文件的内容来得到.
3.3 系统权限
查看/usr 目录下的每个文件或目录的权限
命令: ll /usr
3.3.1 权限类别
Linux中,每个文件或目录都拥有三种权限
权限 对文件的影响 对目录的影响
r(读取) 可读取文件 可列出目录内容
w(写入) 可修改文件内容 可在目录中创建删除文件
x(执行) 可以执行文件 可访问目录内容
3.3.2 UGO模型
Linux权限基于UGO模型进行控制
U代表User, G代表Group, O代表other
每一个文件的权限基于UGO进行设置
权限三个一组(rwx), 对应UGO分别设置
每个文件都有一个拥有者/用户(User), 用户的所属组即(Group), 不属于上面的都是other
(1)修改文件/目录的拥有者
命令:chown username 文件/目录
命令:chown username:groupname 文件/目录
同时修改一个文件或目录的所有者和属组。
如果要递归修改整个目录下的所有者或属组,加参数-R.
如:chown -R mytest:test 目录名字
(2)修改文件/目录的属组
chgrp groupname name
(3)修改文件、目录权限
命令:chmod ugo+rwx name
权限的另外一种修改方式:将rwx rwx rwx 三组权限的读写执行权限分别用0和1代替,1代表有权限,0代表没权限,最后将三组二进制转化成十进制。
命令:chmod 700 myfile
700 rwx --- ---
777 rwx rwx rwx
四、系统配置
4.1 用户组信息配置
/etc/group
4.2 用户信息配置
/etc/shadow和/etc/passwd系统存在的所有用户名
4.3 系统服务初始化配置
0:停机状态
1:单用户模式,root账户进行操作
2:多用户,不能使用net file system,一般很少用
3:完全多用户,一部分启动,一部分不启动,命令行界面
4:未使用、未定义的保留模式
5:图形化,3级别中启动的进程都启动,并且会启动一部分图形界面进程。
6:停止所有进程,卸载文件系统,重新启动(reboot)
这些级别中1、2、4很少用,相对而言0、3、5、6用的会较多。3级别和5级别除了桌面相关的进程外没有什么区别。为了减少资源占用,推荐都用3级别.
注意 :linux默认级别为3,不要把initdefault 设置为0 和 6
4.4 主机名配置
若要修改主机名字,可在/etc/sysconfig/network文件里修改.
vim /etc/sysconfig/network
机器重启才能生效
4.5 DNS配置
hosts文件的作用相当于DNS,提供IP地址hostname的对应,可在这个文件里添加映射。域名解析
vi /etc/hosts
/etc/resolv.conf 为DNS服务器的地址文件
4.6 sudo权限配置
使用Linux系统时,经常会被要求使用超级权限,对于普通用户来说,一个简单的sudo即可解决大部分问题。
编辑sudoers
用 visudo 命令,进行编辑
格式:授权用户 主机=[(切换到哪些用户或用户组)][是否需要密码验证] 命令
接下来mytest用户就可以用yum 和 service 命令了。
注意:在使用命令时,需要加sudo 然后在敲命令,且第一次使用时需要mytest用户密码,接下来每隔15分钟需要一次密码验证。(如:sudo yum install vim -y)
如果不需要密码直接运行命令的,应该加NOPASSWD:参数
sudo -l 列出该用户所有sudo权限。
如果要将权限赋予某一个组,则需要在组名前加%,
4.7 系统时间
4.7.1 查看系统时间
命令:date
4.7.2 更改系统时间
(1)
date -s 2012-08-02只修改系统的日期
date -s 10:08:00 修改时间不修改日期
date -s "2018-01-01 04:53:00" 同时修改日期和时间
缺点:不准确
(2)
需要事先安装ntp服务:yum install ntp -y
命令:ntpdate http://cn.ntp.org.cn
该命令表示为:到域名为http://cn.ntp.org.cn的时间服务器上同步时间。
注:全球的时间服务器有很多个,可以到百度或谷歌上搜,不一定用http://cn.ntp.org.cn的时间服务器。
4.9 环境变量
如图test.sh脚本有三种运行方式:
一种是到脚本的目录下执行:
运行命令 : ./test.sh ,代表执行当前目录里的脚本test.sh
一种是敲脚本的绝对路径:/usr/test/test.sh
第三种是配一个环境变量
编辑: vim /etc/profile 将test.sh所在目录添加到path里就OK,我这里test.sh是在/usr/test目录下。
编辑完之后,执行source /etc/profile命令,重新加载环境变量,此时会发现PATH路径多了一个/usr/test。
最后验证一下,直接执行test.sh
五、重定向与管道
5.1 重定向符号
5.1.1输出重定向
> 输出重定向到一个文件或设备 覆盖原来的文件
>> 输出重定向到一个文件或设备 追加原来的文件
ping http://www.baidu.com > lg.log
5.1.2 输入重定向
< 输入重定向到一个程序
cat < lg.log,将lg.log文件里的内容当作是cat 命令的输入
5.2 标准/错误输出重定向
标准输出重定向
符号“1>”等价于”>”
错误输出重定向
符号“2>”
结合使用
符号“2>&1” ; 例:cat shanghai > lg.log 2>&1
5.3 管道|
命令 “|” 表示把前一个输出当做后一个输入
|和grep命令结合使用: netstat -anpt | grep 25
5.4 命令执行控制
命令:&& 前一个命令执行成功才会执行后一个命令
命令:|| 前一个命令执行失败才会执行后一个命令
5.5 信息黑洞
写入它的内容都会永远丢失,说白了就是不显示任何信息
/dev/null
ls > /dev/null