liunx基本命令使用方法(四)
vi 命令的使用
正常编辑的步骤第二篇博客已经阐述。接下来说下在vi中复制粘贴遇到的坑。
注:很多小伙伴从其他文档复制内容粘贴到使用vi命令打开的文件中,出现首行丢失等内容不完整的现象。
解决办法:vi打开的文件必须按 i 键进入编辑模式,再进行粘贴。
使用vi打开文件查找关键词:vi打开文件,按shift+:进入尾行模式。输入:/关键词,回车光标自动跳到关键词所在的行,按N键寻找下一个关键词
设置行号
set nu 显示行号(按shift+:进入尾行模式输入:set nu)
20 # Root password
21 rootpw --iscrypted $6$8TKBzKEIaOfvtp47$ecF0zJqdF5QSqUmNMsKT35aAAS0EstXE8fvP40uaXn7iYxqREd0QUqeh5inX88yAbYrqm6sEjLWPrlafE8E9l0
22 # System services
23 services --disabled="chronyd"
:set nu
set nonu 关闭显示 (按shift+:进入尾行模式输入:set nonu)
network --bootproto=dhcp --device=eno16777736 --ipv6=auto --activate
network --hostname=localhost.localdomain
# Root password
rootpw --iscrypted $6$8TKBzKEIaOfvtp47$ecF0zJqdF5QSqUmNMsKT35aAAS0EstXE8fvP40uaXn7iYxqREd0QUqeh5inX88yAbYrqm6sEjLWPrlafE8E9l0
# System services
services --disabled="chronyd"
:set nonu
vi 清空文件这个内容
命令行模式常见的快捷键:
dd 删除当前行
dG 删除光标当前及以下的所有行
ndd 删除光标当前及以下的n行
gg 跳转到第一行的第一个字母
G 跳转到最后一行的第一个字母
shift+$ 行尾
gg + dG
注意:使用VI编辑官方配置文件时,请先备份。
系统命令
df -h 查看磁盘
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 18G 1.1G 17G 6% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 81M 7.7G 2% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sda1 497M 125M 373M 25% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/0
free -m 查看内存
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 15872 238 15129 80 503 15282
Swap: 2047 0 2047
top 查看负载
[root@localhost ~]# top
top - 10:27:40 up 1 day, 13:25, 1 user, load average: 0.05, 0.03, 0.14 ( 后面三个数字分别代表不同时间段即一分钟、五分钟和十五分钟的系统平均负载。 超过10请及时检查服务器)
Tasks: 374 total, 1 running, 373 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16253248 total, 15491340 free, 246108 used, 515800 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 15647308 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
50472 root 20 0 0 0 0 S 0.3 0.0 0:00.94 kworker/0:0
1 root 20 0 44908 7640 2608 S 0.0 0.0 0:34.58 systemd
注意:查看负载发现有一个进程CPU占用超过100%以上,可能是代码的问题,如果相同的代码在其他机器运行没问题,极可能是硬件问题,建议重启服务器。
查看进程 查看端口号
进程
[root@localhost ~]# ps -ef|grep ssh
root 1497 1 0 11月16 ? 00:00:08 /usr/sbin/sshd -D
root 27971 1497 0 11月17 ? 00:00:00 sshd: root
root 49315 1497 0 08:59 ? 00:00:00 sshd: root
root 49607 1497 0 09:08 ? 00:00:00 sshd: root
root 50297 1497 0 09:35 ? 00:00:00 sshd: root@pts/0
root 51921 1497 0 10:39 ? 00:00:00 sshd: root
root 51979 1497 0 10:42 ? 00:00:00 sshd: root
root 51993 1497 0 10:43 ? 00:00:00 sshd: unknown [priv]
sshd 51994 51993 0 10:43 ? 00:00:00 sshd: unknown [net]
进程用户 进程的pid 父id 进程用户的内容(进程所属的目录 log -Xmx -Xms)
查看端口号
netstat -nlp
[root@localhost ~]# netstat -nlp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1497/sshd
tcp6 0 0 :::22 :::* LISTEN 1497/sshd
通过pid找port
运行、查看服务
centos 6.x运行服务的命令 service 服务名称 start
centos 7.x运行服务的命令 systemctl start 服务名称1 名称2 ...
centos 6.x查看服务的命令 service 服务名称 status
centos 7.x运行服务的命令 systemctl status服务名称1 名称2 ...
[root@localhost ~]# ps -ef | grep ssh
root 1497 1 0 11月16 ? 00:00:08 /usr/sbin/sshd -D
root 27971 1497 0 11月17 ? 00:00:00 sshd: root
root 49315 1497 0 08:59 ? 00:00:00 sshd: root
root 49607 1497 0 09:08 ? 00:00:00 sshd: root
root 50297 1497 0 09:35 ? 00:00:00 sshd: root@pts/0
root 51921 1497 0 10:39 ? 00:00:00 sshd: root
root 52063 1497 0 10:45 ? 00:00:00 sshd: root
root 52191 1497 0 10:49 ? 00:00:00 sshd: root
root 52235 1497 0 10:51 ? 00:00:00 sshd: root
root 52270 1497 0 10:53 ? 00:00:00 sshd: [accepted]
sshd 52271 52270 0 10:53 ? 00:00:00 sshd: [net]
注意: 在centos部署大数据组件,发现一个错误 Connection refused 防火墙 web iptables
使用以下方法检测IP和端口:
ping ip
telnet ip port ip和端口号
0.0.0.0:22 当前的ip
:::22 当前的ip
192.168.0.3:22 当前的ip
----------------------------
127.0.0.1:22 本地自己访问自己 window和其他服务器无法进行访问
高危的命令
rm -rf /
vi 修改或者情况文件内容
kill -9 进程pid
kill -9 进程pid 进程pid 进程pid
kill -9 $(pgrep -f 匹配关键词)
杀进程之前,先ps 找到相关的进程,搞清楚,哪些是你要杀的,不然造成生产事故
安装 、卸载软件
安装
yum search xxx
yum install -y xxx-yyy
yum remove xxx-yyy
[root@localhost ~]# yum install httpd -y
卸载
rpm -qa | grep http
rpm -e --nodeps httpd-tools-2.4.6-90.el7.centos.x86_64
--nodeps 不校验,直接删除
wget :下载文件
wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.16.2.tar.gz
压缩解压
zip 压缩
zip +文件名称 +路径
[root@localhost ~]# zip -r 11 1/* (在文件外面压缩)
adding: 1/2/ (stored 0%)
[root@localhost ~]# zip -r 11 ./* ()在文件里面压缩)
adding: 1/ (stored 0%)
adding: 1/2/ (stored 0%)
adding: 1/2/3/ (stored 0%)
adding: anaconda-ks.cfg (deflated 39%)
adding: a.pl (deflated 74%)
adding: bash.tgz (deflated 0%)
adding: perl.tar (stored 0%)
unzip 解压缩
[root@localhost ~]# unzip 11.zip
tar
参数说明 -c: 建立一个压缩文件的指令参数 (crate的缩写);
-x:解开一个压缩文件的参数指令;
-t:查看tarfile里面的文件
特别注意:c/x/t/ 只能存在一个!不能同时存在!
-z:是否同时角有gzip的属性,即是否需要使用gzip压缩
-j:是否同时具有bzip2的属性,即是否需要使用bzip2压缩
-v:压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
『 tar -zcvPf tfile sfile』才正确
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!
tar -xzvf 压缩文件
tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!
tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
查阅 /tmp/etc.tar.gz 文件内有哪些文件?
tar -ztvf /tmp/etc.tar.gz
由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,
就得要加上 z 这个参数了!这很重要的!
tar -czvf 解压缩
将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下
cd /usr/local/src
tar -zxvf /tmp/etc.tar.gz
在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,
我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz ,
则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc
则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!
在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已
cd /tmp
tar -zxvf /tmp/etc.tar.gz etc/passwd
我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!
将 /etc/ 内的所有文件备份下来,并且保存其权限!
tar -zxvpf /tmp/etc.tar.gz /etc
这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!
在 /home 当中,比 2005/06/01 新的文件才备份
tar -N '2005/06/01' -zcvf home.tar.gz /home
我要备份 /home, /etc ,但不要 /home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!
cd /tmp
tar -cvf - /etc | tar -xvf -