五、Linux中基本的常用命令 1、命令的格式: 命令本身 【-可选项】【操作的对象】 ls -l /opt 由于单个命令表示一种功能,那么使用不同的选项用来区分不同的功能 某些命令不需要加任何的选项就可以执行,也不需要操作对象 命令之间以空格隔开 2、命令:pwd -》作用:显示当前用户所在的路径,绝对路径显示 . 当前文件 .. 父级目录 绝对路径就是从 / 到我们的当前目录 cd opt/ 或者 cd ../opt/ 相对路径 cd /opt/ 绝对路径 3、命令:clear -》作用:清楚屏幕,刷新屏幕 -》快捷键:ctrl+l 同样的清除屏幕的功能 4、命令:cd -》作用:移动到任何指定的目录下 -》可以跟上cd ..表示移动返回到上一级的目录 5、查看命令:ls # ls -l显示详细信息 # ls -a显示所有的文件,包括隐藏文件 -》在Linux中前缀为.的就表示隐藏文件 # ls -la 选项之间是可以结合一起使用的,不需要加多个-横杠 # ls -d /etc/只查看目录或者文件本身的属性 -》注意选项之间大部分情况下是不分前后顺序的,某些特殊的选项会区分 6、创建: mkdir 创建目录 # mkdir test_data # mkdir "t1 t12" # mkdir t1 tw 带空格的目录的时候要加标识 "" '' 都可以使用 # mkdir -p test_data01/data02 -》选项:-p表示可以一次递归创建多个目录 touch 创建文件 # touch bf.txt # touch "pro file" -》注意:创建带有空格命名的文件时候需要加上引号 -》让系统识别,它们是一个整体 -》不建议在创建的时候命名带有空格 删除: rmdir 删除一个空目录 # rmdir bf_data/ rm 删除一个目录或者是文件 # rm bf.txt # rm -r test_data 删除目录 # rm -rf test_data01/ 不询问,直接删除,建议使用的时候要谨慎 选项:-r -f 拷贝: cp # cp file bf_data/ # cp -r data99/ bf_data/ 选项:-r表示目录 命令本身 【源路径】【目标路径】 剪切: mv # mv "pro file" bf_data/ 命令本身 【源路径】【目标路径】 重命名: # mv file beifeng.txt 不移动位置可以直接更改名称 # mv "pro file" bf.list 查看的几种方式: cat 查看普通文件 # cat /etc/hosts more 分页查看文件,适合内容较多的文件 -》按空格翻页查看 -》按回车逐行查看 -》按q退出more的浏览状态 less 分页查看文件,适合内容较多的文件,支持向上或向下翻滚 -》按空格翻页查看 -》按回车逐行查看 -》按q退出more的浏览状态 head 查看文件的前几行 # head -5 /etc/passwd head后面直接跟上需要查看的行数,默认不加参数就是10行 tail 查看文件的末尾几行 tail后面直接跟上需要查看的行数,默认不加参数就是10行 # tail -3 /etc/passwd 选项:-f 滚动实时查看,比较实用 九、vi编辑器 vi和vim在基本的使用上是一致的,但是vim兼容了vi的所有功能,加入了一些新的特性 -》命令模式 -》编辑模式 -》最后行模式 -》wq! 感叹号表示强制操作 -》另外的保存方式:命令模式下使用大写ZZ 或者 shift + zz(小写) -》另外的保存方式:在最后行模式下使用小写x -》快捷键: 显示行号:set nu 在最后行模式下使用 删除:小写dd 命令模式使用,可以删除多行,比如三行:3dd,还带有剪切的功能 撤销:小写u 命令模式使用 黏贴:小写p 命令模式使用 复制:小写yy 可以同时复制多行,命令模式使用,比如3yy 移动:大写G 移动到末尾,小写gg 移动到第一行 命令模式使用 关键字:在最后行模式下使用,比如搜索root,:/root 替换:1,$s/nologin/666/g -》1代表第一行 -》$代表最后一行 -》1,$代表一个替换的范围 -》s代表替换 -》/nologin/666/ 替换和被替换的内容 -》g代表通行的意思 .swp 在vi的时候非正常关闭 crtl+z 或者是多命令行同时 编辑一个文件的时候,会生成一个.swp文件 vi -r passwd 恢复文件内容 然后删除 .swp文件
Linux中的搜索命令 命令:find 搜索是会占用很大资源的,所以尽量避免高峰期进行搜索 搜索的范围尽量的缩小,可以减少搜索的时间和占用的资源 语法格式: find【搜索范围】【搜索条件】 1、文件名搜索,选项:-name,-iname # find / -name init *代表Linux中的通配符,表示匹配任意字符,可重复的 ?代表Linux中的通配符,表示匹配单个字符 Linux中严格区分大小写 # find /etc/ -name *init* -》查找包含关键的所有文件 # find /etc/ -name init* -》查看包含关键字开头的所有文件 # find /etc/ -name init??? -》查看包含关键字的指定个数的文件 # find /etc/ -iname init???-》不区分大小写查找文件 2、文件大小搜索,选项:-size -》单位:Linux中存储的最小单位是数据块,一个数据块的大小:512字节 -》100MB文件,1MB=1024KB,100MB=102400KB,102400*2=204800数据块 # find / -size +204800 +号表示大于,-号表示小于 3、文件所有者&所属组,选项:-user、-group # find /root -user root # find /root -group root 4、文件类型,选项:-type # find /etc/ -name init* -a -type f # find /etc/ -name init* -a -type d -a表示and,连接,代表整个表达式前后的条件必须都满足,才成立 f表示文件file d表示目录data 帮助命令 man + 命令 查看命令的用法 # man ls 类似的用法 # ls --help
如果是目录 数字 2 代表的是目录中有几个文件及子文件夹
如果是文件 数字 代表的是硬链接数
ln file.txt file1 硬链接
ln -s file.txt file2 软连接 相当于win里的快捷图标
最后行模式 shift + : 1,$ s/nologin(旧内容)/666(新输入)/g
一、grep过滤 -c:只输出匹配行的计数。 -i:不区分大小写(只适用于单字符)。 -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及 行号。 -s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行。 grep -i --color 'Ro' /etc/passwd 大小写忽略 # grep -i --color 'Anonymous' passwd -B5 -a -A5 二、管道符|、追加/覆盖符号 命令未结束符号 1、用竖线表示 | : 表示将前一个命令的输出结果传递给后面的命令处理,两边都是命令 $ cat /etc/passwd | more 1)、grep:过滤筛选 $ cat /etc/passwd | grep 'root' 2)、过滤条件 $ ifconfig | grep 'inet' $ ls /dev | grep 'cdrom' 5、追加和覆盖 1、追加 >>:以追加的方式将命令正确的结果输出到文件或设备中区 date >>1.txt echo '123' >>1.txt 假如命令错误 data 2>> 1.txt 2、覆盖 date >1.txt 假如命令错误 data 2> 1.txt 标准输入 0 从键盘获得输入 标准输出 1 输出到屏幕 错误输出 2 输出到屏幕 4、 表示命令未结束换行继续 注意: 后面不能任何字符,直接回车 $ cat /etc/sysconfig/ > network-scripts/ifcfg-eth0 cat /etc/sysconfig/ network-scripts/ifcfg-eth0 三、正则表达式 1、过滤包含数字的行 # grep '[0-9]' /etc/passwd grep '[0-9][0-9][0-9]' /etc/passwd # grep ':[0-9][0-9][0-9]:7' /etc/passwd # grep '^r.*n$' /etc/passwd “[a-z]”“[0-9]”“[A-Z]” [A-Z][0-9][0-9] = B02 【举例】提取ifconfig命令中的IP地址,使用sed命令 # ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | sed 's/inet addr://g' | sed 's/Bcast.*//g' 补充命令 5、wc(word count)统计命令:统计单词、字符、行数,支持管道符号 $ wc file.log 1 4 19 file.log 行数 单词数 字节数 $ wc -l /etc/passwd 统计行数 $ cat /etc/passwd | wc -l 6、df -l -h 显示当前各个硬盘分区的使用情况 7、du -h 统计文件或目录的大小
关闭防火墙和安全子系统 (Hadoop HBase这样的分布式集群应用需要) --》在联机应用(分布式)中,一般会关闭防火墙。防火墙默认情况下,出于安全考虑会限制一些应用的网络访问(比如rpc通信端口),为了保证多机通信的稳定,可以选择关闭防火墙 1.关闭防火墙并且不开机启动 SERVICE chkconfig | grep 'i' 1).关闭Linux 防火墙 # service iptables status ##查看防火墙状态 iptables: Firewall is not running. # service iptables stop ##关闭防火墙 service iptables restart 2).设置不开机启动防火墙 # chkconfig iptables off ##不随机启动 3).查看防火墙的开机启动设置 $ sudo chkconfig --list | grep iptables 2.关闭安全子系统 # vi /etc/sysconfig/selinux SELINUX=disabled 这里不用去修改 创建虚拟机的时候一定要选择桌面版 vi /etc/inittab # 0 - halt (Do NOT set initdefault to this):关机 # 1 - Single user mode:使用单用户模式 # 2 - Multiuser, without NFS (The same as 3, if you do not have networking):使用多用户 # 3 - Full multiuser mode:完全多用户 # 4 - unused # 5 - X11:图形化 # 6 - reboot (Do NOT set initdefault to this):重启 把默认值修改为3,就会开启命令行模式 init 0 等等 reboot 五、sudo 权限 1、操作对象是系统命令 2、命令: # visudo 管理员(root)身份执行 或者# vi /etc/sudoers 3.配置sudo # visudo ## Allow root to run any commands anywhere root ALL=(ALL) ALL hadoop ALL=(root) NOPASSWD: ALL 三个ALL到底是什么意思。 第一个ALL是指网络中的主机,我们后面把它改成了主机名,它指明hadoop用户可以在此主机上执行后面的命令。 第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令。 最后一个ALL当然就是指命令名了。 4.使用:在需要root用户操作的时候,在原来命令的前方加sudo $ vi /etc/hosts "/etc/hosts" [readonly] 3L, 189C $ sudo vi /etc/hosts 4、which和whereis命令 whereis定位可执行文件、源代码文件,定位文件在文件系统中的位置 which同样也是可以定位文件的位置 which shutdown whereis shutdown 六、Linux中的压缩命令 1、gzip,压缩时不保留原文件 2、gzip,不能压缩目录 3、不能重命名 压缩前:1668 11月 19 11:24 passwd 压缩后:697 11月 19 11:24 passwd.gz gzip: test/ is a directory -- ignored 3、bzip2适用于一些内容和数据较大的文件进行压缩 4、tar包格式压缩 首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩 则是将一个大的文件通过一些压缩算法变成一个小文件。 -c:建立新的备份文件 -x:从备份文件中还原文件; -v:显示指令执行过程; -z:通过gzip指令处理备份文件; -f:指定备份文件; 打包:#tar -cvf test.tar test/ 注意:-f必须放在选项的最后 打包完成之后再压缩 gzip test.tar 解包:# tar -xvf beifeng100.tar -C /opt/ 结合 tar 和 gzip 命令使用 -C :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项 .tar.gz格式打包:# tar -cvzf beifeng100.tar.gz beifeng100/ .tar.gz格式解包:# tar -zxvf beifeng100.tar.gz -C /opt/rh/ 解压的目录不在当前目录 选项:-C 重定向,注意是大写 [root@acSG9892536 -# docker save -o ingress.contr.tar quay. io/kubernet es-ingress-controller/nginx-ingress-controller:0.25.0 将镜像封装
[rootacSG9892536 -]# tar -zcvf ingress.contr.tar.gz ingress.contr.tar 压缩
sz ingress.contr.tar.gz 导出
rz 导入
tar -zxvf ingree.contro.tar.gz 解压
docker load -i ingree.contro.tar docker将压缩镜像导入
七、Linux中的软件包管理方式 1、软件包的类型 -》源码包(脚本) -》二进制包(rpm、系统默认包) -》经过编译后的(看不到源码) -》管理方便:安装、卸载、升级、查看 -》安装速度快 -》依赖性 A->B->C->D.....互相依赖 挂载光驱:# mount /dev/sr0 /media 2、rpm管理方式 -》管理.rpm结尾的包 -》查询: rpm -qa q表示查询,a表示所有 -》查询所有已经安装好的包 -i:显示套件的相关信息; -v:显示指令执行过程; -h:套件安装时列出标记; --安装 rpm -ivh httpd-devel-2.2.15-26.el6.centos.x86_64.rpm 失败的 rpm -ivh httpd-manual-2.2.15-26.el6.centos.noarch.rpm 成功 --卸载 rpm -e httpd-manual-2.2.15-26.el6.centos.noarch.rpm error: package httpd-manual-2.2.15-26.el6.centos.noarch.rpm is not installed rpm -e httpd-manual-2.2.15-26.el6.centos.noarch --查看 (已经安装)# rpm -qa | grep 'httpd' # rpm -qa | grep jdk # rpm -qa | grep mysql 选项:--nodeps:不检测依赖性,一般建议在试验环境使用 3、yum管理方式 -》使用的前提条件,需要连接到网络 -》查询: # yum list查询已经安装好的包 # yum list | grep 'httpd' -》安装: 选项:install ,选项:-y 直接确认 # yum -y install httpd-devel.x86_64 -》卸载: 选项:remove # yum -y remove httpd-devel.x86_64 -》yum仓库: 地址:/etc/yum.repos.d/ gpgkey 校验码 gpgcheck=1 开启校验,0是关闭校验 如果你的yum源不能使用,可以网上找一下更换yum源 50G 20G 八、磁盘管理 1、查看当前磁盘使用情况 df -h 2、磁盘命令 # fdisk -l brw-rw---- 其中b代表的是块设备文件 sda代表第一块硬盘,s代表接口,d代表disk磁盘 sda1/2...代表硬盘中的分区 硬盘接口: sata sas-》服务器方面 scsi ide-》个人电脑方面 SSD固态 3、cylinders磁柱-》就是查看分区情况 -》起始和结束 4、添加磁盘之前先关机,关闭所有的进程 5、分区 # fdisk /dev/sdb 输入m查看帮助信息 输入n进行分区 e extended -》扩展分区 p primary partition (1-4)-》主分区 主分区+扩展分区<=4 必须保证要有一个扩展分区 2+1或者3+1的模式 主分区分完格式化之后可以直接使用 扩展分区分完之后还需要进行逻辑分区才能使用 注意: 分完区之后按 w 进行信息的保存 分完区之后建议重启机器,让系统重新加载一次信息 6、格式化磁盘 Linux中的文件系统 ext2、ext3、ext4、xfs等 格式化命令:mkfs.ext4 /dev/sdb6 7、挂载磁盘 挂载临时命令:mount mount /dev/sdb5 /mnt 挂载点:是访问这个分区的唯一入口,是必须已经存在的 使用:df -h来验证是否挂载成功 永久生效的挂载方法: # vi /etc/fstab 写入配置文件 /dev/sdb5 /mnt ext4 defaults 0 0 九、克隆虚拟机 VMware 1.关闭Linux系统 关机:init 0 ; poweroff ; halt; shutdown 重启:init 6 ; reboot 2.虚拟机--》管理 --》克隆 选择完整克隆而非克隆链接 3.克隆出来的虚拟机 要修改主机名还有ip地址,关键是要修改网卡信息 4.# vi /etc/hosts 修改主机映射:个人的配置为: 192.168.195.11 bigdata02 # vi /etc/sysconfig/network 修改主机名 个人的配置为:apache(原)--》apche clone(克隆) 5.网卡的信息(mac地址HWADD) # vi /etc/udev/rules.d/70-persistent-net.rules 删除原来的网卡信息通过mac地址来区分,删除原来的信息 并将新的网卡的name信息改为eth0 6.重命名网卡配置名称 # mv /etc/sysconfig/network-scripts/ifcfg-Auto_eth1 /etc/sysconfig/network-scripts/ifcfg-eth0 # vi /etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTO=static # service network restart 7.修改网卡名称:将Auto_eth1 修改为System eth0 # PCI device 0x8086:0x100f (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:8f:24:b5", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" 8.# reboot 重启虚拟机(因为修改了主机名) 同时修改windows中主机映射,增加: C:WindowsSystem32driversetchosts 192.168.195.101 bigdata02 十、系统管理命令 1、top -》 查看当前系统的资源和任务,3秒刷新一次 Swap交换分区-》类似windows中的虚拟内存概念 -》按q退出浏览的状态 2、free -》 查看当前系统内存资源的情况 选项:-m 表示mb 3、netstat -》打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况 -》-t:表示TCP网络协议,三次握手,更安全 -》-u:表示UDP网络协议,直接传输数据,传输快,不稳定 -》-l:表示监听端口,listen -》-r:表示路由器,查看网关 -》-n:表示IP地址和端口号 -》-a:显示所有socket,包括正在监听的。 第一种用法: # netstat -tlun 查看系统已经开启的监听端口 第二种用法: # netstat -an -》a表示all全部的意思 查看系统已经开启的监听端口以及正在连接的网络程序 第三种用法: # netstat -rn # route -n同样也是单独查询路由信息 4、ps命令用于报告当前系统的进程状态 ps -ef kill结束系统进程命令 jps $ kill -9 2287 -9表示强制关闭,类似windows中的结束任务