Linux 实用命令

实用命令:

1、查看端口占用情况

查看该端口是否被占用
netstat -lnp|grep 5000

查看端口是否被占用
lsof -i:'5000'

杀死端口占用进程,根据进程号杀死
kill -9 28533

再次查看,如果查看时候提示命令不存在 :
需要先安装一下命令
yum -y install net-tools

最常见的还有防火墙
yum install firewalld

2、查看空间磁盘使用情况

查看空间使用情况
df -h

查看当前目录下空间使用情况
du -lh --max-depth=1
或
du -sh *

3、按时间批量删除文件

需要根据时间删除这个目录下的文件,/home/lifeccp/dicom/studies,清理掉20天之前的无效数据。

find /home/lifeccp/dicom/studies -mtime +21 -name "*.*" -exec rm -Rf {} \;

简要解释该Shell命令

  • /home/lifeccp/dicom/studies :准备要进行清理的任意目录
  • -mtime:标准语句写法
  • +10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
  • .“:希望查找的数据类型,”.jpg”表示查找扩展名为jpg的所有文件,”“表示查找所有文件
  • -exec:固定写法
  • rm -rf:强制删除文件,包括目录
  • {} \; :固定写法,一对大括号+空格+/+;

注意:在我本人使用的时候,发现可能会存在1-2天的延后误差,比如:删除10天前的,可能删除了12天前的,大家执行完可以检查一下

4、scp远程拷贝命令详解

1.命令格式:scp [参数] [原路径] [目标路径]

2.命令功能:

scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。

3.命令参数:

-1 强制scp命令使用协议ssh1

-2 强制scp命令使用协议ssh2

-4 强制scp命令只使用IPv4寻址

-6 强制scp命令只使用IPv6寻址

-B 使用批处理模式(传输过程中不询问传输口令或短语)

-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)

-p 保留原文件的修改时间,访问时间和访问权限。

-q 不显示传输进度条。

-r 递归复制整个目录。

-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。

-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。

-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。

-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。

-l limit 限定用户所能使用的带宽,以Kbit/s为单位。

-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,

-P port 注意是大写的P, port是指定数据传输用到的端口号

-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

4、常用示例:

4.1、从本地复制到远程

scp -r /root/lk root@43.224.34.73:/home/lk/cpfile

在本地服务器上将/root/lk目录下所有的文件传输到服务器43.224.34.73的/home/lk/cpfile目录下

4.2、从远程复制到本地

scp -r root@43.224.34.73:/home/lk /root

在本地服务器上操作,将服务器43.224.34.73上/home/lk/目录下所有的文件全部复制到本地的/root目录下

原文链接:https://blog.csdn.net/yyfgw/article/details/120835774

5、按时间查找文件

根据日期查找相关文件

/recordings/ 查找的目录 ,默认当前目录
ls --full-time /recordings/ | sed -n '/2018-03-21/p'

按照日期范围查找相关文件

find images/ -newermt '2021-01-01' ! -newermt '2021-01-31'

按时间范围拷贝文件到另一台服务器(内网)
scp -p ssh端口(22)'文件路径' '目标主机账号'@'IP':'存放到目标路径'

统计文件个数

wc -l 统计文件个数
ls --full-time /recordings/ | sed -n '/2018-03-21/p' | wc -l

6、文件、文件夹统计

6.1、个数统计

Linux 中可以通过 ls -l 或者 find -type f 来统计文件、文件夹的个数,具体操作如下。
查看某文件夹下文件的个数:
ls -l | grep "^-" | wc -l
ls -l 列出文件及文件夹
"^-" 以-开头的行 文件以-开头 文件夹以d开头
wc -l 统计行数
或者可以:
find ./ -type f | wc -l
./ 在当前目录查找
-type f 文件类型 -name "*.conf*" 根据文件后缀查找
wc -l 统计行数
查看某文件夹下文件的个数,包括子文件夹:
ls -lR | grep "^-" | wc -l
-R 递归列出子目录的文件
查看某文件夹下文件夹的个数,包括子文件夹:
ls -lR | grep "^d" | wc -l
"^d" 以d开头的行

6.2、系统文件及内存大小统计

使用 du、df、free 进行统计,详细见下

1、du详解
2.1 du 详解
Linux du 命令用于显示目录或文件的大小。
du 会显示指定的目录或文件所占用的磁盘空间。
语法:
du [-abcDhHklmsSx] [目录或文件]
参数说明:
-a 或 -all:显示目录中文件的大小,单位 KB
-b:显示目录中文件的大小,以字节 byte 为单位
-c:显示目录中文件的大小,同时显示总和,单位 KB
-k:显示目录中文件的大小,单位 KB
-m:显示目录中文件的大小,单位 MB
-s:仅显示目录的总值,单位 KB
-h:--human-readable 以K,M,G为单位,提高信息的可读性。
-x:以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-H:--si 与 -h参数相同,但是 K、M、G是以1000为换算单位
--max-depth = 1 :遍历深度
实例:
du -h * # 显示当前目录下文件的大小
du -sh # 查看当前文件夹大小
du -sh * | sort -nr # 统计当前文件夹(目录)大小,并按文件大小排序 -- 加了-h之后排序有问题
du -sk filename # 查看指定文件大小
使用 sort 的参数 -nr 表示要以数字排序法进行反向排序,因为我们要对目录大小做排序,所以不可以使用 human-readable 的大小输出,不然目录大小中会有 K、M 等字样,会造成排序不正确。
如果有一个进程在打开一个大文件的时候,这个大文件直接被 rm 或者mv 掉,则 du 会更新统计数值,df 不会更新统计数值,还是认为空间没有释放。直到这个打开大文件的进程被Kill掉。
2、df详解
2.2 df 详解
Linux df 命令显示磁盘分区上可以使用的磁盘空间。
df 可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
du可以查看文件及文件夹的大小。
两者配合使用,非常有效。
比如用 df 查看哪个一级目录过大,然后用 du 查看文件夹或文件的大小,如此便可迅速确定症结。
语法:
df [选项] [file]
参数说明:
-a: --all 包含所有的具有 0 Blocks 的文件系统,单位默认 KB
-h:使用 -h 选项以 KB、MB、GB 的单位来显示,可读性高~~~(最常用)
-i:查看目前档案系统 inode 的使用情形
有的时候虽然档案系统还有空间,但若没有足够的 inode 来存放档案的信息,一样会不能增加新的档案。
所谓的 inode 是用来存放档案及目录的基本信息 (metadata),包含时间、档名、使用者及群组等。在分割扇区时,系统会先做出一堆 inode 以供以后使用,inode 的数量关系着系统中可以建立的档案及目录总数。如果要存的档案大部分都很小,则同样大小的硬盘中会有较多的档案,也就是说需要较多的 inode 来挂档案及目录。
实例:
df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             3.9G  300M  3.4G   8% /
/dev/sda7             100G  188M   95G   1% /data0
/dev/sdb1             133G   80G   47G  64% /data1
/dev/sda6             7.8G  218M  7.2G   3% /var
/dev/sda5             7.8G  166M  7.2G   3% /tmp
/dev/sda3             9.7G  2.5G  6.8G  27% /usr
tmpfs                 2.0G     0  2.0G   0% /dev/shm
Filesystem -- 档案系统
Mounted on -- 挂入点
size -- 分区容量
Used -- 已使用的大小
Avail -- 剩下的大小
Use% -- 使用的百分比
FreeBSD下,当硬盘容量已满时,可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
3、free详解
2.3 free 详解
Linux free 命令可以显示 Linux 系统中空闲的、已用的物理内存及交互区内存(swap),及被内核使用的 buffer(内核缓冲区内存)。共享内存将被忽略。
语法:
free [参数]
             total       used       free     shared    buffers     cached
Mem:      32948032   32767416     180616          0     139960   29878896
-/+ buffers/cache:    2748560   30199472
Swap:      8193140     664956    7528184
参数说明:
-b:以 Byte 为单位显示内存使用情况
-k:以 KB 为单位显示内存使用情况
-m:以 MB 为单位显示内存使用情况
-g:以 GB 为单位显示内存使用情况
-s'秒': 每xx秒更新一次内存情况 例如:-s5,每5秒更新一次
-t:显示内存综合列

7、查看系统信息

查看内核版本

查看内核
uname -r

查看系统信息

查看系统信息
lsb_release -a
没有以上的命令,可使用一下命令查看 XX为发行版名称。如 centos-release
cat /etc/xxx-release

查看内核和操作系统相关信息

查看操作系统相关信息
uname -a
查看宽带实时使用率
nload

7.1、查看进程详细信息

  1. 格式
    top [-] [d delay] [q] [c] [S] [s] [i] [n]
  2. 主要参数
    d:指定更新的间隔,以秒计算。
    q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
    c:显示进程完整的路径与名称。
    S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
    s:安全模式。
    i:不显示任何闲置(Idle)或无用(Zombie)的行程。
    n:显示更新的次数,完成后将会退出top。

在Liunx系统下执行 top命令显示如下:

Linux 实用命令

第一行表示的依次为当前时间、系统运行时间、当前系统登录用户数目、1/5/10分钟系统平均负载(一般来说,这个负载值应该不太可能超过 1 才对,除非您的系统很忙碌。 如果持续高于 5 的话,那么…..仔细的看看到底是那个程序在影响整体系统吧!)。

第二行显示的是所有启动的进程、目前运行、挂起 (Sleeping)的和无用(Zombie)的进程。(比较需要注意的是最后的 zombie 那个数值,如果不是 0 ,嘿嘿!好好看看到底是那个 process 变成疆尸了吧?!)(stop模式:与sleep进程应区别,sleep会主动放弃cpu,而stop是被动放弃cpu ,例单步跟踪,stop(暂停)的进程是无法自己回到运行状态的)

第三行显示的是目前CPU的使用情况,包括us用户空间占用CPU百分比、sy 内核空间占用CPU百分比、ni 用户进程空间内改变过优先级的进程占用CPU百分比(中断处理占用)、id 空闲CPU百分比、wa 等待输入输出的CPU时间百分比、hi,si,st 三者的意思目录还不清楚 :)

第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。

第五行显示交换分区使用情况,包括总的交换分区、使用的、空闲的和用于高速缓存的大小。

第六行显示的项目最多,下面列出了详细解释:

PID(Process ID):进程标示号 ( 每个 process 的 ID )
USER:进程所有者的用户名 ( 该 process 所属的使用者 )
PR:进程的优先级别 ( Priority 的简写,程序的优先执行顺序,越小越早被执行 )
NI:进程的优先级别数值 ( Nice 的简写,与 Priority 有关,也是越小越早被执行 )
VIRT:进程占用的虚拟内存值。
RES:进程占用的物理内存值。
SHR:进程使用的共享内存值。
S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。
%CPU:该进程占用的CPU使用率。
%MEM:该进程占用的物理内存和总内存的百分比。
TIME+:该进程启动后占用的总的CPU时间 ( CPU 使用时间的累加 )
Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。

top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
<空格>:立刻刷新。
P:根据CPU使用大小进行排序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

查看某进程的详细情况

top -d 1 -p 'pid'-d:指定更新的间隔,以秒计算;-p:指定查看的进程 条件:进程号

top命令是一个功能十分强大的监控系统的工具,它的缺点是会消耗很多系统资源。

7.2、时区/时间设置

1、读取时间
timedatectl
2、设置时间
timedatectl set-time “YYYY-MM-DD HH:MM:SS”
3、列出所有时区
timedatectl list-timezones
4、设置时区 可以通过tab键补全
timedatectl set-timezone Asia/Shanghai
5、是否NTP服务器同步 yes或者no
timedatectl set-ntp yes
6、将硬件时钟调整为与本地时钟一致
timedatectl set-local-rtc 1
与上面命令效果一致
hwclock --systohc --localtime

Linux 实用命令

7.3、网络时间同步

安装工具
yum -y install ntp ntpdate
同步网络时间
ntpdate cn.pool.ntp.org

8、开放及查看端口

查看已开放端口

查看开放端口
firewall-cmd --list-ports

开放及关闭端口(开放后需要要重启防火墙才生效)

开放单个端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
开放多个端口
firewall-cmd --zone=public --add-port=20000-29999/tcp --permanent
关闭端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
重启防火墙
firewall-cmd --reload

(–permanent 为永久生效,不加为单次有效(重启失效))

防火墙操作

查看防火墙状态
systemctl status firewalld
开启防火墙
systemctl start firewalld
关闭防火墙
systemctl stop firewalld
重启防火墙
systemctl restart firewalld
开机自启
systemctl enable firewalld
开机禁用
systemctl disable firewalld

9、文件夹或文件属组、属主、权限赋予

更改文件属组

chgrp [-R] 属组名 文件夹/文件名

更改文件属组、属主

chown [-R] 属主名 文件夹/文件名
chown [-R] 属主名:属组名 文件夹/文件名

-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有
文件的属组都会更改。

更改文件权限

给.sh文件赋予可执行权限

chmod +x  文件名
示例
chmod +x test.sh

9.1、符号类型修改法

我们把九个权限分别是 user,group,others三种身份,借由 u、g、o来代表,采用 a表示所有权限,其余的 r、w、x分别代表读、写、执行权限。使用如下表的方法

Linux 实用命令

比如我们要对一个文件权限为”-rwxr-xr–”修改为”-rwxrwxr-x”,则需要对用户组身份的权限追加 w权限,对其他用户追加 x 权限,所以这样执行:
chmod g+w, o+x filename 或者 chmod g=rwx, o=rx filename

10、扩展命令

10.1、命令间隔执行

单条命令间隔执行
-d 高亮显示本次刷新和上次刷新不同的地方  如:-d "date"
-t 可执行复合命令 如: "ps -ef | grep ps"
watch -n 1 'ls'
更多帮助
watch --help

10.2、历史命令

历史命令
history
清除本次登陆执行过的历史命令,不清空历史记录文件只清空内存
history -c
-c:清空内存中的命令历史,不会清空历史文件中的记录
-d:删除制定命令历史记录,不会清空历史文件中的记录
-r:从历史命令文件中读取历史命令到内存中
-w:将内存中历史命令追加至历史命令文件中
历史命令是存在于当前用户根目录下的./bash_history文件。

10.3、查看路由信息

route

Linux 实用命令

10.4、crontab(定时任务)

利用5个* 进行周期控制,执行命令需要指定exe程序和文件位置

Linux 实用命令

示例: 00 2 * * * command表示每日凌晨2点执行命令

编辑crontab任务

crontab -e
输入i,即进行insert编辑
Esc 退出编辑模式
:wq保存并退出

启动/停止任务
service crond start

service crond restart

service crond stop
查看任务是否执行

日志记录:/var/log/cron、/var/spool/mail/root更详细

查看状态:如显示active(running)即正在执行

crontab -l   #查看定时任务列表

service crond status

10.5、Linux挂载

命令格式: mount [-t vfstype] [-o options] device dir

例子: mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/

-t vfstype 指定文件系统的类型,通常不必指定,mount 会自动选择正确的类型。

光盘或光盘镜像:iso9660
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
Mount Windows文件网络共享:smbfs
UNIX(LINUX) 文件网络共享:nfs

-o options 主要用来描述设备或档案的挂接方式。

loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集

device 要挂接(mount)的设备。

dir设备在系统上的挂接点(mount point)。

卸载挂载: umount /mnt/cdrom

可参考挂载博客:https://blog.csdn.net/qq_56568435/article/details/123637486

Original: https://www.cnblogs.com/aerfazhe/p/15726740.html
Author: 阿尔法哲
Title: Linux 实用命令

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/620728/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • python中的cls和self区别

    self:Always use self for the first argument to instance methods self是作为类进行实例化传递的第一个参数,也就是我…

    数据库 2023年6月6日
    067
  • 第06章 MySQL多表查询

    第06章 MySQL多表查询 多表查询,也称为关联查询,是指两个或多个表一起完成查询操作。 [En] A multi-table query, also known as an a…

    数据库 2023年5月24日
    086
  • Java 线程创建与常用方法

    进程与线程 进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、…

    数据库 2023年6月16日
    067
  • 对象映射时 Integer 类型字段转换枚举处理麻烦 一个工具类搞定

    使用场景 当我们返回给前端所需的对象数据时,大多数情况可以直接使用 StructMap 映射实现自动转换,但碰到对象中的某些字段需要从 Integer 类型转换成对应枚举的时候,在…

    数据库 2023年6月6日
    072
  • MySQL–创建计算字段

    存储在数据库表中的数据一般不是应用程序所需要的格式。下面举几个例子。  如果想在一个字段中既显示公司名,又显示公司的地址,但这两个信息一般包含在不同的表列中。  城市、州和邮政…

    数据库 2023年6月16日
    091
  • 三分钟入门 InnoDB 存储引擎中的表锁和行锁

    各位对 “锁” 这个概念应该都不是很陌生吧,Java 语言中就提供了两种锁:内置的 synchronized 锁和 Lock 接口,使用锁的目的就是管理对共…

    数据库 2023年6月6日
    085
  • B树-删除

    B树系列文章 1. B树-介绍 2. B树-查找 3. B树-插入 4. B树-删除 删除 根据B树的以下两个特性 每一个非叶子结点(除根结点)最少有 ⌈ m/2⌉ 个子结点 有k…

    数据库 2023年6月14日
    074
  • 【转】SpringBoot多模块打包瘦身分离

    背景 首先项目是个多层级的多模块springBoot项目,每次打出来的jar包都在90M,其中包含核心代码以及所有依赖的jar包,上传到服务器速度比较慢。 由于核心代码(contr…

    数据库 2023年6月6日
    0106
  • JavaWeb过滤器Filter(附tomcat部分源码分析)

    过滤器Filter 过滤器通常对一些web资源进行拦截,做完一些处理器再交给下一个过滤器处理,直到所有的过滤器处理器,再调用servlet实例的service方法进行处理。过滤器可…

    数据库 2023年6月16日
    0123
  • 容器化 | 在 Rancher 中部署 MySQL 集群

    我们已经介绍了如何在 Kubernetes 和 KubeSphere 上部署 RadonDB MySQL 集群。本文将演示如何在 Rancher[1] 上部署 RadonDB My…

    数据库 2023年5月24日
    0119
  • Linux中MySQL的安装以及卸载

    一.MySQL MySQL 是一种开放源代码的关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收…

    数据库 2023年5月24日
    0105
  • 9 &和&&的区别

    &运算符有两种用法 在解释按位与&之前,我们先了解一个知识:程序中的所有数在计算机内存中都是以二进制的形式存储的,位运算就是直接对内存中整数的二进制位进行操作。 按…

    数据库 2023年6月6日
    0130
  • 给小白的 PG 容器化部署教程(下)

    作者:王志斌编辑:钟华龙 本文来自社区小伙伴 王志斌 的投稿。从小白的角度,带你一步步实现将 RadonDB PostgreSQL 集群部署到 Kubernetes 上。文章分为上…

    数据库 2023年5月24日
    0106
  • MySQL索引(一)

    一、索引概念 二、索引类型 (一)业务逻辑分类 1、NORMAL – 普通索引 2、UNIQUE – 唯一索引 3、PRIMARY KEY – …

    数据库 2023年6月16日
    096
  • Oracle扩展表空间

    Oracle扩展表空间 前言: Oracle表空间扩展最大为32G,目前我还未找到可以打破限制的办法。 一、查看表空间信息和使用情况 查看表空间的名字及文件所在位置 — &amp…

    数据库 2023年6月16日
    0108
  • DRF使用缓存

    在做项目的时候,有时很多数据都是经常被访问的而且数据是基本不变的,比如省市区的数据是经常被用户查询使用的,而且数据基本不变化,所以我们可以将省市区数据进行缓存处理,减少数据库的查询…

    数据库 2023年6月14日
    071
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球