linux介绍
Linux 是一个免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 性能稳定的网络操作系统。
linux的内核最初是由一个芬兰的大学生因为个人兴趣爱好而编写的,这个大学生的名字叫林纳斯·托瓦兹(Linus Torvalds)
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。其中这个CentOS是一个企业级的发行版,特别适合对稳定性,可靠性和功能要求较高用户
vmware虚拟机下安装linux(window 7)
vmware虚拟机的三种网络模式
1、VMnet0 虚拟交换机 :Bridged桥接模式
特点:
1)、默认使用VMnet0,不提供DHCP服务(DHCP服务是指由服务器控制的一段IP地址范围,当客户机登录服务器时会自动获取服务器分配的IP地址与子网掩码)
2)、虚拟机与外部主机需要在同一个网段上,与局域网的其它机器没有区别。
3)、可以与局域网内其它主机通信,可以与外部网络通信
4)、容易与局域网其他主机引起ip地址冲突
2、VMnet1 虚拟交换机 :Host-Only仅主机模式
特点:
1)、默认使用VMnet1,提供DHCP服务
2)、虚拟机可以和物理主机互相访问,但虚拟机无法访问外部网络
3、VMnet8 虚拟交换机 :NAT模式
特点:
1)、默认使用VMnet8,提供DHCP服务
2)、虚拟机可以和物理主机互相访问,可访问外部网络
3)、局域网内其它机器访问不了
CentOS7的网络设置
-
Bridged桥接模式
重启主机的命令:reboot
重启网卡的命令:systemctl restart network.service
查看ip地址的命令:ip addr
ping命令可以检测网络是否畅通:ping ip地址
结束ping命令:ctrl + c
安装ctrl +l 可以清屏
可以访问外网
容易与局域网的其它机器ip地址冲突 -
Host-Only仅主机模式
一般情况下不能访问外网
不会与局域网的其它机器ip地址冲突 -
NAT模式
可以访问外网
不会与局域网的其它机器ip地址冲突 -
总结
为了提供不同的测试环境,有的需要虚拟机与局域网内的其它机器环境隔离,有的不需要,所以出现多种配置方式去适应不同的场景
centos7 常用命令
cd命令
功能说明:切换目录。
举 例:cd /usr/local/;cd ..;cd -
ls命令
功能说明:列出目录内容。
举 例:ls -ltr ;ls -lrt /home/
pwd命令
功能说明:查询所在目录。
举 例: pwd
cat命令
功能说明:查看小文件内容。
举 例:cat -n 123.txt
more命令
功能说明:查看大文件内容
举 例:more System.map-3.10.0-123.el7.x86_64
head命令
功能说明:查看文件的前面N行。
举 例:head -20 System.map-3.10.0-123.el7.x86_64
tail命令
功能说明:查看文件的后面N行。
举 例:tail -f access.log ;tail -20 access.log
touch命令
功能说明:创建一个空文件。
举 例:touch 123.txt
mkdir命令
功能说明:创建目录。
举 例:mkdir -p /tmp/XD/XD/class
rmdir命令
功能说明:删除目录。
举 例:rmdir /tmp/XD/XD/class
cp命令
功能说明:拷贝文件。
举 例:cp 123.txt class/ ; cp -a 123.txt class/789.txt
mv命令
功能说明:**移动或更名现有的文件或目录**。
举 例:mv 123.txt 345.php ;mv 789.txt /home/987.php
rm命令
功能说明:**删除文件或目录**。
举 例:rm 987.php ;rm -rf 456.txt
diff命令
功能说明:对比文件差异。
举 例:diff 123.txt 456.txt
ssh命令
功能说明:**远程安全登录方式。**
举 例:ssh 192.168.226.131
exit命令
功能说明:退出命令。
id命令
功能说明:查看用户。
举 例:id root
uname命令
功能说明:查询主机信息。
举 例:uname -a
ping命令
功能说明:查看网络是否通。
举 例:ping 192.168.226.131
echo命令
功能说明:标准输出命令。
举 例:echo "this is echo 命令"
man命令(ls --help)
功能说明:查看帮助文档
举 例:man ls
help命令
功能说明:查看内部命令帮助
举 例:help if
查看linux的版本
cat /proc/version
cat /etc/issue
cat /etc/redhat-release
centos7 基础命令
clear命令
功能说明:清屏。
举 例:clear ; ctrl + l
who 命令
功能说明:当前在本地系统上的所有用户的信息
举 例:whoami ; who
uptime 命令
功能说明:查询系统信息
举 例:
load average: 0.00, 0.01, 0.05 1分钟的负载,5分钟的负载,15分钟的负载
w 命令
功能说明:查询系统信息
举 例:w
free 命令
功能说明:查看系统内存
举 例:free -h ; free -m
wc 命令
功能说明:统计行。
举 例:wc -l 123.txt
grep命令
功能说明:查找文件里符合条件的字符串。
举 例:
grep '119.4.253.206' 123.txt | wc -l
-n:输出行数 grep -n '80.82.70.187' 123.txt
-w:精确匹配 grep -w '113.66.107.198' 123.txt
-i:忽略大小写 grep -i 'IP:113.66.107.198' 123.txt
-v:反向选择 grep -v '113.66.107.198' 123.txt
find命令
功能说明:查询文件。
举 例:find / -name -type f 123.txt
uniq命令
功能说明:对排序好的内容进行统计
举 例:uniq -c 123.txt | sort -n
sort命令
功能说明:对内容进行排序
举 例:uniq -c 123.txt | sort -n
df命令
功能说明:文件系统的磁盘使用情况统计。
举 例:df -h
netstat
功能说明:查看网络端口的使用情况
举 例:netstat -tunlp | grep nginx
-t :显示tcp端口
-u :显示UDP端口
-n :指明拒绝显示别名
-l :指明listen的
-p :指明显示建立相关连接的程序名
安装netstat命令:yum -y install net-tools
hostname命令
功能说明:查看主机名
举 例:hostname
ps命令
功能说明:显示所有进程信息。 ps 与grep 常用组合用法,查找特定进程
举 例:
ps -ef | grep nginx
ps -aux | grep nginx
kill命令
功能说明:杀进程
举 例: kill -9 top
top命令
功能说明:监控Linux系统状况,比如cpu、内存的使用
举 例:按住键盘q退出
du命令
功能说明:统计大小
举 例:du -sh ; du -sm *
firewall-cmd命令
功能说明:查看防火墙的状态
举 例:firewall-cmd --state
centos 7 关闭/启动防火墙:
systemctl stop/start firewalld.service
19、echo命令
功能说明:判断上一条命令是否正确
举 例:echo $?
20、cal命令
功能说明:查看日历
举 例:cal 2008
输入输出错误重定向介绍
-
输入重定向定义
输入重定向就是把要输入的信息写入到指定的文件中去 -
输出重定向定义
输出重定向就是把要输出的信息写入到一个文件中去,而不是将要输出的文件信息输出到控制台(显示屏) -
错误重定向定义
错误重定向就是把错误的信息写入到一个文件中去 -
linux中一切皆文件
posix名称 文件描述符 用途
/dev/stdin 0 标准输入
/dev/stdout 1 标准输出
/dev/stderr 2 标准错误输出
-
输入重定向用法: <
eg:wc -l < 123.txt -
输出重定向用法:> #代表覆盖写入 ; >> #代表追加写入
例子:
cat >> 123.txt ;
cat > 123.txt ;
ls -lrt >123.txt ;
echo '123455' > 123.txt -
错误重定向用法
eg:llll 2 > 123.txt ; llll 2> /dev/null #/dev/null 无底洞 -
符号的意义:
& #代表等同于的 意思 ls -lrt /boot /test 1>/root/123.txt 2>&1
&> #代表不分正确还是错误的意思 ls -lrt /boot /test &>123.txt
| #管道符
; #代表的是可以执行多条命令 cat /etc/passwd | grep root ; ls -lrt
&& #前面的命令执行成功的话,后面的才可以执行成功;前面的命令执行失败的话,后面的不可以执行
|| #前面的命令执行成功的话,后面的不可以执行;前面的命令执行失败的话,后面的可以执行
CentOS7下常见的目录作用介绍
目录/:根目录,一般根目录下只存放目录,不要存放文件,也不要修改,或者删除目录下的内容
/mnt:测试目录
/root:root用户的家目录
/home:普通用户的家目录
/tmp:临时目录(比如文件上传时)
/var:存放经常修改的数据,比如程序运行的日志文件
/boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件
/etc:系统默认放置配置文件的地方
/bin:所有用户都能执行的程序
/sbin:只有root才能执行的程序
/usr:用户自己的软件都可以放到这儿来
/dev:存放硬件设备的地方(/dev/cdrom)
/media:挂载光盘使用的
挂载光盘:mount /dev/cdrom /media
卸载光盘:umount /dev/cdrom
绝对路径:说白了就是完整的路径
相对路径:相对于当前位置路径 ./ 代表的是当前目录的意思 ../ 代表的是上一级目录的意思
编辑器vi的使用
- vi的基本概念(3中模式)
命令模式
插入模式
底行模式
进入命令模式:按住键盘的左上角 esc 键
进入插入模式:按住键盘的 i 或者 o 或者 a
进入底行模式:前提是得在命令模式,输入 : 进入
- 在命令行模式中的操作
$ #移动到这一行的行尾
gg #移动到文档第一行行首
G #移动到文档最后一行行首
x #删除内容,删除一个字符
dd #删除游标所在的那一整行
u #复原原来的操作
v #选中范围按y即复制
p #粘贴
- 在底行模式中的操作(:)
n #n为数字。光标移动到第n 行
/ #寻找内容
eg:
%s/word1/word2/g #从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2
n1,n2s/word1/word2/g #n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2
set nu #显示行号
set nonu #取消行号
q! #强制离开不保存
wq #离开并保存
wq! #强制离开并保存
!ls #暂时离开
linux的用户管理和组管理
-
Linux是一个多用户、多任务的操作系统
-
用户分类:
超级用户root:拥有至高无上的权限 UID:0
普通用户:权限有一定的限制,可以登录系统。
一般可以执行/usr/local/bin或者/bin或者/usr/bin或者自己家目录的命令
UID:500 -60000 (centos 6) UID:1000 - 60000(centos7)
系统用户(伪用户):一般不会登录系统,一般情况是用来维持某个服务程序 UID :1-499 (centos 6) UID :1-1000 (centos 7)
- 用户的相关配置文件
账号信息:/etc/passwd
密码信息:/etc/shadow
test :x :1000 :1000 : :/home/test :/bin/bash
用户 密码占位符 UID GID 用户描述 用户家目录 登录后使用的shell解释
/sbin/nologin #是不可登录的
/bin/bash #可以登录
- 添加用户命令: useradd
-u #指定用户UID
-d #指定用户主目录
-g #指定用户所属组
-r #指定用户是系统用户
-s #用户登录shell解释器
-M #不创建主目录
eg:创建一个用户vincent,指定UID为1010,指定家目为/home/vincent ,指定所属组为root组,指定登录shell为/bin/bash
useradd -u 1010 -d /home/vincent -g root -s /bin/bash vincent
-
登录用户时出现以下问题如何解决
eg:
bash-4.2
解决:复制相关信息到家目录
cp -r /etc/skel/.bash* /home/vincent/ -
删除用户命令:userdel
eg:-r #连同家目录一块删除 -
添加用户组命令:groupadd
-
删除用户组命令:groupdel
-
修改用户的信息命令:usermod
-u #指定用户UID
-d #指定用户主目录
-g #指定用户所属组 -
设置用户密码命令passwd
eg:
passwd XD
echo "123456" | passwd --stdin XD
centos7 文件属性和权限
- 文件的属性: ls -lrti
解析:
1183052 -rwxr-xr-x 1 root root 30600 Nov 22 2013 rpm
第一列(i):i节点;i节点可以理解文件id,一个i节点号可以对应多个文件,一个文件只能对应一个i节点号
第二列(-l):文件的类型与权限
- #代表的是文件;d#代表是目录; l #软链接文件 ;b #代表块设备;c #代表的是硬件设备(键盘)
r:表示读权限 ;w:表示写权限;x:表示执行权限
4:表示读权限 ;2:表示写权限;1:表示执行权限
rw-------:分为三列
rw- 第一列为所属者的权限
--- 第二列为所属组的权限
--- 第三列为其它的权限
第三列:有多少文件名链接到这个节点
第四列:文件的所有者
第五列:文件的所有组
第六列:容量大小,单位默认为B
第八列:创建或最近修改的时间
第九列:文件名
- 链接
软连接:ln -s
eg:ln -s /home/vincent/yum.log /usr/local/
i节点号跟源文件不一样,源文件一旦删除,软链接将找不到源文件
硬链接:ln
eg:ln /home/vincent/yum.log /usr/local/vincent/
i节点与源文件一模一样,源文件删除,硬链接还可以继续使用。常用于防止重要文件被误删
- 修改文件的权限命令: chmod
-R #递归的意思
chmod -R 777 /home/vincent/*
eg:
chmod u+x,g+w,o+w boot.log
chmod u-x,g-w,o-w boot.log
chmod 777 boot.log
- 修改文件的所有者和所属组命令:chown
-R #递归的意思
eg:更改文件目录vincent的所属者为root用户 跟 所属组为vincent组
chown -R root:vincent vincent
linux 文件归档和解压缩介绍
-
文件归档
文件归档也称之为打包,指的是一个文件或者多个文件或者目录的一个集合,这个集合储存在一个文件中。
归档文件是没有进行压缩的,所以占用的空间是所有文件或者目录的总和,工作中经常与压缩结合在一起使用。 -
文件压缩
节约磁盘空间,加快文件的传输速率 -
解压缩命令:gzip;xz
gzip:不能压缩目录,只能压缩文件,压缩速度最快,但是压缩比例比较低。扩展名: .gz
不保留源文件压缩:gzip 123.txt
保留源文件压缩:gzip -c 345.txt > 345.txt.gz
不保留源文件的解压:gunzip 123.txt.gz
保留原文件的解压:gunzip -c 345.txt.gz > 234.txt
不保留源文件解压:gzip -d 345.txt.gz
xz:可以压缩目录和文件压缩的速度比较慢,但是压缩比例最高。扩展名: .xz
不保留源文件压缩:xz 123.txt
保留源文件压缩:xz -c 345.txt > 345.txt.xz
不保留源文件的解压:unxz 345.txt.xz
保留原文件的解压:xz -d -k 123.txt.xz
不保留源文件解压:xz -d 123.txt.xz
- 归档与压缩命令:tar
-c #创建新文件
-f #指定文件格式
-v #显示详细过程
eg:
tar -cf vmware.tar vmware-tools-distrib;
tar -cvf vmware-tools.tar vmware-tools-distrib
解压
tar -zxvf xxxx.tar
压缩
tar -cvf xxx.tar xxx
-z #以gzip方式归档压缩
eg:tar -zcvf vmware-tools.tar.gz vmware-tools-distrib
-J #以xz方式进行归档压缩
eg:
tar -Jcvf vmware-tools.tar.xz vmware-tools-distrib;
tar -Jcvf /home/XD/vmware-tools.tar.xz vmware-tools-distrib
-v #解档解压操作
eg:tar -xf vmware-tools.tar.xz
-C #指定解压路径
linux 搜索命令 find
- 基本用法: find 路径 选项
-type #根据文件类型
find /var/log -type f -name "*.log" ;find /var/log -type d
-name #根据文件名
find /var/log -type f -name "*.log"
-perm #根据文件权限
find /var/log -perm 600 -type f -name "*.log"
-user #根据文件所属主
find /var/log -user vincent
- 高级用法
find /var/log -type f -name "*.log" -exec wc -l {} \;
; #可以执行多条命令
\ #转义符,转义;使得这条命令结束
{}#把find命令匹配到的每一次结果传递给{}
-exec #执行
eg:
find /var/log -type f -name "*.log" -exec cp -a {} /home/test \;
-mtime #根据文件的变更时间来查找;-n表示更改时间距离现在n天以内;+n表示更改时间距离现在n天以前
eg:
find /var/log -mtime -2 -name "*.log" -exec ls -lrt {} \;
find /var/log -mtime +2 -name "*.log" -exec ls -lrt {} \;
centos7 防火墙和selinux介绍
-
防火墙
主要用户信息安全防护,主要有软件防火墙和硬件防火墙。firewalld防火墙是软件防火墙 -
在centos7 之前默认采用的防火墙是iptables,而在centos 7则是采用firewall
-
查看firewalld服务状态
systemctl status firewalld -
开启、重启、关闭firewalld 服务
开启:
systemctl start firewalld.service
service iptables start(linux6)
关闭:
systemctl stop firewalld.service
service iptables stop(linux6)
重启:systemctl restart firewalld.service -
查看firewall防火墙的状态
firewall-cmd --state
service iptables status(linux6) -
查看防火墙开放端口规则
firewall-cmd --list-port -
开放80端口
firewall-cmd --permanent --add-port=80/tcp (--permanent永久生效,没有此参数重启后就失效) -
加载生效开放的端口
firewall-cmd --reload -
查询指定端口80是否开放
firewall-cmd --query-port=80/tcp -
验证80端口是否开放(80端口是负责对外网访问的)
安装telnet命令:yum -y install xinetd telnet telnet-server (确认联网状态)
安装netstat与ifconfig命令:yum -y install net-tools(确认联网状态) -
关闭80端口
firewall-cmd --remove-port=80/tcp -
SELinux 的三种工作模式
配置文件路径:/etc/selinux/config
enforcing :强制模式。违反selinux 规则的行为将会被阻止并记录到日志中去
permissive:宽容模式。违反selinux 规则的行为将会记录到日志中去
disabled:关闭模式。
linux 服务器之间的telnet与scp命令的用法
-
telnet :主要用于测试到某台机器的某个端口是否畅通
-
这个命令是依赖于 xinetd 服务于telnet-server服务
-
安装:yum -y install xinetd telnet telnet-server (确认联网状态)
-
用法:telnet IP地址 端口
-
scp命令:用于服务器之间的文件或者文件目录拷贝
用法1:从本机拷贝文件到别的机器
scp 本机文件的存放路径 root@服务器IP:服务器目标路径
eg:从192.168.72.128这台机器的/root/aa.tar.gz文件拷贝到
192.168.72.129的/root/下
scp /root/aa.tar.gz root@192.168.72.129:/root/
用法2:从别的机器拷贝文件到本地目录
scp root@服务器IP:服务器目标路径 本机文件的存放路径
eg:从192.168.72.129这台机器的/root/bbb.tar.gz文件拷贝到
192.168.72.128的/root/下
scp root@192.168.72.129:/root/bbb.tar.gz /root/
- -r 参数:递归的作用(可以拷贝目录)
eg:
scp -r abc root@192.168.72.129:/root/
进程管理命令之ps -ef 和 ps aux 介绍
- ps -ef
[root@iZbp1ficl3p7xegof5w40zZ /]# ps -ef | more
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 2017 ? 00:00:11 /sbin/init
root 2 0 0 2017 ? 00:00:00 [kthreadd]
root 3 2 0 2017 ? 00:00:00 [migration/0]
root 4 2 0 2017 ? 00:04:43 [ksoftirqd/0]
root 5 2 0 2017 ? 00:00:00 [stopper/0]
root 6 2 0 2017 ? 00:01:32 [watchdog/0]
root 7 2 0 2017 ? 00:00:01 [migration/1]
root 8 2 0 2017 ? 00:00:00 [stopper/1]
root 9 2 0 2017 ? 00:08:32 [ksoftirqd/1]
root 10 2 0 2017 ? 00:01:27 [watchdog/1]
root 11 2 0 2017 ? 00:53:24 [events/0]
root 12 2 0 2017 ? 03:28:14 [events/1]
root 13 2 0 2017 ? 00:00:00 [events/0]
root 14 2 0 2017 ? 00:00:00 [events/1]
root 15 2 0 2017 ? 00:00:00 [events_long/0]
root 16 2 0 2017 ? 00:00:00 [events_long/1]
UID:用户ID
PID:进程ID
PPID:父进程号
C:CPU的占用率
STIME:进程的启动时间
TTY:TTY终端
TIME:进程执行起到现在总的CPU占用时间
CMD:启动这个进程的命令
- ps aux
[root@iZbp1ficl3p7xegof5w40zZ /]# ps aux | more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19232 576 ? Ss 2017 0:11 /sbin/init
root 2 0.0 0.0 0 0 ? S 2017 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 2017 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S 2017 4:43 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S 2017 0:00 [stopper/0]
root 6 0.0 0.0 0 0 ? S 2017 1:32 [watchdog/0]
root 7 0.0 0.0 0 0 ? S 2017 0:01 [migration/1]
root 8 0.0 0.0 0 0 ? S 2017 0:00 [stopper/1]
root 9 0.0 0.0 0 0 ? S 2017 8:32 [ksoftirqd/1]
root 10 0.0 0.0 0 0 ? S 2017 1:27 [watchdog/1]
root 11 0.0 0.0 0 0 ? S 2017 53:24 [events/0]
root 12 0.0 0.0 0 0 ? S 2017 208:14 [events/1]
root 13 0.0 0.0 0 0 ? S 2017 0:00 [events/0]
root 14 0.0 0.0 0 0 ? S 2017 0:00 [events/1]
root 15 0.0 0.0 0 0 ? S 2017 0:00 [events_long/0]
root 16 0.0 0.0 0 0 ? S 2017 0:00 [events_long/1]
root 17 0.0 0.0 0 0 ? S 2017 0:00 [events_power_ef]
root 18 0.0 0.0 0 0 ? S 2017 0:00 [events_power_ef]
root 19 0.0 0.0 0 0 ? S 2017 0:00 [cgroup]
root 20 0.0 0.0 0 0 ? S 2017 0:00 [khelper]
root 21 0.0 0.0 0 0 ? S 2017 0:00 [netns]
root 22 0.0 0.0 0 0 ? S 2017 0:00 [async/mgr]
USER:哪个用户启动了这个命令
PID:进程的ID
%CPU:CPU的占用率
%MEM:内存的使用率
VSZ:如果一个程序完全驻留在内存中一共需要使用多少内存空间
RSS:进程当前占用了多少内存
TTY:tty终端
STAT:表示当前进程的状态(S#处于休眠的状态;D#不可中断的状态 ;Z#僵尸进程 ;X#死掉的进程)
START:启动这个命令的时间点
TIME:进程执行起到现在总的CPU占用时间
COMMAND:启动这个进程的命令
一般执行ps -ef 或者ps aux 命令是查看我们的进程是否启动成功,或者找出进程号,对进程的kill强制关闭
处理海量数据之cut命令
- 应用场景:通常对数据进行列的提取
语法:cut [选项]...[file]
选项:
-d #指定分割符
-f #指定截取区域
-c #以字符为单位进行分割
注意:不加-d选项,默认为制表符,不是空格
eg:
以':'为分隔符,截取出/etc/passwd的第一列跟第三列
cut -d ':' -f 1,3 /etc/passwd
eg:
以':'为分隔符,截取出/etc/passwd的第二列到最后一列
cut -d ':' -f 2- /etc/passwd
eg:
截取/etc/passwd文件从第二个字符到第九个字符
cut -c 2-9 /etc/passwd
eg:
比如领导想叫你截取linux上面所有可登陆普通用户
cat /etc/passwd | grep '/bin/bash' | cut -d ':' -f 1 | grep -v root
处理海量数据之awk命令
-
简介:一个非常强大的数据处理命令,支持条件判断,数组,循环等功能,与grep,sed 被称为linux三剑客
-
应用场景:通常对数据进行列的提取
-
语法:
awk '条件1 {执行动作} 条件2 {执行动作} ...' 文件名
或awk [选项] '条件1 {执行动作} 条件2 {执行动作} ...' 文件名 -
特殊要点和说明
printf #格式化输出,不会自动换行。
print #打印出内容,默认会自动换行
%s #代表字符串
\t #制表符
\n #换行符
eg:printf '%s\t%s\t%s\t%s\t%s\t%s\n' 1 2 3 4 5 6
NR #行号
$1 #代表第一列
$2 #代表第二列
$NF#代表最后一列
eg:
df -h | awk 'NR==4 {print $1}'
df -h | awk '(NR>=2 && NR <=5) {print $1}'
df -h | awk '{print $NF}'
-F #指定分割符
eg:
awk -F":" '{print $1}' /etc/passwd
BEGIN #在读取所有行内容前就开始执行,一般用来初始化操作
eg:
cat /etc/passwd | awk 'BEGIN {FS=":"} {print $1}'
df -h |grep -v 'Filesystem' | awk '{printf $1} {printf "文件系统使用率:"} {print $5}'
df -h |grep -v 'Filesystem' | awk 'BEGIN {printf "文件系统使用情况:\n \n"} {printf $1} {printf "文件系统使用率:"} {print $5}'
END #结束的时候 执行
df -h |grep -v 'Filesystem' | awk 'BEGIN {printf "文件系统使用情况:\n \n"} {printf $1} {printf "文件系统使用率:"} {print $5} END {printf "一切正常 \n"}'
处理海量数据之sed命令
-
引用场景:主要对数据进行处理(选取,新增,替换,删除,搜索)
-
语法:sed [选项] [动作] 文件名
-
常见的选项和参数
-n #把匹配到的行输出打印到屏幕
p #以行为单位进行打印,通常与-n一起使用
eg:df -h | sed -n '2p'
d #删除
eg:df -h | sed '2d'
a #在行的下面插入新的内容
eg:df -h | sed '2a 1234567890'
i #在行的上面插入新的内容
eg:df -h | sed '2i 1234567890'
c #替换
eg:df -h | sed '2c 1234567890'
指定字符串替换:s/要被取代的内容/新的字符串/g #指定内容进行替换
eg:df -h | sed 's/centos-root/Centos7/g'
-i #对源文件进行修改(高危操作,慎用,用之前需要备份源文件)
eg:sed -i 's/Centos7/Centos8/g' df.txt
-n 搜索,在文件中搜索内容
eg:sed -n '/tmpfs/p' df.txt
-e #表示可以执行多条动作
sed -e 's/Centos8/Centos7/g' -e 's/tmpfs/TMP/g' df.txt >123.txt
linux下常用安装软件 rpm 介绍
- rpm 安装
安装别人编译好的软件包,rpm即Redhat Package Manager,是Redhat的软件包管理方式
-
优点
1)、软件已经编译打包,所以传输和安装方便,让用户免除编译
2)、在安装之前,会先检查系统的磁盘、操作系统版本等,避免错误安装 -
缺点
1)、软件包安装的环境必须与打包时的环境一致或相当
2)、必须安装了软件的依赖包 -
rpm包的命名规则
xxx-2.20-7.el7.x86_64.rpm
xxx #代表的是软件名称
2.20 #代表的是软件版本号;
7 #代表的是发布版本号,指的是这个rpm软件包是第几次编译生成的
el7 #代表的是企业版的7操作系统
X86 #代表的是CPU架构
64 #代表的是系统的位数
- 安装
-i #install 安装软件包
-v #输出更多的详情信息
-h #输出哈希标记(#)
--nodeps #不验证软件的依赖
rpm -ivh zsh-5.0.2-7.el7.x86_64.rpm
rpm -ivh mariadb-server-5.5.35-3.el7.x86_64.rpm --nodeps
-
rpm包的下载地址
http://rpmfind.net/
http://rpm.pbone.net/
http://www.rpmseek.com/index.html -
rpm 查询功能:rpm -q
-a #查询所有已安装的软件包
eg:rpm -qa zsh
-f #查询文件所属软件包
eg:rpm -qf /usr/bin/zsh
-p #查询软件包
-i #显示软件包信息
-l #显示软件包中的文件列表
-d #显示被标注为文档的文件列表
-c #显示被标注为配置文件的文件列表
- rpm 包升级
-U #升级rpm软件服务
eg:rpm -Uvh zsh-5.0.2-7.el7.x86_64.rpm
- rpm包 卸载
-e #卸载
eg:rpm -e zsh
linux下常用安装软件 yum介绍
-
安装
基于 C/S 架构,yum安装称之为傻瓜式安装 -
优点
方便快捷,不用考虑包依赖,自动下载软件包。 -
缺点
人为无法干预,无法设定想要的参数 -
配置本地的yum源
配置文件的路径:/etc/yum.repos.d/
cat baidu-bcm.repo
[Centos7-yum] #yum源名称,唯一的,用来区分不同的 yum 源
name=Centos7-source #对yum源描述信息
baseurl=file:///mnt #yum源的路径(repodata目录所在的目录)
enabled=1 #表示启用 yum 源
gpgcheck=0 #为1表示使用公钥检验 rpm 的正确性
- 安装方式的使用
yum repolist #查看yum源列表
yum clean all #清空之前yum缓存
yum makecache #创建yum缓存,为后续安装更加快速
yum -y install #安装软件 yum -y install zsh
yum info zsh #查看zsh软件包信息(不管安装了没都会有信息)
yum info installed zsh #查看已经安装好的软件信息
yum -remove zsh #卸载软件
yum search gcc #搜索gcc软件
yum update #升级软件
linux下 源码编译安装方式 介绍
-
优点
编译安装过程,可以设定参数,指定安装目录,按照需求进行安装,指定安装的版本,灵活性比较大。 -
缺点
需要对依赖包一个一个的进行安装,不敢随便升级,一升级可能会由于依赖包的是不能使用导致一系列连锁反应 -
安装步骤
1.解压源码包 tar -xf 源码包
2.配置
进入解压后的目录,用./configure命令来配置相关信息(比如指定安装目录 --prefix=/usr/local/nginx)和生成Makefile文件
3.编译
make -j4
4.安装
make install
网友评论