首页 > 系统相关 >Linux核心命令

Linux核心命令

时间:2023-04-01 16:15:07浏览次数:53  
标签:文件 grep 字符 核心 egrep 命令 查找 Linux 匹配

Linux查询命令手册网站:

https://wangchujiang.com/linux-command/

http://linux.51yip.com/

1.线上查询及帮助命令(3个)

man ls

help

info

2.文件和目录操作命令(13个)

ls

$ ls       # 仅列出当前目录可见文件
$ ls -l    # 列出当前目录可见文件详细信息 √
$ ls -hl   # 列出详细信息并以可读大小显示文件大小
$ ls -al   # 列出所有文件(包括隐藏)的详细信息 √
$ ls --human-readable --size -1 -S --classify # 按文件大小排序
$ du -sh * | sort -h # 按文件大小排序(同上)

cd

cd    # 进入用户主目录;
cd /  # 进入根目录
cd ~  # 进入用户主目录;
cd ..  # 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../..  # 返回上两级目录;
cd !$  # 把上个命令的参数作为cd参数使用。写脚本才用

关于切换到上一个工作目录的说明

cd -
# 命令会首先显示要切换到的目标目录,然后再进入。
cd ${OLDPWD}
# 命令会直接切换到上一个工作目录。

cp

cp -r 
# 如果是目录需要加-r参数,递归作用

find

-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
-ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-depth:从指定目录下最深层的子目录开始查找;
-empty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
-inum<inode编号>:查找符合指定的inode编号的文件或目录;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;

-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;

-perm<权限数值>:查找符合指定的权限数值的文件或目录;
-size<文件大小>:查找符合指定的文件大小的文件;

-type<文件类型>:只寻找符合指定的文件类型的文件;递归查找

 

 find / -type f -empty | xagrs rm -rf
# 检索空文件并删除

find / -type f -size +500M
# 查询大于500mb的文件

 

find /home/yuanbao/ -type f -name "t*"

 

 

find ./ -type f -mtime +3 -name "*.log"
# 查找当前目录下 3天前 有更新的文件

 

find ./ -type f -mmin -900
# 查找当前目录下 900min 以内更新的文件

 

find ./ -type f -perm 764
# 递归查找当前目录下 权限为764 的文件

 

ll -i
# 查看当前文件夹下文件的inum号
find ./ -inum 18775420
# 查找inum为18775420的文件
find ./ -inum 18775420 | xargs -i rm -rf {}
# 查找并删除inum为18775420的文件

 

UNIX/Linux文件系统每个文件都有三种时间戳:

  • 访问时间 (-atime/天,-amin/分钟):用户最近一次访问时间。

  • 修改时间 (-mtime/天,-mmin/分钟):文件最后一次修改时间。

  • 变化时间 (-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

 

seq 100 > test.java
# 创建100行的文件(清空原内容,标准输出新内容)
find ./ -type f -name "*.java"|xargs cat|grep -v "^$"|wc -l
# 代码行数统计,排除空行

 

mkdir

mkdir -p dir
# 递归创建

 

mv

mv old new
# 修改文件、文件夹名

 

rm

rm file
# 运行后询问是否删除
rm -rf file
# 强制删除

 

touch

touch file
# 普通创建
touch test_{1..100}
# 创建以test_开头的1~100的文件

 

file

file *
file test.sh
# 查看文件信息,一般看是否是shell脚本,或者executable可执行文件

 

[root@localhost ~]# file install.log
install.log: UTF-8 Unicode text

[root@localhost ~]# file -b install.log      <== 不显示文件名称
UTF-8 Unicode text

[root@localhost ~]# file -i install.log      <== 显示MIME类别。
install.log: text/plain; charset=utf-8

[root@localhost ~]# file -b -i install.log
text/plain; charset=utf-8

 

tree

tree -L 1
# 列出当前文件夹的第1层级

 

了解

basename

dirname

写脚本用的

chattr

用来改变文件属性

chattr +i /etc/fstab
# 防止文件被修改和删除
chattr -i /etc/fstab
# 移除属性

 

lsattr

查看文件的第二扩展文件系统属性

lsattr file

 

 

md5sum

计算和校验文件报文摘要的工具程序

md5sum test.sh
# 记录文件的md5sum值,若文件被修改,其值也会变,防黑客用

 

# 检查文件testfile是否被修改过
md5sum testfile > testfile.md5
# 首先生成md5文件
md5sum testfile -c testfile.md5
# 检查文件

 

3.查看文件及内容处理命令 (19个)

vi vim

:set nu  # 打印行号
:wq!	 # 强制保存

shift+g  # 跳到最后一行
shift+zz # 强制保存并退出
gg       # 跳到第一行
dd		 # 删除当前行
3dd		 # 删3行
yy		 # 复制当前行
p		 # 粘贴在光标下方
o		 # 进入编辑模式,并往下方插入一行

 

cat

cat > test.java <<EOF
> 1
> 2
> 3
> EOF
# 清空原内容,标准追加新内容

 

more

显示文件内容,每次显示一屏

  • Space 键:显示文本的下一屏内容。

  • Enter 键:只显示文本的下一行内容。

  • 按H键:显示帮助屏,该屏上有相关的帮助信息。

  • 按B键:显示上一屏内容。

  • 按Q键:退出more命令。

 

head

cat test.java | head -n 2
# 查看文件前两行

 

tail

默认输出文件的末尾10行

cat test.java | head -n 2 | tail -n 1
# 查看文件第2行

 

tail test.java
# 实时查看文件后10行

 

 

sort

对文本文件中所有行进行排序

cat 1.txt | sort -nr
# 打印文件内容,并进行降序排序

 

 

 

netstat -ant | awk 'NR>1{print $NF}' |sort |uniq -c
# 打印最后一列,排序,去重并统计

 netstat -ant | awk 'NR>1{print $NF}' |sort |uniq -c|sort -nrk 1
 # 在上图的基础上再排序,倒叙,以第一列
 # -n是按照数字大小排序,-r是以相反顺序,-k是指定需要排序的栏位

 

ifconfig ens33|awk 'NR==2{print $2}'
# 提取网卡ip
# ip于第2行 第2个

 

uniq

显示或忽略重复的行

uniq test

wc

统计文件的字节数、字数、行数

-c # 统计字节数,或--bytes:显示Bytes数。
-l # 统计行数,或--lines:显示列数。
-m # 统计字符数,或--chars:显示字符数。
-w # 统计字数,或--words:显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
wc -l test
# 统计文件行数

cat test|wc -l
# 统计文件行数

 

 

grep egrep

强大的文本搜索工具,一般用egrep

-A <显示行数>   --after-context=<显示行数>   # 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-B<显示行数>   --before-context=<显示行数>   # 除了显示符合样式的那一行之外,并显示该行之前的内容。
-o # 只输出文件中匹配到的部分。
-n --line-number         # 在显示符合范本样式的那一列之前,标示出该列的编号。
-G --basic-regexp   # 将范本样式视为普通的表示法来使用。
-i --ignore-case    # 忽略字符大小写的差别。

 

egrep -A 3 "2" test 
# 看后3行

egrep -ri -A 3 "error" app.log
# 例:查找日志文件中报错的后3行信息

 

正则表达式

^    # 锚定行的开始 如:'^grep'匹配所有以grep开头的行。    
$    # 锚定行的结束 如:'grep$' 匹配所有以grep结尾的行。
.    # 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。    
*    # 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。    
.*   # 一起用代表任意字符。   
[]   # 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。    
[^]  # 匹配一个不在指定范围内的字符,如:'[^A-Z]rep' 匹配不包含 A-Z 中的字母开头,紧跟 rep 的行
\(..\)  # 标记匹配字符,如'\(love\)',love被标记为1。    
\<      # 锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。    
\>      # 锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。    
x\{m\}  # 重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。    
x\{m,\}   # 重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。    
x\{m,n\}  # 重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。   
\w    # 匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。   
\W    # \w的反置形式,匹配一个或多个非单词字符,如点号句号等。   
\b    # 单词锁定符,如: '\bgrep\b'只匹配grep。  

 

cat /etc/passwd |egrep "^root"
# 过滤文件内容以 root 开头的

 

cat /etc/passwd |egrep "nologin$"
# 过滤文件内容以 nologin 结尾的

 

cat /etc/passwd |egrep "^s"|egrep "login$"
# 过滤文件内容以 s 开头,并以 login 结尾的,不如下图方便

cat /etc/passwd |egrep "^s.*login$"

 

 

 egrep -r "error"
 # 递归查找包含 error 的文件信息

 egrep -r "error" -l
 # 递归查找包含 error 的文件

 

 

egrep "\b[1-9]\b" 1.txt 
# 过滤文件 1~9 的内容
# \b 表示字符的精准匹配

grep命令常见用法

在文件中搜索一个单词,命令会返回一个包含 “match_pattern” 的文本行:

grep match_pattern file_name
grep "match_pattern" file_name

输出除之外的所有行 -v 选项:

grep -v "match_pattern" file_name

使用正则表达式 -E 选项:

grep -E "[1-9]+"
# 或
egrep "[1-9]+"

 

tr

将字符进行替换压缩和删除

-d或——delete:删除所有属于第一字符集的字符;

将输入字符由大写转换为小写:

echo "HELLO WORLD" | tr 'A-Z' 'a-z'
hello world

'A-Z' 和 'a-z'都是集合,集合是可以自己制定的,例如:'ABD-}'、'bB.,'、'a-de-h'、'a-c0-9'都属于集合,集合里可以使用'\n'、'\t',可以可以使用其他ASCII字符。

使用tr删除字符:

echo "hello 123 world 456" | tr -d '0-9'
hello  world 

 

vimdiff

vimdiff 1.txt 2.txt
# 对比文件内容

 

dos2unix

将DOS格式文本文件转换成Unix格式

最简单的用法就是dos2unix直接跟上文件名:

dos2unix file

 

4.文件压缩及解压缩命令

tar

将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件

/home/vivek/bin/ 目录打包,并使用 gzip 算法压缩。保存为 /tmp/bin-backup.tar.gz 文件。

tar -zcvf /tmp/bin-backup.tar.gz /home/vivek/bin/

5.信息显示命令

uname

uname -a
# 看内核的

 

hostname

hostname
# 看主机名的

hostname -I
# 看网卡的ip地址

 

uptime

查看Linux系统负载信息

uptime
# 输出 系统时间 运行的时间 当前登录的用户数 系统负载平均值
# 负载是代表整个系统的繁忙程度,负载数和cpu数绑定

 

stat

用于详细显示文件的状态信息

stat 1.txt 

 

du

du -sh ./*
# -s     仅显示总计,只列出最后加总的值。
# -h     以K,M,G为单位,提高信息的可读性。

 

df

df -h
# -h	以可读性较高的方式来显示信息

 

df -i
# -i	显示inode的信息

 

 

 

top

实时查看系统的运行状态

top交互命令

1:看cpu
k:终止一个进程;
q:退出程序;
m:切换显示内存信息
 

标签:文件,grep,字符,核心,egrep,命令,查找,Linux,匹配
From: https://www.cnblogs.com/Kodakku/p/17278757.html

相关文章

  • docker 命令
    帮助命令官方查阅文档地址:https://docs.docker.com/reference/dockerversion#显示docker版本信息dockerinfo#显示docker的系统信息,包括镜像和容器docker--help#帮助命令镜像命令dockerimages#查看所有本地主机上的镜像说明:REPOSITORY:镜像仓库源......
  • docker 常用命令总结
    attach#当前shell下attach连接指定运行镜像build#通过Dockerfile定制镜像commmit#提交当前容器为新的镜像cp#从容器中拷贝指定文件或者目录到宿主机中create#创建一个新的容器,同run,但不启动容器diff......
  • 关于网络通信中TCP/UDP的端口范围-以及在Linux系统中的使用权限说明
    关于TCP/UDP的端口号的范围都是0~65535 根据IANA定义,可以参考如下链接:https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtmlIANA将这些端口分成了3类,LastUpdated2023-03-30Portnumbersareassignedinvariousways,based......
  • Linux下防火墙操作
    一、什么是防火墙防火墙:防范一些网络攻击。有软件防火墙、硬件防火墙之分。防火墙选择让正常请求通过,从而保证网络安全性。二、firewalld防火墙的概念2.1、区域CentOS6x中防火墙叫做iptables;CentOS7.x中默认使用的防火墙是firewalldfirewalld增加了区域的概念,所谓区域......
  • homebrew:常用命令(Homebrew 4.0.10-119)
    一,brew常用的命令1,查看brew下载文件的缓存目录liuhongdi@liuhongdideMacBook-ProHomebrew%brew--cache/Users/liuhongdi/Library/Caches/Homebrew2,查看brew的安装目录liuhongdi@liuhongdideMacBook-ProHomebrew%brew--prefix/usr/local也可以:liuhongd......
  • 常见dos命令 win11
    打开CMD的方式右键win,选择终端Win键+R,输入CMD打开控制台在任意文件夹下,shift+右键,选择在终端中打开在资源管理器地址栏前加上CMD路径管理员方式运行:选择以管理员方式运行常用的Dos命令#切换盘符:<目标盘符>:#查看当前目录下的所有文件:dir#切换目录:cd<目标路径>。例如:......
  • Linux系统之部署Go语言开发运行环境
    (Linux系统之部署Go语言开发运行环境)一、Go语言介绍1.Go语言简介Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。2.Go语言的撰写风格每行程序结束后不需要撰写分号。左大括号不能够换行放置。if判断式和for循环不需要以小括号......
  • 命令模式
    概述《设计模式》一书中对于“命令模式”的意图描述如下:将一个请求封装成为一个对象,从而可以使用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作一般“命令模式”的UML图如下所示:一般会在以下几种情况下使用命令模式:需要抽象出待执行的......
  • 常用的DOS命令
    1.常用的DOS命令1.1怎么打开DOS命令窗口win+r键输入cmd1.2DOS命令是什么?最初的windows没图形界面1.3mkdirabc(创建一个abc目录)makedirectory(创建目录)1.4相对路径和绝对路径相对路径不带盘符:cdcourse绝对路径带盘符:   注意: cd..回到上级路径 ......
  • 备份 Linux 系统神器:rsync
    导读探索rsync在备份方案中的作用。在系统管理员的工作中备份无疑是一个重要的部分。当没有完整备份或者良好规划的备份和实施时,就可能或早或晚不可挽回地丢失重要的数据。所有公司,无论大小,都运营在数据之上。考虑到丢失业务数据造成的经济和业务损失,从最小的个人公司到......