com命令显示到服务器链路,必须收藏的linux shell常用命令

本文详细介绍了Linux系统中的命令行操作,包括常用的shell命令、进程管理、网络诊断、系统监控、文件操作和系统配置。重点讨论了如何使用ssh进行远程登录,scp进行文件传输,以及ulimit调整用户资源限制。此外,还讲解了sysstat工具包的应用,如iostat和top等,以及如何使用sysctl配置内核参数。文章还涉及了selinux的管理和日志查看,如/var/log/secure中的ssh登录日志。网络诊断工具如tcpdump、netstat和traceroute也在文中提及,同时阐述了进程管理工具如ps、lsof和strace的功能。通过对这些命令的掌握,可以提升Linux系统的管理和维护能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

本篇文章主要列举了我们在Linux平台 开发,运维中常用到的命名,也是一个命令查询手册。

shell 说明

与操作系统(内核)交互的软件应用,通常我们讲的shell都是脚本形式的,就象javascript一样。shell脚本不是本篇文章重点。我们主要讲的是控制台命令,就是我们经常登录操作系统后执行的命令。其实这个就是shell交互式命令行(CLI),当我们进入操作系统后 执行ps你会发现有一个bash(一般都是)进程,这就是为我们提供命令行应用程序。当然会很多shell应用程序如: sh,csh。下图是启动shell的默认加载顺序。login 与 nonlogin区别

dd71c53b10694e17915eb550e00e0ad7.png

查看系统支持的shell

cat /etc/shells

显示当前系统使用的shell

echo $SHELL

切换shell

如果想要切换shell,可以直接输入需要转换的shell,如切换成sh直接输入sh,退出使用exit

使用说明

到这里我们都知道了执行命令其实是shell进程帮我们做了处理,那么我们执行的命令shell是如何找到的呢?其实我们所执行的命令分内部命令和外部命令,内部命令是shell本身提供的(已加载到内存中的),外部命令就是我们平时安装(放在$PATH下的)的命令,shell执行是会先找自己内部命令,如果没有找到才会根据PATH配置的顺序查找并执行,不仅如此还会缓存到hash表中(可以用hash命令显示当前缓存的命令)

86069e56197048be270ef7726830b337.png

常用命令

1. ssh user@ip ssh登录服务器

2.传文件 scp sourceAddr root@ip:/home/service

3.压缩 tar -czf libs.tar.zip libs 解压 tar -zxvf libs.tar.zip

ulimit -a 查看当前用户线程

vi /etc/security/limits.d/90-nproc.conf 修改用户能开启线程最大数

vi /etc/security/limits.conf 修改打开最大文件数

5 linux 免密登录

1.将登录服务器的公钥copy 到目标服务器 ~/.ssh/authorized_keys (保证.ssh 700 , authorized_keys 600,如果还是登录失败请 restorecon .ssh .ssh/authorized_keys )

2.ssh work@192.168.x.x -i 私钥地址 (如果登录不上可以加-v进行调试)

说明:需要restorecon的原因可能是.ssh 或者 authorized_keys是从另的地方copy过来的,导致SElinux上下文权限一并copy过来,所以需要restorecon重置上下文

3./var/log/secure 可以在服务端查询ssh登录日志信息进行调试

6 sysstat 工具包相关应用

1. iostat

iostat -d -k 1 10 #查看TPS和吞吐量信息

iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)

iostat -c 1 10 #查看cpu状态

2. sar

sar -u 1 3#查看cpu使用情况

sar -q#查看平均负载

sar -r #查看内存使用情况

sar -d #磁盘使用详情统计

7 top(shift+p 可以按处理器占用率排序 shift+M按内存)

top -Hp pid 查看pid进程相关信息:包括:子线程信息,cpu占用

8 printf 格式化函数

printf '%X\n' 1231 转16进制

9 sysctl 用于运行时配置内核参数

/etc/sysctl.conf 设置参数文件

-a 显示所有的系统参数

-p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载

10 selinux 相关操作

1、/usr/sbin/sestatus -v 如果SELinux status参数为enabled即为开启状态

2、临时关闭(不用重启机器):

setenforce 0 设置SELinux 成为permissive模式

setenforce 1 设置SELinux 成为enforcing模式

3、修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

重启机器即可

11 time 统计程序耗时

time ls

#执行程序总时间(wall clock time 包括cpu执行其它程序时间)

real 0m0.002s

#ls 程序实际执行时间=user(用户空间) + sys(内核空间)

user 0m0.000s

sys 0m0.001s

12 日志相关

cat /var/log/messages 包括整体系统信息

cat /var/log/dmesg 包含内核缓冲信息

cat /var/log/boot.log 系统启动日志

cat /var/log/yum.log — 包含使用yum安装的软件包信息

cat /var/log/cron crontab 调度时间

cat /var/log/secure — 包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里

cat /var/log/faillog – 包含用户登录失败信息。错误登录命令也会记录在本文件中

/var/log/lastlog 用户最后登录日志 可以通过 lastlog 命令查询:lastlog 或者 lastlog -u root

/var/log/btmp – 记录所有失败登录信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp | more“。

常用命令分类

网络相关

网络诊断工具

tcpdump抓包工具

tcpdump tcp -i ens160 and dst port 80 or src net 127.0.0.1 -w ./target.cap

检查端口占用或者tcp连接情况 netstat -anltp | grep 1234

安装 yum install net-tools

分组查询某个tcp服务连接情况

netstat -n | grep tcp | grep 9080 | awk '{print $6}' |sort | uniq -c

查询本地tcp服务连接情况

netstat -n | grep tcp | awk '{print $4 " " $6}' | sort | uniq -c | sort -rn | more

查询应用的连接数

netstat -np | grep port | grep ip | awk '{print $7}' | awk -F '/' '{print $1}' | sort | uniq -c

网络链路工具

traceroute

traceroute www.baidu.com

MTR

链路测试工具 详细参考文档

yum install -y mtr

mtr baidu.com

客户,服务端socket工具

nc/ncat(netcat) 创建服务监听或连接服务指令

nc -l -p 9090 创建一下9090监听服务

nc localhost 9090(server port) [-p 8090(client port)] 连接服务

ss 用来显示处于活动状态的套接字信息

ss -s 显示socket相关统计信息

ss -pl 查看相关进程与端口信息

域名查询/诊断工具

host -a baidu.com

host -a baidu.com 10.0.2.3 指定nameserver解析

nslookup baidu.com 判断域名解析服务器

nslookup baidu.com 10.0.2.3 判断域名解析服务器

dig工具查询/跟踪dns记录

yum install -y bind-utils

dig baidu.com

dig +trace baidu.com

dig -x 127.0.0.1 根据IP查找域名(反解)

进程相关命令

进程切换

Ctrl + z 将进程放到后台进行

jobs -l 查看后台进程

fg 打开进程

pstree 当前某程序的线程或进程数

安装 yum -y install psmisc

pstree -p | wc -l 总线程数

查看进程相关信息 ps

ps -p pid -o etime 查看进程运行总时长

ps -ef | grep xxx搜索某进程

ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | sort -nrk5查询内存等

lsof(list opened files) 列举系统中已经被打开的文件

lsof -i tcp:8080 查看端口占用

lsof | grep deleted 查看已删除,还是被占用的文件:有时候出现rm后的文件,空间还是没有释放,原因可能是这个文件还被其它进程占用,可以通过此命令查看文件被打开情况,情况允许的情况下,重启相关应用,以确保释放空间

lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr| 查看进程打开的文件句柄数

strace 追踪进程的系统调用

#安装

sudo yum install -y strace

strace -f -t -o a.log ls

查询命令

man

# 支持查看内核方法

yum install -y man-pages

1是普通的命令

2是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个 函数,需要加什么头文件)

3是库函数,如printf,fread

4是特殊文件,也就是/dev下的各种设备文件

5是指文件的格 式,比如passwd, 就会说明这个文件中各个字段的含义

6是给游戏留的,由各个游戏自己定义

7是附件还有一些变量,比如向 environ这种全局变量在这里就有说明

8是系统管理用的命令,这些命令只能由root使用,如ifconfig

如:

man 2 socket

#查看系统调用

man syscalls

查看操作系统版本

cat /etc/redhat-release

cat /etc/issue

uname -a

cat /proc/version

查看ip地址 ip add 与 ifconfig

使用ifconfig需要安装 net-tools

使用ip需要安装iprout2

ip相关使用

ip route show 列出路由条目

ip route get 192.xx.xx.xx 获取某ip路由包

ip addr show eth0 查看某网卡ip地址

统计信息

-S按文件大小排序 -h,显示文件大小 k,M,G

ls -lthS

系统内在使用量

free -h

按名字查看

sudo find / -name nginx.config

按大小查看文件

find / -type f -size +2G

统计关键词数

`cat filename | grep hello | wc -l`

du查看目录大小,df查看磁盘使用情况。du -sh df -h du -h --max-depth=1

查询cpu信息

查询cpu核心数

cat /proc/cpuinfo | grep "processor" | wc -l

查询cpu个数

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值