Linux基础命令(centos)
1.Linux基础命令
1.1 查看文件
-
cat – 用于连接文件并打印到标准输出设备上
cat /etc/issue -
more --类似cat命令,以分页的方式显示文件内容
ls -l |more -
less --与more类似,但使用less可以随意浏览文件
ps -ef| less
history| less -
head --用于显示文件的开头至标准输出中
head -n 20 /etc/fstab
ps -ef| head -
tail --用于显示文件的末尾至标准输出中
tail -n 20 /var/log/messages
tail -f /var/log/messages
1.2 文本处理
-
vim是vi改进版本,程序员的文本编辑器
vim常用模式
命令模式
插入模式
ex模式
可视模式
-
grep文本过滤
grep – 命令用于查找文件里符合条件的字符串
grep [-abcEGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][–help][范本样式][文件或目录…]
# 查看文本 grep test filee grep -v test file grep -iRn test dir grep -A 10 -B 10 test file grep -E -w -o "/.*\w*/.conf" #正则匹配"/*/xxx.conf"配置文件的纯路径单词 grep 'model name' /proc/cpuinfo # 查看CPU型号 grep -E -v "^#|^$" /etc/fstab #显示/etc/fstal的有效内容(不显示空行和注释行) grep -iRn rot /root #搜索/root目录下的所有文件,显示包含"rot"关键字的行 grep -c "48" test.txt #统计所有以“48”字符开头的行有多少 grep -i "May" test.txt #不区分大小写查找“May”所有的行) grep -n "48" test.txt #显示行号;显示匹配字符“48”的行及行号,相同于 nl test.txt |grep 48) grep -v "48" test.txt #显示输出没有字符“48”所有的行) grep "471" test.txt #显示输出字符“471”所在的行) grep "48;" test.txt #显示输出以字符“48”开头,并在字符“48”后是一个tab键所在的行 grep "48[34]" test.txt #显示输出以字符“48”开头,第三个字符是“3”或是“4”的所有的行) grep "^[^48]" test.txt #显示输出行首不是字符“48”的行) grep "[Mm]ay" test.txt #设置大小写查找:显示输出第一个字符以“M”或“m”开头,以字符“ay”结束的行) grep "K…D" test.txt #显示输出第一个字符是“K”,第二、三、四是任意字符,第五个字符是“D”所在的行) grep "[A-Z][9]D" test.txt #显示输出第一个字符的范围是“A-D”,第二个字符是“9”,第三个字符的是“D”的所有的行 grep "[35]..1998" test.txt #显示第一个字符是3或5,第二三个字符是任意,以1998结尾的所有行 grep "4\{2,\}" test.txt #模式出现几率查找:显示输出字符“4”至少重复出现两次的所有行 grep "9\{3,\}" test.txt #模式出现几率查找:显示输出字符“9”至少重复出现三次的所有行 grep "9\{2,3\}" test.txt #模式出现几率查找:显示输出字符“9”重复出现的次数在一定范围内,重复出现2次或3次所有行 grep -n "^$" test.txt #显示输出空行的行号 ls -l |grep "^d" #如果要查询目录列表中的目录 同:ls -d * ls -l |grep "^d[d]" #在一个目录中查询不包含目录的所有文件 ls -l |grpe "^d…..x..x" #查询其他用户和用户组成员有可执行权限的目录集合
-
wc计算字数
wc file wc -l file w | wc -l #查看CPU数量 grep processor /proc/cpuinfo | wc -l
-
sed文本处理,利用script来处理文本文件
#将文本中"This"替换为"That" sed 's/This/That' test.txt #从第2处匹配开始替换 echo sksksksksksk | sed 's/sk/SK/2g' #删除中的空白行 sed '/^$/d' test.txt #删除文件第2行 sed '2d' test.txt
-
uniq删除文本重复行
uniq命令用于检查及删除文本文件中重复出现的行列# 删除重复行 uniq testfile # 统计重复行数 uniq -c testfile # 只显示重复的行 uniq -d testfile
-
awk处理文本文件语言,强大的文本分析工具
#查看各挂载点的可用空间 df-h |awk '{print $1,$4}' #查看每个用户shell awk -F ':' {print $1,$7} /etc/passwd #查看长度大于80字节的日志信息 awk 'length>80' /var/log/messages
1.3 传输文件
-
Linux/Unix同Window文件传输
- rz,sz是Linux/Unix同Window文件传输的命令行工具,进行Zmodem。使用方法如下:
- linu端需要安装rz/sz命令,也就是lszrz包;
- Window端需要支持ZModem的telnet/ssh客户端(Xshell,SecureCRT支持)
- 运行命令rz,即接收Windows文件,xshell就会弹出文件选择对话框,选好文件后关闭对话框,文件就会上传到linux里的当前目录。
- 运行命令sz file,就是发文件到Windows上(保存的目录是可以配置),比ftp命令方便多,而且服务器不用再开FTP服务;
- 提示:rz、sz命令 系统可能没有安装,软件包的名字是[rzsz]
- rz,sz是Linux/Unix同Window文件传输的命令行工具,进行Zmodem。使用方法如下:
-
Linux间文件复制
- scp是linux系统下基于ssh登录进行安全的远程文件拷贝命令
scp [可选参数] file_source file_target scp loca_file remote_ip:remote_file scp -r local_folder remote_ip:remote_folder scp -P 4588 aaa@qq.com_ip:/usr/local/sin.sh /home/administrator
1.4 文件类其他命令
-
find 命令用来再指定目录下从查找文件
find . -name "*.c" find . -type f find . -ctime -20 find /var/log -type f -mtime +7 -ok rm{} \; find . -tye f -perm 644 exec ls -l {} \; find / -type f -size 0 -exec ls -l {} \;
-
pwd查看当前目录
pwd [-L] pwd -P
-
pwdx查找程序执行路径
pwdx PID
-
mount 命令是经常会用命令,用于挂载Linux系统外文件
mount /dev/sdb1 /mnt mount -o ro /dev/sdb1 /mnt mount -o oop /tmp/image.iso /mnt/cdrom
1.5 进程类
-
ps命令用于显示当前进程状态
ps -ef|grep http ps aux|grep http ps -A ps -u root
-
top命令用于显示实时process进程状态
可以看到load average/CPU使用率/内存使用率#当服务器中某个服务进程内存或者CPU资源消耗非常严重时,查看特定进程 top -p PID #查看特定用户的进程情况 top -u USERNAME
-
kill关闭进程
kill 12345 kill -KILL 123456
-
nohup 不挂断运行命令
nohup ./start.sh & nohup ./start.sh > start.log
-
lsof 命令用于查看进程打开文件,打开文件进程,进程打开的端口(TCP/UDP)
lsof abc.txt lsof -c abc lsof -i:8080 #列出所有打开的文件 lsof #找出哪些进程在使用/tmp/ lsof /tmp #列出所有mysql用户打开的文件 lsof -u mysql #列出进程号为1的进程打开的文件 lsof -p 1
1.6 系统类
-
hostmane 命令用于显示和设置系统主机名称
#生产环境不能修改主机名 hostname -F hostname -s
-
uptime命令能够打印系统总共运行市场和系统平均负载
uptime 14:54:05 up 1 day, 21:07, 0 users, load average: 0.01, 0.02, 0.05 #系统当前时间 uptime 15:31:30 #主机已运行时间,时间越大,机器越稳定up 1 day, 21:07 #用户连接数,是总连接数而不是用户数 0 users #系统平均负载, load average: 0.01, 0.02, 0.05,分别表示1分钟,5分钟,15分钟平均负载
load average(系统平均负载):
load average 就是一定 时间内计算机有多少active_taks,也就是计算机的任务执行队列的长度,cpu计算 的队列。load average计算,有多少核心即为于多少负载原则; -
nproc命令查看CPU数量
-
pssh工具箱
pssh是可以并发在多台机器上批量执行命令的工具,系统默认不安装;包括一下命令:- pssh:在远程多台主机上并行运行命令
- pscp:把文件并行复制到多台远程主机上
- prsync:使用rsync协议本地文件同步到远程多台主机上
- pnuke:在远程多台主机上并行killall某进程
- pslurp:把文件从远程多台主机上复制到本地主机上
-
pssh命令
#pssh命令主要用于查看,如修改需要做好操作前测试 #连接到host1和host2运行uptime pssh -i -H "host1 host2" uptime #连接到ip.txt列表里的主机,运行uptime pssh -i -h ip.txt uptime #运行长命令不超时 pssh -i -h ip.txt -t 0 sleep 10000
-
远程复制
#批量传送本地文件到"目标机器" pscp -h ip.txt local remote #批量传送"目标机器"文件到本地 pslurp -h ip.txt -L localdir remote local #通过rsync协议批量传送本地文件到"目标机器",使用admin用户 prsync -h ip.txt -l admin local remote
-
iostat用于输出CPU和磁盘I/O相关统计信息
#查看所有磁盘IO iostat #查看sda磁盘IO,每次相隔2秒,查看5次 iostat sda 2 5
2.NTP
2.1 NTP介绍
Network Time Protocol(NTP,网络时间协议)用于同步它所有客户端时钟的服务;它可以再大规模的设备范围内同步矫正
时间到ms级别精度;在网络稳定的局域网内,精度甚至可以达到微秒级;
2.2 NTP时间来源
- GPS、北斗等卫星系统
- 原子钟
- 移动基站
- 恒温晶振
2.3 NTP配置
-
安装NTP服务
- 检查NTP服务是否安装
rpm -q ntp
- 安装NTP服务
yum install ntp
- 检查NTP服务是否安装
-
配置NTP客户端
-
NTP配置文件
/etc/ntp.conf -
内容查看
查看server开关配置内容
server ntp1.tbsite.net iburst minpoll 4 maxpoll 6
server ntp2.tbsite.net iburst minpoll 4 maxpoll 6
-
-
NTP服务管理
- 服务状态查看
service ntpd status
- 服务启用
service ntpd start
- 服务重启
service ntpd restart
- 服务开启启动
chkconfig ntpd on
- 服务状态查看
-
NTP常用命令
-
查询NTP服务器时间
ntpdate -q ntp1.aliyun.com
-
查询NTP时间同步情况
ntpq -p
-
3.软件管理
3.1 yum源配置
- yum配置文件
- /etc/yum.repos.d/*.repo
- 配置文件内容
- [名称]-yum源的名称
- name-yum源的描述信息
- baseurl-yum源地址
- gpgcheck是否检查GPGKEY
- enabled是否可用
3.2 yum常用命令
#安装
yum install 全部安装
yum install package1 安装指定安装包package1
yum groupinstall group1 安装程序组group1
#更新升级
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新程序
yum groupupdate group1升级程序组group1
#查找和显示
yum info package1 显示安装包信息package1
yum list 显示所有已经安装和可以安装的数据包
yum list package1 显示指定程序包安装情况package1
yum groupinfo group1 显示程序组group1信息
yum search string 根据关键字string查找安装包
#删除程序 注意生产环境不允许删除操作
yum remove package1 删除程序包package1
yum groupremove group1 删除程序组group1
yum deplist package1 查看程序package1依赖情况
3.3 rpm软件管理
#rpm安装
rpm -ivh lynx-2.8.5-18.2.i386.rpm
#升级软件
rpm -Uvh lynx-2.8.5-18.2.i386.rpm
rpm -Fvh lynx-2.8.5-18.2.i386.rpm
-
rpm查询
使用命令rpm -q来查询已安装软件包的数据库;
rpm -q foo 显示foo软件包的包名,版本号和发行号;
rpm -q foo 除了指定软件包名以外,还可以连同-q使用以下选项来指明要查询哪些软件包信息;-a 查询所有已安装软件包
-f 将查询包含有文件的软件包
-l 查询软件包安装在哪些目录
-i 查询软件包的详细信息
-p 查询软件包中有哪些文件 -
rpm卸载
rpm -e foo
注意这里使用软件包名字,而不是软件包文件的命令;版本号也不需要写;生产环境不允许删除操作;
4.DNS查询
4.1 DNS查询
- dig命令
#基本用法
dig www.aliyun.com
#查看反向解析
dig -x 140.205.34.3
#从根服务器开始追踪一个域名解析过程
dig +trace aliyun.com
- nslookup命令
# 直接查询
nslookup aliyun.com
# 反向查询
nslookup ip
4.2 DNS问题排查思路
- 用户侧不能访问,运维侧可访问
一般用户DNS设置问题 - 用户侧和运维侧同时不能访问
检查DNS服务能否ping通
查看DNS服务器的53端口是否可用telnet 53
5.日志查看
5.1 日志查看命令
-
last 命令用于显示系统开机以来或是从每月初登入者的讯息
last
last username -
lastb命令用于列出登入系统失败的用户相关信息
lastb -
查看历史命令
history -
查看日志文件
cat
tac
tail -f 或tailf
5.2 常用命令
/var/log/message 系统启动后的信息和错误日志,最常用的日志
/var/log/secure 与安全相关的日志
/var/log/cron 与定时任务相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志信息
/var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
上一篇: Web实战课的学习笔记1