前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux相关

Linux相关

作者头像
ha_lydms
发布2023-08-10 09:20:51
2900
发布2023-08-10 09:20:51
举报
文章被收录于专栏:学习内容学习内容

序号

地址

1

计算机网络核心

2

数据库相关

3

Redis

4

Linux相关

5

JVM的内容

6

GC相关的

7

Java多线程与并发

8

Java多线程与并发-原理

9

Java常用类库与技巧

10

Java框架-Spring

1、Linux的体系结构

请添加图片描述
请添加图片描述
  • 体系结构主要分为用户态(用户上层活动)和内核态。
  • 内核:本质是一段管理计算机硬件设备的程序。
  • 系统调用∶内核的访问接口,是一种能再简化的操作。
  • 公用函数库:系统调用的组合拳(系统调用封装)。
  • Shell:命令解释器,可编程。
代码语言:javascript
复制
man 2 syscalls    //查看所有的系统调用说明
man 3                //系统的库函数
ls -lrt        //
which ls    //

cat 
less
more

vim
echo $SHELL    //当前shell版本
cat /etc/shells    //本机支持的shell版本
chsh -s /bin/dash    //切换到上面查询到的shell版本

2、如何查找特定的文件(Find)

Find:在指定目录下查找文件

代码语言:javascript
复制
find path [options] params

使用:

代码语言:javascript
复制
find -name "test.java"       #	在当前目录下查到test.java文件
find / -name "test.java"     #	从根目录开始查到test.java文件
find ~ -name "test*"         #	从用户目录下,找到以test开头文件
find ~ -iname "test.java"    #	从用户目录下,找到test.java文件(忽略大小写)

3、检索文件内容(grep)

代码语言:javascript
复制
grep [options] pattern file
  • 全称:Global Regular Expression Print。
  • 作用:查找文件里符合条件的字符串。
代码语言:javascript
复制
grep "start" test*    //从test开头文件中,查找含有start的行

管道操作符 |

  • 可将指令连接起来,前一个指令的输出作为后一个指令的输入
请添加图片描述
请添加图片描述
代码语言:javascript
复制
find ~ |grep "test"
find ~                //查找当前用户所有文件
grep "test"            //从文件中

使用管道注意的要点

  • 只处理前一个命令正确输出,不处理错误输出。
  • 右边命令必须能够接收标准输入流,否则传递过程中数据会被抛弃
  • sed,awk,grep,cut,head,top,less,more,c,join,sort,split等
代码语言:javascript
复制
grep 'error' email.log            #	从email.log文件中查询包含error的行
grep 'error' email.log | grep -o '\[0-9\]' #	获取到error的行,并取[]含有数字的内容
ps -ef|grep tomcat |grep -v        #	并过滤掉含有当前进程

4、对文件内容做统计(awk)

代码语言:javascript
复制
awk  [options]  'cmd'  file
  • 一次读取一行文本,按输入分隔符进行切片,切成多个组成部分。
  • 将切片直接保存在内建的变量中,1,2…(
  • 支持对单个切片的判断,支持循环判断,默认分隔符为空格。
  • -F 指定分隔符(默认为空格)
请添加图片描述
请添加图片描述
代码语言:javascript
复制
// 将email.out进行切分,打印出第1/3列内容
awk '{print $1,$3}' email.out        
// 将email.out进行切分,当第1列为tcp,第2列为1的列,全部打印。
awk '$1=="tcp" && $2==1{print $0}' email.out
//在上面的基础上将表头进行打印(NR表头)
awk '($1=="tcp" && $2==1)|| NR==1 {print $0}' email.out

//以,为分隔符,切分数据,并打印第二列的内容
awk -F "," '{print $2}' test.txt

将日志中第1/3列进行打印,并对第1列的数据进行分类统计

代码语言:javascript
复制
awk '{print $1,$3}' email.out
| awk '{count[$1]++} END {for(i in count) print i "\t" count[i]}'
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

5、批量替换文件内容(sed)

代码语言:javascript
复制
sed [option] 'sed commond' filename
  • 全名Stream Editor,流编辑器
  • 适合用于对文本行内容进行处理
  • sed commond为正则表达式
  • sed commond中为三个/,分别为源内容,替换后的内容
代码语言:javascript
复制
sed -i 's/^Str/String/' replace.java 
请添加图片描述
请添加图片描述

将末尾的.替换为;(转义.)

代码语言:javascript
复制
sed -i 's/\.$/\;/'

全文将Jack替换为me(g是全部替换,不加只替换首个)

代码语言:javascript
复制
sed -i 's/Jack/me/g/ replace.java

删除replace.java中的空格(d是删除)

代码语言:javascript
复制
sed -i '/^ *$/d' replace.java

删除包含Interger的行(d是删除)

代码语言:javascript
复制
sed -i '/Interger/d' replace.java

6、lsof

查看某一端口的占用情况

代码语言:javascript
复制
lsof -i:8080

7、netstat

netstat 命令用于显示各种网络相关信息,如网络连接, 路由表, 接口状态等等; 列出所有处于监听状态的tcp端口:

包括 PID 和进程名称

代码语言:javascript
复制
netstat -tulpn

查看指定端口号占用的TCP网络连接情况

代码语言:javascript
复制
netstat -tunlp|grep 8080

8、jstack

根据PID,查看JVM中各线程信息('0x9eb’为nid值)

代码语言:javascript
复制
jstack 2246|grep '0x9eb' -A 50

9、实时查看文件后几行(实时查看日志)

代码语言:javascript
复制
tail -f a.java        查看a.java文件的后10行内容;

10、unzip

代码语言:javascript
复制
unzip file1.zip             解压一个zip格式压缩包
zip -r lib.zip lib/            将目录进行压缩(lib.zip)
zip -r lib.zip tomcat-embed.jar xml-aps.jar        将多个文件压缩为zip文件(lib.zip)    

11、docker常用命令

代码语言:javascript
复制
#1、查看docker中下载好的镜像:
docker images
#2、查询需要的容器名称:
docker search mysql
#3、将需要的docker容器下载运行到本地(名称、端口号、msyql密码、ID):
docker run -di --name=first -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root 26d26dsfsd31a
#4、查看运行的docker容器:
docker ps
#5、查看所有的docker容器(包括未运行的):
docker ps -a
#6、停止当前运行的docker容器:
docker stop first
#7、启动docker容器:
docker start first
#8、重启docker容器:
docker restart first
#9、删除docker容器:
docker rm first

更新yum

代码语言:javascript
复制
sudo yum update

安装docker

代码语言:javascript
复制
sudo yum install docker

查看docker版本

代码语言:javascript
复制
docker -v

Docker version 1.13.1, build 0be3e21/1.13.1 启动docker

代码语言:javascript
复制
systemctl start docker
systemctl restart  docker
systemctl stop docker

查看docker是否启动

代码语言:javascript
复制
docker ps -a

搜索Redis镜像

代码语言:javascript
复制
docker search redis

12、查看当前目录所占存储

代码语言:javascript
复制
du -sh    			//查看当前文件夹所占存储空间
du --max-depth=1    //只查看当前目录下文件占用的存储空间
df -h            	//查看系统硬盘使用情况

13、Linux内核优化

打开配置文件

代码语言:javascript
复制
vim /etc/sysctl.conf

14、用户操作

添加用户sum:

代码语言:javascript
复制
useradd –d /usr/sum -m sum

关于useradd的某些参数:

-u: 指定 UID,这个 UID 必须是大于等于500,并没有其他用户占用的 UID

-g: 指定默认组,可以是 GID 或者 GROUPNAME,同样也必须真实存在

-G: 指定额外组

-c: 指定用户的注释信息

-d: 指定用户的家目录

已创建的用户sum设置密码

代码语言:javascript
复制
passwd sum

用户添加root权限

代码语言:javascript
复制
visudo

找到root用户权限位置 添加与root用户相同权限

代码语言:javascript
复制
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
eses    ALL=(ALL)       ALL
在这里插入图片描述
在这里插入图片描述

新建的用户在面显示

代码语言:javascript
复制
cat /etc/passwd
反反复复
反反复复

切换下刚才添加的用户

代码语言:javascript
复制
su sum

sum: x:1000:1000:: /usr/sum :/bin/bash sum: x:0:1000:: /usr/sum :/bin/bash

回到root用户

代码语言:javascript
复制
exit

修改已有用户信息usermod

代码语言:javascript
复制
usermod 选项 用户名
请添加图片描述
请添加图片描述

删除用户文件夹

代码语言:javascript
复制
rm -rf /usr/sum

删除用户sum

代码语言:javascript
复制
userdel sum
请添加图片描述
请添加图片描述

15、添加组

添加用户组

代码语言:javascript
复制
groupadd groupname
请添加图片描述
请添加图片描述

修改用户组 使用者权限:管理员用户

代码语言:javascript
复制
groupmod 选项 用户组
groupmod  -n new-usergroup  usergroup

常用的选项有:

  • -g GID 为用户组指定新的组标识号。
  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  • -n新用户组 将用户组的名字改为新名字
在这里插入图片描述
在这里插入图片描述

删除用户组

代码语言:javascript
复制
groupdel groupname

可以看到自己的分组和分组id

代码语言:javascript
复制
cat /etc/group

16、sudo用户权限操作

比如我们使用普通用户操作用户或者操作用户组、以及修改网卡配置文件的时候,需要切换到root用户才操作,此时我们可以使用sudo命令提高普通用户的操作权限,以达到操作目的

sudo:控制用户对系统命令的使用权限,root允许的操作。 通过sudo可以提高普通用户的操作权限。 使用者权限:普通用户

使用root用户权限执行命令,操作

代码语言:javascript
复制
sudo -s
代码语言:javascript
复制
sudo   vi /etc/sysconfig/network-scripts/ifcfg-ens33 
在这里插入图片描述
在这里插入图片描述

17、更换文件所有者

格式:

代码语言:javascript
复制
chown [-R] 所有者 		文件或目录
chown [-R] 所有者:所属组 	文件或目录

kibana-8.3.3-linux-x86_64.tar.gz所有者改为用户sum

代码语言:javascript
复制
chown -R sum /usr/sum/kibana-8.3.3-linux-x86_64.tar.gz

kibana-8.3.3-linux-x86_64.tar.gz所有者改为用户sum、所有组改为sum

代码语言:javascript
复制
chown -R sum:sum /usr/sum/kibana-8.3.3-linux-x86_64.tar.gz
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、Linux的体系结构
  • 2、如何查找特定的文件(Find)
  • 3、检索文件内容(grep)
  • 4、对文件内容做统计(awk)
  • 5、批量替换文件内容(sed)
  • 6、lsof
  • 7、netstat
  • 8、jstack
  • 9、实时查看文件后几行(实时查看日志)
  • 10、unzip
  • 11、docker常用命令
  • 12、查看当前目录所占存储
  • 13、Linux内核优化
  • 14、用户操作
  • 15、添加组
  • 16、sudo用户权限操作
  • 17、更换文件所有者
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档