centos7 基础命令

一: linux基础

(1) 查看服务器的IP信息

ip add show
ifconfig

(2) 操作网卡命令(重启网络和启用网卡)

systemctl restart network
systemctl start network
systemctl stop network

启用和停止网卡命令

ifup 网卡名
例:
ifup ens33 # 启用网卡
ifdown ens33 # 停止网卡

 

(3) 远程连接服务器

注意: 因为我的讲师机的虚拟机是桥接模式,跟大家在同一个局域网,所以谁都可以连接

但是,不要干坏事儿

第一种方式: 使用第三方软件,我们教学就使用xshell进行连接就可以

第二种方式: 使用命令进行连接

ssh root@192.168.12.56

三. linux目录结构

              根目录   /

/root    /bin  /dev  /etc  /home   /var  /lib  /usr  /media  /tmp  。。。。

 |                           |

/root/desktop   /root/Media  。。。          /usr/bin  /usr/lib   。。。。

 

(1) 查看服务器的IP信息

ip add show
ifconfig

(2) 操作网卡命令(重启网络和启用网卡)

systemctl restart network
systemctl start network
systemctl stop network

启用和停止网卡命令

ifup 网卡名
例:
ifup ens33 # 启用网卡
ifdown ens33 # 停止网卡

 

(3) 远程连接服务器

注意: 因为我的讲师机的虚拟机是桥接模式,跟大家在同一个局域网,所以谁都可以连接

但是,不要干坏事儿

第一种方式: 使用第三方软件,我们教学就使用xshell进行连接就可以

第二种方式: 使用命令进行连接

ssh root@192.168.12.56

三. 目录相关操作

.    当前目录
..   上一层目录
-   前一个工作目录
~   当前【用户】所在的家目录

蓝色的文件: 都是目录

白色的文件: 都是普通文件

绿色的 文件: 都是可执行文件

 

四. linux基本操作命令

增删改查的高大上叫法 : CURD

#  创建目录(文件夹)
mkdir liulaoshi
mkdir chenwen
mkdir chengang
mkdir zhangqihang
# 创建普通文件
touch huangchun
touch xiaowei

remove > 因为太长,所以改为rm
rm或rm -i # 删除文件命令
rm -r # 递归删除目录和文件命令
rm -rf # 递归并且强制删除目录和文件命令
rmdir # 删除一个空目录

注意: rm -rf /*是炸弹命令,千万不要使用

注意: rm -rf /*是炸弹命令,千万不要使用

注意: rm -rf /*是炸弹命令,千万不要使用

cd # 切换目录命令

mv # 移动文件命令
mv 源文件 目标文件   # 对文件重命名

ls   # 查看当前目录下的文件夹和文件
ls -l或ll # 查看当前目录下的文件夹和文件详情
ls -la # 查看当前目录下的文件夹和文件详情, 还可以查看隐藏文件
pwd # 查看当前所在的目录的绝对路径

重启或关机命令

init 6  # 重启
init 0 # 关机

linux下查看环境变量

echo $PATH

绝对路径和相对路径

  • 绝对路径:由根目录(/)为开始写起的文件名或者目录名称,如/home/oldboy/test.py;

  • 相对路径:相对于目前路径的文件名写法。例如./home/oldboy/exam.py或../../home/oldboy/exam.py,简单来说只要开头不是/,就是属于相对路径

 

二: linux基本命令

(1) 创建用户命令

useradd liulaoshi   # 创建用户
passwd liulaoshi   # 设置密码, 回车后会提示让你输入两次密码

普通用户登录的命令提示符与root用户不一样

(2) 修改命令提示符

echo $PS1  # 查看命令提示符参数
PS1="[\u@\h \w \t]\$"  
  \w 显示完整工作路径
  \t 显示时间

(3) 修改主机名

hostnamectl set-hostname qishitwo

(4) linux系统命令提示符

命令     参数    需处理的内容

(5) 创建目录命令

mkdir -p liulaoshi/chenwen/liujie/xiaowei  # 递归创建目录
mkdir -p {qihang,chenwen,yanglan,xiaowei} # 创建多个目录

touch liulaoshi.py qihang.py yanglan.py xiaowei.py
# 创建多个普通文件命令, 文件之间用空格隔开

 

(6) VIM操作初识

命令模式常用操作:
:set nu 显示行号
1G 或 gg ,跳转到文件的首行
G ,跳转到文件的末尾行
yy、#yy ,复制光标处的一行、#行
p、P ,粘贴到光标处之后、之前
x 或 Delete键 ,删除光标处的单个字符
dd、#dd ,删除光标处的一行、#行
d^、d$ ,从光标处之前删除至行首/行尾
/word 向后查找字符串“word”,再按n/N跳至后/前一个结果
u ,撤销最近的一次操作
U ,撤销对当前行的所有修改
Ctrl + r 取消前一次撤销操作
ZZ 保存修改并退出
末行模式常用操作:
:s/old/new ,替换当前行第一个“old”
:s/old/new/g ,替换当前行所有的“old”
:n,m s/old/new/g ,替换第n-m行所有的“old”
:% s/old/new/g ,替换文件内所有的“old”
:w /root/newfile ,另存为其它文件
:r /etc/filesystems ,读入其他文件内容
:set nu|nonu ,显示/不显示行号
:set ai|noai ,启用/关闭自动缩进

(7) 修改网卡配置文件,使系统重启之后不用再手动启动网卡

vim /etc/sysconfig/network-scripts/ifcfg-ens33

改完之后,下一次你重启系统之后,就不用再使用ifup ens33命令手动启用网卡了

(8) 查看普通文件内容

cat 文件名   # 可以用绝对路径,也可以用相对路径

(9) 特殊符号

输入/输出
>>  追加重定向
>     重定向 会清空源文件
<      输入重定项
<<     将输入结果输入重定向

(10) more和less命令

more /etc/passwd  # 分页查看文件, 比cat命令好用
less /etc/passwd # 同more 比more功能更多

(11) linux快捷键

1.tab键    用于自动补全命令/文件名/目录名
2.ctrl + l  清理终端显示
3.clear/cls 清理终端显示
4.ctrl + c 终止当前操作

(12) echo命令

echo "山外青山楼外青楼" > passwd   # 单个>符号表示覆盖
echo "能人背后有人弄" >> passwd # 两个>符号表示追加

(13) 复制命令

cp 参数 源文件 目标文件
-r 递归,复制目录以及目录的子孙后代
-p 复制文件,同时保持文件属性不变
-a 相当于-pdr, 类似与Windows系统的复制快捷方式

(14) 移动和重命名命令mv

mv 源文件 目标文件
# 不仅有移动的功能,还有重命令名的功能

(15) 删除命令

rm 参数 文件名
  -i 需要删除确认
   -f 强制删除
  -r 递归删除目录和内容

(16)查找命令

find 需要查找的目录
-name # 指定文件的名字
-type # 指定文件类型

(17) 别名alias命令

alias #查看系统存在的别名
alias rm="echo '此命令太危险了,请你不要再使用'"
# 给rm命令别名成为echo '此命令太危险了,请你不要再使用'
# 当用户再输入rm命令时,就会执行这个命令:
echo '此命令太危险了,请你不要再使用'
unalias rm # 取消别名

(18) 查看系统运行的进程

ps -ef

(19) 查看系统已开放的端口

netstat -tunlp

(19) 管道命令

ps -ef | grep liulaoshi  # 查看系统中与liulaoshi相关的进程

(20) grep命令

grep nologin /etc/passwd  # 过滤出/etc/passwd下面所有含有noloing的信息
grep root /etc/passwd # 过滤出/etc/passwd下面root信息

语法:
grep [参数] [--color=auto] [字符串] filename
参数详解:
-i : 忽略大小写
-n : 输出行号
-v : 反向选择
--color = auto : 给关键词部分添加颜色

(21) linux下面的IP地址信息(重要指数*)

127.0.0.1  # 本机地址, 别人无法访问,只有本机才可以访问
192.168.12.56 # 本机IP地址,别人可以访问
localhost # 本机主机名
0.0.0.0   # 本机环回地址, 相当于127.0.0.1加上192.168.12.56

(22) head和tail命令(重要指数***)

head显示文件前几行,默认前10行
tail显示文件后几行,默认后10行
想要显示/etc/passwd下面的第10行到第20行, 可以使用管道符进行二次过滤
head -20 /etc/passwd | tail -1

(23) which 命令(重要指数*)

which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。 which指令会在环境变量$PATH设置的目录里查找符合条件的文件。 也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

which pwd
which python

(24) scp命令(重要指数*)

语法
scp 【可选参数】 本地源文件 远程文件标记
  -r :递归复制整个目录
  -v:详细方式输出
  -q:不显示传输进度条
  -C:允许压缩
scp liulaoshi.py root@192.168.12.77:/opt/  
# 将本地的liulaoshi.py拷贝到远程服务器192.168.12.77的/opt目录下
scp root@192.168.12.77:/opt/liulaoshi.py /root/
# 将远程服务器192.168.12.77的/opt目录下liulaoshi.py拷贝到本地/root目录下
scp -r /opt/liulaoshi root@192.168.12.77:/opt # 递归拷贝目录

(25) 查看磁盘占用率命令

df -h
du -sh 文件或目录名 # 统计文件或目录的大小,以K,M,G为单位人性化显示

(26) top命令

top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]

监控java线程数:
ps -eLf | grep java | wc -l

监控网络客户连接数:
netstat -n | grep tcp | grep 侦听端口 | wc -l

(27) chattr命令

chattr +a huangxiaowei.py  # 给文件加锁
chattr -a huangxiaowei.py  # 给文件解锁
lsattr huangxiaowei.py  # 查看文件详细加锁信息

(28) linux时间服务器 (重要指数***)

date  查看系统当前时间
ntpdate -u ntp.aliyun.com   # 从阿里云的NTP服务器更新系统的时间

 

硬件时钟的查看
hwclock

//以系统时间为基准,修改硬件时间
hwclock -w

//以硬件时间为基准,修改系统时间
hwclock -s
date 041215002019 # 修改系统时间

(29)wget 下载命令

wget 链接

(30) lrzsz软件包

yum install lrzsz
rz   # 上传
sz 文件名   # 下载指定文件

(31) 关机和重启命令

reboot或init 6命令用于重启机器
poweroff或init 0用于关闭系统

(32)rsync 同步工具

本地同步操作:
rsync [选项...] 本地目录1 本地目录2
rsync [选项...] 本地目录1/ 本地目录2
rsync同步工具的常用选项:
-n:测试同步过程,不做实际修改
--delete:删除目标文件夹内多余的文档
-a:归档模式,相当于-rlptgoD
-v:显示详细操作信息
-z:传输过程中启用压缩/解压
1)将目录 /boot 同步到目录 /todir 下
[root@svr7 ~]# ls  -l  /todir                  //同步前
ls: 无法访问/todir: 没有那个文件或目录
[root@svr7 ~]# rsync  -a  /boot  /todir          //将目录1作为目录2的子目录
[root@svr7 ~]# ls  -l  /todir                  //检查同步结果
总用量 4
dr-xr-xr-x. 4 root root 4096 11月 30 18:50 boot

2)将目录 /boot 下的文档同步到目录 /todir 下
[root@svr7 ~]# rm  -rf  /todir                  //清理掉目录2
[root@svr7 ~]# rsync  -a  /boot/  /todir          //将目录1下的文档同步到目录2下
[root@svr7 ~]# ls  -l  /todir                  //检查同步结果
总用量 126708
-rw-r--r--. 1 root root   126426 10月 30 2015 config-3.10.0-327.el7.x86_64
drwxr-xr-x. 2 root root     4096 11月 30 18:50 extlinux
drwx------. 6 root root      104 12月  9 09:58 grub2

3)同步效果测试
在目录/boot下新增文件a.txt,删除/todir下的子目录 grub2:
[root@svr7 ~]# touch  /boot/a.txt
[root@svr7 ~]# rm  -rf  /todir/grub2/ 
现在目录/boot和/todir目录下的内容已经不一致了:
[root@svr7 ~]# ls  -ld  /boot/a.txt  /todir/a.txt
ls: 无法访问/todir/a.txt: 没有那个文件或目录
-rw-r--r--. 1 root root 0 1月  11 21:09 /boot/a.txt
[root@svr7 ~]# ls  -ld  /boot/grub2  /todir/grub2
ls: 无法访问/todir/grub2: 没有那个文件或目录
drwx------. 6 root root 104 12月  9 09:58 /boot/grub2
再次同步使/todir与/boot一致:
[root@svr7 ~]# rsync  -a  /boot/  /todir/
确认同步结果:
[root@svr7 ~]# ls  -ld  /boot/a.txt  /todir/a.txt
-rw-r--r--. 1 root root 0 1月  11 21:09 /boot/a.txt
-rw-r--r--. 1 root root 0 1月  11 21:09 /todir/a.txt
[root@svr7 ~]# ls  -ld  /boot/grub2  /todir/grub2
drwx------. 6 root root 104 12月  9 09:58 /boot/grub2
drwx------. 6 root root 104 12月  9 09:58 /todir/grub2
步骤二:验证 -a、-v、-n、--delete 选项的含义
1)验证-a选项
当目录1包含文件夹时,若缺少-a或-r选项则文件夹会被忽略:
[root@svr7 ~]# rsync  /home  /testa
skipping directory home
[root@svr7 ~]# ls  -ld  /testa
ls: 无法访问/testa: 没有那个文件或目录
添加-a后才会执行同步:
[root@svr7 ~]# rsync  -a  /home/  /testa
[root@svr7 ~]# ls  -ld  /testa
drwxr-xr-x. 4 root root 31 1月   6 17:33 /testa
类似的情况,当目录1中的数据出现权限、归属、修改时间等变化时,若文件内容不变默认不会同步,若希望目录2也同步这些变化,也需要-a选项。
2)验证-v选项
创建测试目录及文档:
[root@svr7 ~]# mkdir  /fdir
[root@svr7 ~]# touch  /fdir/1.txt
添加-v选项时,可以看到操作细节信息,比如第一次同步时:
[root@svr7 ~]# rsync  -av  /fdir/  /tdir
sending incremental file list
created directory /tdir
./
1.txt                                 //传输文档列表

sent 82 bytes  received 34 bytes  232.00 bytes/sec
total size is 0  speedup is 0.00
在目录/fdir/添加文件2.txt,再次跟踪同步信息:
[root@svr7 ~]# touch  /fdir/2.txt
sending incremental file list
./
2.txt                                 //传输文档列表

sent 100 bytes  received 34 bytes  268.00 bytes/sec
total size is 0  speedup is 0.00
确认目录1和目录2的内容已经一致:
[root@svr7 ~]# ls  /fdir/  /tdir/
/fdir/:
1.txt  2.txt

/tdir/:
1.txt  2.txt
再次跟踪同步信息,已经无需传输文件:
[root@svr7 ~]# rsync  -av  /fdir/  /tdir
sending incremental file list

sent 58 bytes  received 12 bytes  140.00 bytes/sec
total size is 0  speedup is 0.00
3)验证-n选项
将-n、-v选项合用,可以模拟同步过程,显示需要做哪些操作(但并不真的同步)。
在目录/fdir下新建文件3.txt,测试同步操作:
[root@svr7 ~]# touch  /fdir/3.txt
[root@svr7 ~]# rsync  -avn  /fdir/  /tdir/
sending incremental file list
./
3.txt                                          //提示同步时会传输哪些文件

sent 78 bytes  received 18 bytes  192.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)
[root@svr7 ~]# ls  -l  /tdir/3.txt                 //但实际并未真的同步
ls: 无法访问/tdir/3.txt: 没有那个文件或目录
去掉-n选项才会真正同步:
[root@svr7 ~]# rsync  -av  /fdir/  /tdir/
sending incremental file list
./
3.txt

sent 114 bytes  received 34 bytes  296.00 bytes/sec
total size is 0  speedup is 0.00
[root@svr7 ~]# ls  -l  /tdir/3.txt
-rw-r--r--. 1 root root 0 1月  11 21:46 /tdir/3.txt
4)验证--delete选项
rsync同步操作默认只是将目录1的数据同步到目录2,但如果目录2存在多余的文件却并不会去除,除非添加—delete选项。
在目录/fdir、/tdir已经完成同步后,删除/tdir/2.txt文件,再次同步:
[root@svr7 ~]# rm  -rf  /fdir/2.txt 
[root@svr7 ~]# rsync  -a  /fdir/  /tdir/
检查发现目标文件夹/tdir下的2.txt文件还在:
[root@svr7 ~]# ls  /fdir/  /tdir/
/fdir/:
1.txt  3.txt

/tdir/:
1.txt  2.txt  3.txt
这种情况下添加--delete选项再次执行同步,两个目录的内容就一致了:
[root@svr7 ~]# rsync  -a  --delete  /fdir/  /tdir/
[root@svr7 ~]# ls  /fdir/  /tdir/
/fdir/:
1.txt  3.txt
/tdir/:
1.txt  3.txt

rsync+SSH同步

rsync user@host:远程目录/

rsync [...] user@host:远程目录 本地目录

rsync [...] 本地目录 user@host:远程目录

1 查看远程主机svr7的/目录下有哪些子目录:
[root@pc207 ~]# rsync  root@192.168.4.7:/
2 rsync+SSH同步操作
从远程主机svr7下载/etc/passwd文件到当前目录
[root@pc207 ~]# rsync  root@192.168.4.7:/etc/passwd  ./
3 将远程主机svr7的/boot/目录同步为本地的/fromssh
[root@pc207 ~]# rsync  -a  root@192.168.4.7:/boot/  /fromssh
4 将本机的/etc目录同步到远程主机svr7的/opt/下
[root@pc207 ~]# du  -sh  /etc
[root@pc207 ~]# rsync  -a  /etc  root@192.168.4.7:/opt/
配置rsync服务端
3.1 问题
本例要求在主机svr7上配置rsync同步资源,完成下列任务:
1.将 /usr/src 目录配置为 rsync 共享,其共享名为 tools,仅允许用户 ruser 以密码 pwd123 访问
2.启动 rsync 服务,并将其设为开机自启
3.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:建立rsync账号文件
1)建立账号记录
[root@svr7 ~]# vim  /etc/rsyncd_users.db
ruser:pwd123              //每行一个用户记录
othername:123456
2)控制账号文件权限(服务端严格模式有要求)
[root@svr7 ~]# chmod  600  /etc/rsyncd_users.db
[root@svr7 ~]# ls  -l  /etc/rsyncd_users.db              //确认权限调整结果
-rw-------. 1 root root 27 12月 20 16:25 /etc/rsyncd_users.db
步骤二:配置rsync共享资源
1)确保被共享的目录可用
[root@svr7 ~]# ls  /usr/src/                              //目录及文档资源存在
copyright  debug               install.sh  license_ch.txt  src
data       inotify-tools-3.13  kernels     README.md

[root@svr7 ~]# ls  -ld  /usr/src/                          //权限允许访问
drwxr-xr-x. 7 root root 4096 1月   7 13:57 /usr/src/
2)建立rsyncd.conf配置文件
[root@svr7 ~]# vim  /etc/rsyncd.conf
[tools]                                                 //共享名
    path = /usr/src                                     //目录位置
    comment = Rsync Test Directory
    read only = yes                                      //默认只读
    dont compress = *.gz *.bz2 *.tgz *.zip                 //不需要压缩的文件
   auth users = ruser                                  //允许谁访问
    secrets file = /etc/rsyncd_users.db                  //账号文件
步骤三:启用rsync服务端
1)启动系统服务rsyncd,并设置开机自启
[root@svr7 ~]# systemctl  restart  rsyncd
[root@svr7 ~]# systemctl  enable  rsyncd
Created symlink from /etc/systemd/system/multi-user.target.wants/rsync.service to /usr/lib/systemd/system/rsync.service.
3)检查服务监听状态
1.[root@svr7 ~]# netstat  -anptu  |  grep  rsync
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      6339/rsync          
tcp6       0      0 :::873                  :::*                    LISTEN      6339/rsync
4 案例4:访问rsync共享资源
4.1 问题
本例要求掌握rsync与远程rsync资源的同步操作,使用rsync命令访问远程主机svr7,完成下列任务:
1.列出远程主机提供的 rsync 资源,并查看内容
2.将远程主机的 rsync 共享目录同步到本机
4.2 方案
列出 rsync 共享资源:
rsync host::
rsync rsync://host
rsync+rsync远程同步操作:
rsync [...] user@host::共享名 本地目录
rsync [...] 本地目录 user@host::共享名
访问需要验证的rsync资源时,可以通过 --password-file= 选项来加载提前准备的密码文件(权限600,不要包括除密码外的其他字符),便于计划任务或脚本使用。
4.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:列出远程主机提供的 rsync 资源,并查看内容
1)列出有哪些rsync共享(无需密码)
使用方式1:
[root@pc207 ~]# rsync  192.168.4.7::
tools              Rsync Test Directory
或者,使用方式2:
[root@pc207 ~]# rsync  rsync://192.168.4.7
tools              Rsync Test Directory
2)列出指定的rsync共享目录下有哪些内容
访问目录内容时要求用户验证,否则会失败:
[root@pc207 ~]# rsync  192.168.4.7::tools/
Password: 
@ERROR: auth failed on module tools
rsync error: error starting client-server protocol (code 5) at main.c(1516) [Receiver=3.0.9]
指定正确的用户名、密码才能够访问:
[root@pc207 ~]# rsync  ruser@192.168.4.7::tools/
Password:                                              //输入用户ruser的密码
drwxr-xr-x        4096 2017/01/07 13:57:06 .
-rw-r--r--         303 2015/12/23 19:36:55 README.md
-rw-r--r--        2189 2015/11/18 20:47:12 copyright
-rwxr-xr-x         773 2015/11/18 20:47:12 install.sh
7.-rw-r--r--        7828 2015/11/18 20:47:12 license_ch.txt
drwxr-xr-x        4096 2017/01/07 13:51:21 data
.. ..
步骤二:将远程主机的 rsync 共享目录同步到本机
1)手动交互方式
将远程tools共享的资源同步到本机的/mysrc目录:
[root@pc207 ~]# rsync  -az  ruser@192.168.4.7::tools/  /mysrc
Password:                                              //输入用户ruser的密码
[root@pc207 ~]# du  -sh  /mysrc                         //检查同步结果
17M    /mysrc
2)自动交互方式
通过--passwod-file选项提供密码文件:
[root@pc207 ~]# echo   pwd123  >  /root/pass.txt         //建立密码文件
[root@pc207 ~]# chmod  600  /root/pass.txt                 //控制密码文件的权限
[root@pc207 ~]# rsync  -az  --password-file=/root/pass.txt  ruser@192.168.4.7::tools/  /mysrc  
                                                        //免除手动密码交互

  





 

posted @ 2019-04-19 10:29  传盛  阅读(2301)  评论(0编辑  收藏  举报