Linux常用操作命令集合

本文涵盖Linux系统管理的关键知识,包括文件操作、进程管理、网络配置、性能监控及安全设置。详细介绍如何进行文件搜索、权限调整、查看系统信息、远程登录及解决常见问题。

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

文章目录

具体字段统计次数
约定日志格式

这个需要知道文档的格式,然后区分哪一个字段作为统计标准
比如 日志内容如下:
192.168.1.1,111,222
192.168.1.2,111,222
192.168.1.2,111,222
192.168.1.3,111,222
192.168.1.1,111,222
192.168.1.1,111,222

统计每个ip(某列)出现的次数

统计每个ip出现的次数——即按照 ,分割,然后分类统计每一行的数字,$1表示分割后第一列,$0表示一整行

cat a.txt|awk -F"," ‘{print $1}’|sort -n |uniq -c

3 192.168.1.1
2 192.168.1.2
1 192.168.1.3

cat a.txt|awk -F"," ‘{print $0}’|sort -n |uniq -c

3 192.168.1.1,111,222
2 192.168.1.2,111,222
1 192.168.1.3,111,222

统计ip(某列)出现次数大于等于2的数据

$ cat a.txt|awk -F"," ‘{print $0}’|sort -n |uniq -c |awk ‘{if ($1>=2) print $0}’
3 192.168.1.1,111,222
2 192.168.1.2,111,222

统计出现次数前2名

cat a.txt|awk -F"," ‘{print $0}’|sort -n |uniq -c | head -n 2

模糊搜索文档
使用 less 和 / 精确搜索

less 文件名
/字符串
N下一页

统计 ‘xxx’ 在file中出现的次数

cat app.log | grep -c ‘xxx’

grep 模糊搜索 “xxx”
grep '字符串' 日志名.log

####### 变体:展示行号

grep -rn '字符串' 日志名.log

####### 变体:展示上线文内容

上面的搜索结果是不展示上下文内容的,下面指定具体数字,比如-5,就会展示上下文5行的内容

grep -5 '字符串' 日志名.log
查看进程信息和线程信息
查看占用cpu比例较高的进程信息

top

top
PID    COMMAND      %CPU  TIME     #TH   #WQ  #PORTS MEM    PURG   CMPRS  PGRP  PPID  STATE    BOOSTS          %CPU_ME %CPU_OTHRS UID  FAULTS
38303  java         79.1  01:36.21 17/1  1    72     24M    0B     0B     33545 36683 running  *0[1]           0.00000 0.00000    501  11337+    379     132        43

查看指定 进程的 信息
top -pid < pid值>

如果需要同时展示线程信息,在命令行中增加 -H
top -H -p < pid>

查看进程的线程信息

这里有平台特性,一般mac也适用linux命令,但是mac环境无法展示 进程的线程信息
详细的可以查看 https://www.cnblogs.com/EasonJim/p/8098217.html
这里按照平台兼容性推荐排序

  • 进程号为< pid>的进程创建的所有线程
ps -T -p <pid>
  • 查看指定进程的线程信息 top -H -p < pid>

需要linux 环境支持

top -H -p < pid> 
  • htop

https://www.cnblogs.com/lazyfang/p/7650010.html

数字-进制转化
echo $[base#number] 或 echo $((base#number]))

该命令会统一将 base进制的数字 number 转为 10进制的数字

echo $[2#1010]
10
echo $[16#a]
10

或者

echo $((2#1010))
10
echo $((16#a))
10

printf %d 0xAA 或 printf %x 100

这个命令转化10进制和16进制非常方便

printf %d 0xaa 
170
printf %x 170
aa
echo “obase=进制;ibase=进制;number” | bc

这个交bc 命令,是最复杂的一种
obase 必须在前,如果是16进制,number中字母必须大写
默认进制都是10
进制值为 2,10,16,8

echo 'obase=10;ibase=16;A' |bc
10

查看指定端口的进程号

PID就是进程号

$ lsof -i tcp:8080
COMMAND   PID       USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    57314 name-pc  220u  IPv6 0x8e6ef53edc5af677      0t0  TCP *:http-alt (LISTEN)
$ kill -9 57314
$ 

connection closed by foreign host

一般是网络环境不稳定造成的,你肉眼根本分辨不出来,ip冲突了等。换个网络环境试试。

增加系统文件连接数

https://blog.youkuaiyun.com/roy_70/article/details/78423880

查看系统设置的句柄数

具体某种连接 ulimit -[看下面命令结果]

 ulimit -a
安装 lsof

lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。

yum install lsof
查看某端口的进程
lsof -n -P -t -i :8080
根据进程号查看该进程占用的连接数
lsof -p 3418 | wc -l
根据进程号查看该进程所有的连接详情
 lsof -p 3418
将结果输出到文件
lsof -p 3418 > openfiles.log
查询系统信息
lsb_release -a
用户获得sudo权限

找到 root ALL=(ALL) ALL
在下面添加

visudo
用户名 ALL=(ALL) ALL
#:test
用户获得文件夹权限

登陆本用户

sudo chmod -R 777 /文件夹路径

-rw------- (600) 只有拥有者有读写权限。
-rw-r–r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx–x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。

root 修改其他用户密码
su root 切换到root用户
passwd 用户名
输入新密码
再次输入新密码
Linux 查看 ip:端口 通不通的四种方式

更多信息请移步 http://www.jb51.net/article/78082.htm

telnet ip 端口
wget ip:port
忘记root密码

更多信息请移步 https://jingyan.baidu.com/article/7e440953f87f4a2fc0e2ef90.html

ws 和 linux 文件路径不同

windows用的是""
linux用的是"/"

文件操作和指定文件搜索
在本文件夹路径中搜索指定文件名的文件
find -name 文件名  
模糊搜索文档
/字符  + Emter ,搜搜下一处,继续按Enter
/表示根目录

Linux中,/表示根目录,比如 cd /

..表示上级目录

Linux中,..表示根目录,比如 cd …

.表示本级目录自己

Linux中,.表示本级目录自己,比如 cd .

ls -la可以查看空文件夹

… 表示上级目录,.表示本级目录,一个空文件夹的连接数是2
drwxr-xr-x 2 root root 4096 Oct 10 09:44 .
drwxr-xr-x 10 root root 4096 Dec 26 17:41 …

移动文件到指定路径
mv 文件1 文件路径/   
移动文件到根目录的文件名下,如果指定根目录下不存在则创建新文件夹
mv 文件1 /文件名      
重命名(或者修改路径)
mv 文件1  文件2
删除文件-(*是通配符匹配)
模糊删除

比如同时删除 a 和 a.jar rm -rf a*/

rm -rf 文件名*/ 
删除文件夹自己含内部文件
rm -rf 文件名/ 删除文件以及内部文件 
仅删除文件夹内部保留自己
rm -rf 文件名/*
drwxr-xr-x 3 root root 4096 Oct 9 11:57 jdk

使用命令ll可以得到下面的信息
d是目录文件,l是链接文件,-是普通文件,p是管道文件
2、3、4位表示文件所有者对该文件的权限,r是可读,w是可写,x是可执行,本例是rwx,即可读可写可执行
5、6、7位表示文件所有者同组的用户对该文件的权限,r是可读,w是可写,x是可执行,本例是r-x,即可读,不可写,可执行
8、9、10位表示文件所有者非同组用户对该文件的权限,r是可读,w是可写,x是可执行,本例是r-x,即可读,不可写,可执行
3是链接数,具体来说是显示的文件和隐藏的链接,隐藏的链接包括文件本身 . 和上一个目录 …,使用命令 ls -la 查看
第一个root 是用户名
第二个root 是用户所在的组名
4096是文件大小
Oct 9 11:57 是创建时间
jdk 是文件名

ll
drwxr-xr-x 3 root root 4096 Oct  9 11:57 jdk
linux 查看文件夹中的所有文件-(包含隐藏文件)

… 和 . 是两个隐藏文件,分别表示本目录的直接上级和本级目录

查看文件内所有非隐藏文件名
ls 
查看文件内所有文件(隐藏与非隐藏)名
ls -a 
查看文件内所有非隐藏文件详情
ll 
查看文件内所有文件(隐藏与非隐藏)文件详情
ls -la 
仅显示隐藏文件的文件名
l. 
当进入一个空文件夹时,执行

l.
得到
. …
cd .仍留在本文件夹
cd …则会返回上一级文件夹
所有,被隐藏的两个文件 . 表示文件本身,… 表示上级文件
/是跟目录

Linux 模糊搜搜端口号
netstat -anp|grep 80 

netstat -anp|grep 80
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 29825/java
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 29630/nginx: master

新建文件夹
mkdir name
SSH 登陆远程服务

输入用户名对应的密码

ssh 用户名@ip
SSH无法登陆-/usr/sbin/sshd -t

修改完 /etc/ssh/sshd_config 文件使用 service sshd restart 发现无法重启,报错 failed to start openssh server daemon
后来查询资料,使用 命令 /usr/sbin/sshd -t 测试信息提示 第一行有分发字符G,原来是我之前测试G跳转到页面最下端时不小心在编辑状态下输入的
删除后这个命令就正常了

linux 远程登陆设置
设置是否允许登陆的位置

vi /etc/ssh/sshd_config,将PermitRootLogin的值改成yes,允许远程登陆,no不允许远程登陆
设置立即生效需要运行下面的命令
service sshd reload
或者
service sshd restart

VMware CentOS Ctrl+Alt+F1/F2/F3
CentOS Ctrl+Alt+F1 进入 视窗模式
CentOS Ctrl+Alt+F2/F3 进入命令行模式,

F2需要从新输入密码,F3是返回上一次操作

Ctrl+Alt 跳回到Windows

#####无法解析域名

编辑etc下的resoly.conf文件(如果没有就新建一个)
vi /etc/resolv.conf
添加一行
nameserver 8.8.8.8
保存后重启网络服务
service network restart

强制退出当前进程
ctrl  +  c
文件操作
查看文件内容

cat 文件名 会打开整个文件

vi     文件名
编辑文本(vi之后,i(insert))
i     目前光标所在行插入文字
a   目前光标所在的下一个字开始插入文字
o   从下一行开始,下一行行首插入文字
将文件保存为指定文件名
:w  fielname    
将保存修改或写入的内容,离开vi

一般先按 Esc 键

:wq  

如果当前用户没有写权限,则可以使用强制保存命令

:wq!
或者
:w !sudo tee %
放弃编辑的内容,并离开文件

一般先按一下 Esc 键

:q!
查看线程

有两种命令行格式,ps -ef 或者 ps -aux
ps aux
ps aux 是最常用的 BSD 风格选项组合,
a 简单的说,表示所有关联到终端的进程,如果同时使用 x 则代表所有进程;
u 表示列出进程的用户。
ps -elf
ps -elf 的 -e 代表列出所有进程.
-l 代表长格式,
-f 代表完整的格式,
有时候也用 -F 代表超完整的格式。

 ps -ef | grep java

$ ps -elf
  UID   PID  PPID        F CPU PRI NI       SZ    RSS WCHAN     S             ADDR TTY           TIME CMD              STIME
$ ps aux
USER               PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
杀掉线程
kill   -9   123456
关闭tomcat
 ./shutdown.sh
启动tomcat
./startup.sh
返回上个目录
cd ..
打开某个目录
cd 文件名
快捷键自动补全文件名
tab键
本地文件和远程文件通过 scp 传输

更多请移步 https://blog.youkuaiyun.com/ludongdong/article/details/78524653

将远程服务器文件传输到本地
scp 用户名@ip:/服务器文件全路径 /本地文件夹路径
将本地文件传输到远程服务器
scp /本地文件全路径  用户名@ip:/远程服务器文件夹路径
将 class 文件 添加到 jar
linux 向jar 添加 .class 文件
Jar 和 com开始对文件夹位于统一目录下,需要保证添加文件的目录结构和jar包内目录结构一致
比如:
jar -uf name.jar com/aaa/bbb/Demo.class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值