linux基础篇(一次学会永不回头)

linux基础篇(一次学会永不回头) 目录安装包地址大数据之路 安装包分享[持续更新分享]-CSDN博客Centos7安装部署方法Linux Centos7从零到一的安装保姆级教程网络、SSH免密、克隆 博主带你玩转虚拟机及大数据-CSDN博客1、文件处理命令ls 查看目录 cd 进入目录pwd 显示当前工作目录mkdir 创建文件夹touch 创建文件echo [ 将内容写入文件自动创建文件/ 查看环境变量]cat [获取文件内容]CP (copy 复制)mv (move 等于剪切 也可以用于重命名 )rm (remove 删除文件/文件夹)vi/vim (编辑器 )进入插入模式 按下电脑左上角的 esc 退出编辑模式保存退出替换2、查找搜索命令find (查找文件或目录)-name 文件名-size 文件大小-type 查找类型grep (文件中查找字符串匹配行并输出 管道 查找进程)查找文件查找进程which 显示系统命令所在目录whereis 搜索命令/配置文件 所在目录 及帮助文档路径3、压缩和解压命令gzip 只能压缩文件 不能压缩目录bzip2 只能压缩文件zip(压缩和解压文件/目录 后缀为 .zip)tar文件/目录 打包详解​编辑打包压缩操作命令解压命令4、系统关机命令shutdown (关机)重启命令5、linux常用快捷命令6、网络相关修改IP修改配置文件配置文件重启网络防火墙相关NetworkManager网络通信ping 测试网络通信电脑ip地址主机名IP映射进入hosts文件修改主机映射7、进程管理命令ps 查看系统中进程信息kill 杀死进程w 查看用户信息nohup 退出当前会话任然执行进程教学案例前期可以直接抄脚本去体验nohup 命令的使用即可将脚本写入到 test_nohup.sh修改脚本权限可执行调用脚本查看进程效果如下​编辑8、用户管理命令1、用户管理useradd添加用户 su 切换用户passwd(修改密码)userdel(删除用户)2、组管理groupadd添加组groupmod修改组groupdel用户组删除9、文件权限chmod 修改文件或者目录权限chown 修改文件所有者权限chgrp(变更所属组)10、镜像将镜像源替换成阿里源11 、 安装文件rpm -- RedHat Package ManagerRedHat软件包管理工具yum [Yellowdog Updater Modified]12、ssh 服务器免密通信13、文件传输14、服务器时间同步开篇自我介绍Hello 大家好我是一个从事大数据行业5年的程序员去过比较大规模的公司也帮助过公司从零到一搭建一个稳定实用的数据中台。有一套成熟的大数据体系知识积累由于现在大部分公司也在起大数据这一块的业务那我刚好把自己一路走过来的经验和实践分享给大家如果真的有帮助到大家还请大家关注收藏后续有新鲜的技术或者经历可以和大家一起分享共同进步。今天分享的是一些常用的linux命令主要是在使用centos过程中经常会使用到的这里只面向搭建数据中台需要的进行讲解如果有需要更多的命令的评论区留言如果需要的人比较多会考虑写一份全面的分析给大家。没有安装虚拟机的后面我出一个虚拟机的安装教程内容 第一部分为 命令说明解释 第二部分方便复制粘贴测试 以及博主的执行结果详解。内容比较详细方便大家理解以及掌握。希望大家一次学会永不回头。博主也是会加上自己的理解去给大家去讲解也希望得到大家的支持和认可有错误的地方还请大家指出博主也会虚心学习。在学习之前最最最重要的就是博主会将内容中用的所有安装包给大家准备好希望大家也可以收藏关注不迷路哦安装包地址大数据之路 安装包分享[持续更新分享]-CSDN博客Centos7安装部署方法Linux Centos7从零到一的安装保姆级教程网络、SSH免密、克隆 博主带你玩转虚拟机及大数据-CSDN博客1、文件处理命令ls 查看目录命令说明#详解 ls 选项可选 路径可选 ls # 查看当前目录下的文件和文件夹 ls 目录 # 查看指定目录下的文件和文件夹 ls -a # 查看所有文件或目录包括隐藏文件有一些.xxx 的文件会隐藏 ll ls -l # ls -l 其中这个参数选项是list 列出所有的详细信息 ls -h # ls -h 其中的h参数选项是人类可读的比如系统默认显示文件大小为字节-h可以显示kb/M/G实操命令#命令 方便复制 ls ls /home效果如图实操命令#命令 方便复制 ls -a ll效果如图实操命令#命令 方便复制 ll ll -h效果如图cd进入目录命令讲解cd -- 进入 ~ cd /file -- 进入file 目录 cd .. -- 回到当前目录的上级目录实操命令#命令 方便复制 cd cd /file cd ..效果如图pwd显示当前工作目录PWD # 查看当前绝对路径 大小写都可以的实操命令#命令 方便复制 PWD效果如下图所示不记得自己当前路径或者配置环境变量可以迅速定位当前绝对路径mkdir创建文件夹mkdir file -- 在当前目录下创建一个名为file的文件夹 mkdir -p /file/file1/file2 -- 在当前目录下循环创建一个名为file的文件夹父目录不存在先创建父目录实操命令#命令 方便复制 mkdir file mkdir /file/file1/file2 ls ls /file ls /file/file1/效果如下touch创建文件cd /file -- 进入file目录 touch test.txt -- 创建名为test.txt 的文件 touch /file/file1/test1.txt -- 在file子目录下file1 创建test1.txt实操命令#命令 方便复制 cd /file touch test.txt touch /file/file1/test1.txt ls ls /file/file1实际效果如下echo[ 将内容写入文件自动创建文件/ 查看环境变量]cat[获取文件内容]echo $PWD # 打印当前按路径 echo hhh # 打印 hhh 到控制台 echo hhh echo_file.txt # 将 hhh 写入到echo_file.txt 并覆盖原有所有内容 echo hhh echo_file.txt # 将 hhh 写入到echo_file.txt 并追加原有内容后 cat /file/echo_file.txt # 查看文件内容实操命令echo $PWD echo hhh echo hhh /file/echo_file.txt cat /file/echo_file.txt echo HHH /file/echo_file.txt cat /file/echo_file.txt echo hhh /file/echo_file.txt cat /file/echo_file.txt效果及解释CP(copy 复制)cp -rp 源文件 目的目录 # -r 循环递归复制文件夹 -p保留文件原始属性时间 CP -r /file/file1 / # 将file1 目录下的文件和文件夹复制到根目录实操命令cp -r /file/file1 / cd / ls效果如下mv(move 等于剪切 也可以用于重命名 )mv 源文件/目录 目的目录 # 当文件没有被移动会被重命名 mv file file_mv # 将file 更名为file_mv mv /file/file1/file2 /file #将file1 中的文件file2 移入到file中实操代码cd file ls mv /file1 file_mv mv /file/file_mv/file2 /file ls效果如下rm(remove 删除文件/文件夹)# rm 命令一定慎用删除文件/文件夹就找不到了linux中可没有垃圾桶 rm -rf 文件/目录 # -r [recursive] 递归删除 -f [force] 强制删除文件或目录 rm -f 文件名 # 删除文件 rm -f test.txt test11.txt #删除多个文件 rm -rf 文件夹 #删除目录实操代码touch echo_file111.txt rm -f echo_file111.txt echo_file.txt rm -rf file2 file_mv效果如下vi/vim(编辑器 )#vim需要安装 需要联网 yum install -y vim# 注意这个命令常用且操作颇多按照自己的习惯和使用记住一部分即可。# vi/vim 使用比较多 也是操作最多的命令之一需要多练习 vim test.txt # 没有文件会创建文件 ---------------------------------插入模式---------------------------------- i [insert] # 进入插入模式 光标前 因为博主只能记住这么多所以最喜欢用 i a # 光标后插入 A shift a # 本行末尾 I shift i # 本行行首 o #光标下插入新行 O shift o # 光标上插入新行 ------------------------------定位命令------------------------------------- :set nu # 显示行号 :set nonu # 取消行号显示 :gg # 跳转到第一行 gg 要重新开始了 hhh :G # 跳转到最后一行 G 结束了 :nG # 跳转到第n行 :n # 跳转到第n行 ------------------------------保存退出命令--------------------------------- # 按下 esc 退出编辑 :wq # w[write] q [quit] 写入并退出 :wq! # 强制写入并退出 :q! # 强制退出 不保存修改操作 ------------------------------搜索替换------------------------------------- /string # 向后查找字符串 ?string # 向前查找字符串 n # 搜索字符串下一个出现的位置 和查找的方向一致 N # 搜索字符串上一个出现的位置 和查找的方向一致 :%s /old_string/new_string/g # 全文搜索 old_stirng 替换成 new_string :%s /\root/\ROOT/g # 特殊字符串需要转义 使用 \ :%s #/root#ROOT#g # 使用# 不需要转义实操代码主要插入保存以及替换其他命令自己尝试吧vim testfile.txt效果如下实操代码i # 按i进入插入模式效果如下 会出现光标实操代码123456 #写入 123456 # 按下 esc 键盘最最最左上角的一个键 退出编辑 光标会消失 :wq # 保存写入并退出 cat testfile.txt # 输出刚刚写入的内容效果如下进入插入模式 按下电脑左上角的 esc 退出编辑模式保存退出打印了刚刚写入的内容替换# 替换是很常用的 我们将 文本中的234 替换成 abc :%s/234/abc/g效果如下2、查找搜索命令find(查找文件或目录)-name文件名find * # * 查找所有 find ? # ? 匹配单个字符串 # 按照名字查找 find /file -name tes* # 在file文件夹中查找tes开头的文件 * 通配符 所有 find /file -name test???? #几个? 就匹配几位的文件实操代码# 创建文件 touch /file/testfile.txt find /file -name te* find /file -name testfile???? find /file -name testfile???效果如下-size文件大小# 已block 为单位 1block 512 b 2block 1kb # 1024 大于 1m -1024 小于 1m find /file -size -2048 # 2048 block 1024 kb 1M 查找不超过1M的文件/文件夹 10M 20480 100M 204800 1G 2097152实操代码find /file -size -20480效果如下-type查找类型# f 二进制文件 # l 软连接 # d 目录 # c 字节文件 find /file -type f # 查找file 文件夹下的二进制文件实操代码find /file -type f效果如下grep (文件中查找字符串匹配行并输出 管道 查找进程)查找文件grep [-cinv] 搜索的字符串 filename # 查找某文件中是否存在 字符串 -c [count] 输出匹配行次数 -i [ignore] 忽略大小写 -n [line] 显示匹配行及行号 -v [vanish] 反向选择显示不包含匹配文本的行 这个不知道单词对不对实操代码# 追加内容到文件 echo 1 testfile.txt echo 1 testfile.txt # 统计 数字1 的行数 grep -c 1 testfile.txt echo A testfile.txt # 查找 包含a 的内容 忽略大小写 grep -i a testfile.txt # 查找 小a的行 并显示行数 grep -n a testfile.txt # 查找 a的行忽略大小写 并显示行数 grep -in a testfile.txt # 查找不包含a的内容 grep -v a testfile.txt效果如下查找进程ps -ef | grep xxx # 查找某个进程是否存在 比较常用 ps -ef -e 显示所有进程 -f 显示完整格式 | 管道符号 grep xx 查找是否存在xxx进程实操代码(查找zabbix进程前提是有开启过这个服务否则查找不到后续安装组件会经常使用)ps -ef | grep zabbix效果如下which显示系统命令所在目录which xxx # 出现信息说明有该命令 出现 no xxx in 说明没有这个命令实操代码which mysql which postgres which ls效果如下whereis 搜索命令/配置文件 所在目录 及帮助文档路径where xxx # 搜索命令所在目录 配置文件所在目录 帮助文档路径实操代码whereis mysql whereis passwd效果如下3、压缩和解压命令gzip 只能压缩文件 不能压缩目录gzip xxx # 压缩文件 为.gz的文件 gunzip/ gzip -d 将.gz文件解压实操代码# 创建目录 mkdir file1 # 创建文件 touch testfile.txt # 目录不能被压缩 gzip file1 #文件可以被压缩但是源文件不会被保留 gzip testfile.txt效果如下bzip2 只能压缩文件bzip2 [-k] xxx # 压缩成.bz2 -k 可以保留原文件压缩比高 bzip2 -d xxx / bunzip2 xxx # 解压.bz2的文件实操代码# 创建文件 touch aazip.txt #压缩文件并保留源文件 bzip2 -k aazip.txt # 解压文件(如果在源文件的目录解压会失败 可以用-df强行覆盖) bzip2 -d aazip.txt.bz2 bzip2 -df aazip.txt.bz2效果如下zip(压缩和解压文件/目录 后缀为 .zip)zip 压缩后文件名.zip 被压缩文件1 被压缩文件2 # 可选多个 zip -r 压缩后文件名.zip 压缩目录 #不带参数压缩空的包 unzip xxx.zip # 解压.zip 文件 如果存在源文件默认不会覆盖选择y可以覆盖实操代码touch azip.txt # 压缩 azip.txt 文件名azip.zip zip azip.zip azip.txt # 压缩目录 mkdir file1 #没有目录就创建目录 zip -r file1.zip file1 # 解压文件 unzip file1.zip效果如下tar文件/目录 打包详解最常用的是 tar.gz#解压 .tar.gz -C /xxxx/xx 指定解压目录 tar [-zxvf] xxx.tar.gz -C /xxx/xx #解压 .tar.bzip2 tar [-jxvf] xxx.tar.bz2 -C /xxx/xx #解压 .tar tar [-xvf] xxx.tar -C /xxx/xx -z #以gzip 压缩/解压 -x # 解压一个压缩文件 -v # 显示解压过程 -f # 指定文件名 必选 -j # 以bzip2 压缩 -c # 压缩文件后缀为tar -C # 指定解压到某个目录下 # 打包压缩 文件 .tar.gz tar [-zcvf] xxxx.tar.gz xxxx # 将 xxxx 打包压缩成 xxxx.tar.gz # 打包压缩 文件 .tar.bz2 tar [-jcvf] xxxx.tar.bz2 xxxx # 将 xxxx 打包压缩成 xxxx.tar.bz2打包压缩操作命令# 我会先创建文件夹然后再去进行打包 mkdir dir tar -zcvf dir.tar.gz dir mkdir dir2 tar -jcvf dir2.tar.gz dir2 mkdir dir3 tar -cvf dir.tar dir3效果如下解压命令tar -zxvf dir.tar.gz -C /home tar -jxvf dir2.tar.bz2 -C /home tar -xvf dir.tar -C /home效果如下4、系统关机命令shutdown (关机)shutdown [选项] 时间 -r # 重启 -h # 关机 -c # 取消上一个关机命令 # 立即关机 shutdown -h now # 定时关机 shutdown -h 20:00重启命令reboot5、linux常用快捷命令# 按 tab可以自动补全命令和文件名 ctrl c # 终止当前进程 ctrl z # 挂起当前进程 ctrl r # 查看历史命令 上下方向键也可以 ctrl l # 清屏 clear6、网络相关修改IP修改配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33配置文件# static 静态ip dhcp 动态ip none 不设置,默认静态ip BOOTPROTOstatic # 电脑的mac地址,建议去掉 HWADDR00:0C:29:3D:B0:9B # 电脑的UID建议去掉 UUID6f89eb5e-bff4-4f6b-a045-b7722bd188fc # 是否开机自动使用 ONBOOTyes # 设置network manager的参数,实时生效,修改后无需要重启网卡立即生效。建议删掉 nm_controlledyes # 网段2任意IP地址2固定网段为vmnet8的设置的IP网段Mac平台安装的需要将其设置为192.168.10.1 IPADDR192.168.10.101 NETMASK255.255.255.0 # 或者 PREFIX24 GATEWAY192.168.10.2 # 国内的DNS DNS1114.114.114.114 # 谷歌的DNS DNS28.8.8.8 # 默认的路由 建议删掉 defrouteyes # 如果为yes则ipv4配置失败禁用设备 建议删掉 IPV4_FAILURE_FATALyes重启网络#CentOS 6: service network restart #CentOS 7: systemctl restart network防火墙相关#查看防火墙运行状态 systemctl status firewalld #开启防火墙 systemctl start firewalld #关闭防火墙 systemctl stop firewalld #重启防火墙 systemctl restart firewalld #防火墙开机自启开启 systemctl enable firewalld #防火墙开机自启关闭 systemctl disable firewalldNetworkManager# 查看状态 systemctl status NetworkManager # 开启 NetworkManager systemctl start NetworkManager # 关闭 NetworkManager systemctl stop NetworkManager # 关闭开机自启 NetworkManager systemctl disable NetworkManager # 开启开机自启 NetworkManager systemctl enable NetworkManager网络通信ping 测试网络通信ping xxxx # 测试和xxx的通信 # 如配置好网络可以ping通baidu ping baidu.com电脑ip地址ifconfig ifconfig -a主机名IP映射进入hosts文件vim vim /etc/hosts修改主机映射# 主机名IP 主机名 127.0.0.1 xxx7、进程管理命令ps 查看系统中进程信息ps [-auxle] a显示所有用户的进程 u显示用户名和启动时间 x显示没有控制终端的进程 e显示所有进程包括没有控制终端的进程 l长格式显示实操命令# 查看系统进程 ps -aux ps -le ps -ef | grep mysqlkill 杀死进程kill [选项] PID kill -9 PID # 强行杀死进程 这里的PID是可以用 ps查找出来的 如 ps -ef | grep mysql kill -1 PID # 重启进程 killall -1 # 关闭所有进程w 查看用户信息w 用户名 w root # 查看root用户的信息 w xxx效果如下nohup 退出当前会话任然执行进程nohup 命令 [参数...] 输出文件 21 教学案例前期可以直接抄脚本去体验nohup 命令的使用即可vim test_nohup.sh将脚本写入到 test_nohup.sh#!/bin/bash # 这个脚本会每隔 5 秒输出一次时间共输出 10 次 for i in {1..10}; do echo [$(date)] Hello from background process: $i sleep 5 done echo Done.修改脚本权限可执行chmod x test_nohup.sh调用脚本nohup ./test_nohup.sh test_nohup.log 21 查看进程ps -ef | grep test_nohup.sh效果如下8、用户管理命令1、用户管理useradd添加用户 su 切换用户useradd [选项] 用户名 # 在系统中添加用户 whoami # 输出当前用户 su 用户名 # 切换到用户xxx实操代码useradd admin whoami su admin whoami效果如下passwd(修改密码)passwd [选项] 用户名实操代码# 切回root su root # 回车后输入不少于8位的密码 passwd admin # 输入 12345678两次即可将admin的密码设置未12345678效果如下userdel(删除用户)userdel [选项] 用户名 -r 同时删除宿主目录 ##慎用实操代码useradd testdel userdel testdel效果如下2、组管理groupadd添加组cat /etc/group # 查看已创建的用户组 groupadd 用户组 # 添加用户组 -g 指定gid实操代码groupadd admintest cat /etc/group效果如下groupmod修改组groupmod -n 新名字 旧名 -n 更改组名实操代码groupmod -n admin_test admintest cat /etc/group效果如下groupdel用户组删除groupdel admin_test # 如果用户组中还有用户无法被删除效果如下9、文件权限文件权限主要分为 可读 可写 可执行 可读 r read 可写 w write 可执行 x executechmod 修改文件或者目录权限用数字来表示权限r4w2x1-0 chmod 777 [-R] xxx # change mode 最大级别赋权 -R # 递归 chmod x xxx.sh #增加 xxx.sh 的可执行权限 chmod 1 xxx.sh #增加 xxx.sh 的可执行权限实操代码# 回收 test_nohup的可执行权限 # 分析 x 1 w 2 r 4 需要wr权限 可以设置为 666 ls chmod 666 test_nohup.sh ls效果如下chown 修改文件所有者权限chown # 更改文件/目录所有者 chown admin_test:admin test.txt #将文件的所有这更改未admin_test下的admin chown -R admin_test:admin file #将文件的所有这更改未admin_test下的admin实操代码# 创建用户组 添加用户 groupadd admin_test useradd -g admin_test admin111 # 创建文件 并修改文件归属用户 如果是目录使用 -R递归即可 touch test.sh chown admin111:admin_test test.sh效果如下chgrp(变更所属组)chgrp 用户组 文件 # 将文件更新为新的用户组实操代码chgrp admin_test test.sh效果如下10、镜像将镜像源替换成阿里源# 1. 切换到源文件的路径下 # 在这个路径下有若干个repo文件里面记录的就是源信息 # 网络镜像源在CentOS-Base.repo中 cd /etc/yum.repos.d mv CentOS-Base.repo CentOS-Base.repo.bak curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # 4. 重新构建YUM的缓存 yum clean all yum makecache11 、 安装文件rpm -- RedHat Package ManagerRedHat软件包管理工具rpm -i # 安装应用程序 [install] -vh # 显示安装进度 [ verbose hash] -U # 升级软件包 [update] -qa # 显示所有已经安装的程序 [query all] -e # 卸载软件包 [erase] # 查找有没有安装xxx包 rpm -qa | grep xxxx # 卸载某 安装包 --nodeps 强行卸载 rpm -e xxxx --nodepsyum [Yellowdog Updater Modified]yum install xxx -y # 通过yum源安装xxx -y 跳过中间步骤 有些需要输入 y才会继续12、ssh 服务器免密通信博主的服务器都做过了你们自己尝试一下不会的评论区留言#生成 公私钥 按三下回车 ssh-keygen -t rsa # 将公钥发送到需要做免密的其他机器 ssh-copy-id usernameremote_host # 比如有另一台服务器 ssh-copy-id root192.168.10.1013、文件传输scp [选项] 文件/目录 用户接受文件的服务器:目录 -R # 递归目录实操代码服务器已经做过免密cd touch test.txt # 将文件发送到slave1的目前服务器的当前目录 scp test.txt rootslave1:$PWD效果如下14、服务器时间同步直接抄即可# 没有的安装一下 yum install ntpdate -y # 同步阿里云的时间 ntpdate -u ntp.aliyun.com # 使用调度器定时同步时间 crontab -e * * * * * /usr/sbin/ntpdate -u ntp.aliyun.com /dev/null 21 至此第一篇已经结束了大家有没有好好学习呢如果只有一个虚拟机的其实有些命令没法学习和测试大家将手里的虚拟机克隆出来修改IP再去进行部分命令的练习吧。接下来 就需要去安装mysql了其实csdn中有许许多多的教程我还是推荐我的教程因为没有坑可以一次完成虚拟机多的可以直接搭建主从mysql。后续的教程博主也会抽时间写出来的如果有帮助到大家还是给博主点关注不迷路。大数据之路至此开始了