Linux常用命令
1.1.安装 zip、unzip工具
[root@lqz ~]# yum install zip unzip -y
1.2.压缩目录为zip包 (不加r,只会打包一个文件夹),把dir文件夹压缩成dir.zip
[root@lqz ~]# zip -r dir.zip dir/
1.3.查看zip压缩包是否是完整的
[root@lqz ~]# zip -T filename.zip
test of filename.zip OK
1.4.解压zip文件包, 默认解压至当前目录
[root@lqz ~]# unzip filename.zip
1.5.解压zip内容至/opt目录
[root@lqz ~]# unzip filename.zip -d /opt/
2.拷贝命令 cp
远程copy命令
scp xxx.bin root@192.168.1.1:/home/
Linux cp 命令主要用于复制文件或目录,将源文件复制至目标文件,或将多个源文件复制至目标目录
2.1.使用指令 "cp" 将 "/usr/local/redis/" 下的所有文件复制到新目录 "/home/beifen/20230515/" 下,输入如下命令:
-r递归复制目录及其子目录内的所有内容
[root@localhost redis]# cp -r /usr/local/redis/ /home/beifen/20230515/
2.2.cp命令参数详解
-a, --archive 等于-dR --preserve=all --backup[=CONTROL 为每个已存在的目标文件创建备份 -b 类似--backup 但不接受参数 --copy-contents 在递归处理是复制特殊文件内容 -d 等于--no-dereference --preserve=links -f, --force 如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项) -i, --interactive 覆盖前询问(使前面的 -n 选项失效) -H 跟随源文件中的命令行符号链接 -l, --link 链接文件而不复制 -L, --dereference 总是跟随符号链接 -n, --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效) -P, --no-dereference 不跟随源文件中的符号链接 -p 等于--preserve=模式,所有权,时间戳 --preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等 -c same as --preserve=context --sno-preserve=属性列表 不保留指定的文件属性 --parents 复制前在目标目录创建来源文件路径中的所有目录 -R, -r, --recursive 递归复制目录及其子目录内的所有内容 --reflink[=WHEN] 控制克隆/CoW 副本。请查看下面的内如。 --remove-destination 尝试打开目标文件前先删除已存在的目的地文件 (相对于 --force 选项) --sparse=WHEN 控制创建稀疏文件的方式 --strip-trailing-slashes 删除参数中所有源文件/目录末端的斜杠 -s, --symbolic-link 只创建符号链接而不复制文件 -S, --suffix=后缀 自行指定备份文件的后缀 -t, --target-directory=目录 将所有参数指定的源文件/目录复制至目标目录 -T, --no-target-directory 将目标目录视作普通文件 -u, --update copy only when the SOURCE file is newer than the destination file or when the destination file is missing -v, --verbose explain what is being done -x, --one-file-system stay on this file system -Z, --context=CONTEXT set security context of copy to CONTEXT --help 显示此帮助信息并退出 --version 显示版本信息并退出 默认情况下,源文件的稀疏性仅仅通过简单的方法判断,对应的目标文件目标文件也 被为稀疏。这是因为默认情况下使用了--sparse=auto 参数。如果明确使用 --sparse=always 参数则不论源文件是否包含足够长的0 序列也将目标文件创文 建为稀疏件。 使用--sparse=never 参数禁止创建稀疏文件。 当指定了--reflink[=always] 参数时执行轻量化的复制,即只在数据块被修改的 情况下才复制。如果复制失败或者同时指定了--reflink=auto,则返回标准复制模式。 备份文件的后缀为"~",除非以--suffix 选项或是SIMPLE_BACKUP_SUFFIX 环境变量指定。版本控制的方式可通过--backup 选项或VERSION_CONTROL 环境 变量来选择。以下是可用的变量值: none, off 不进行备份(即使使用了--backup 选项) numbered, t 备份文件加上数字进行排序 existing, nil 若有数字的备份文件已经存在则使用数字,否则使用普通方式备份 simple, never 永远使用普通方式备份 有一个特别情况:如果同时指定--force 和--backup 选项,而源文件和目标文件 是同一个已存在的一般文件的话,cp 会将源文件备份。
3.查看内存情况 free
选项 | 含义 |
-b | 以 Byte(字节)为单位,显示内存使用情况。 |
-k | 以 KB 为单位,显示内存使用情况,此选项是 free 命令的默认选项。 |
-m | 以 MB 为单位,显示内存使用情况。 |
-g | 以 GB 为单位,显示内存使用情况。 |
-t | 在输出的最终结果中,输出内存和 swap 分区的总量。 |
-o | 不显示系统缓冲区这一列。 |
-s 间隔秒数 | 根据指定的间隔时间,持续显示内存使用情况。 |
[root@localhost redis]# free -m total used free shared buff/cache available Mem: 3789 221 3310 8 257 3330 Swap: 3967 0 3967
第一行显示的是各个列的列表头信息,各自的含义如下所示:
- total 是总内存数;
- used 是已经使用的内存数;
- free 是空闲的内存数;
- shared 是多个进程共享的内存总数;
- buffers 是缓冲内存数;
- cached 是缓存内存数。
Mem 一行指的是内存的使用情况;Swap 一行指的就是 swap 分区的使用情况。
[root@localhost ~]# free -m -s 5
显示内容参数说明:
Filesystem:文件系统
Size: 分区大小
Used: 已使用容量
Avail: 还可以使用的容量
Use%: 已用百分比
Mounted on: 挂载点
相关命令:
df -hl:查看磁盘剩余空间
df -h:查看每个根路径的分区大小
du -sh [目录名]:返回该目录的大小
du -sm [文件夹]:返回该文件夹总M数
du -h [目录名]:查看指定文件夹下的所有文件大小(包含子文件夹)
5.查看文件数量
5.1.Linux 查看目录下的文件数量
[root@localhost redis]# ls -l | grep "^-" | wc -l;
5.2.指定某一目录(例如/home):
[root@localhost redis]# ls -l /home | grep "^-" | wc -l;
[root@localhost mysql]# service crond status
6.2.安装并启动crontabs
[root@]# yum install vixie-cron crontabs
[root@]# yum install crontabs
//启动crontabs
[root@]# service crond start
//显示状态,如果安装成功就会显示上图
[root@]# service crond status
//开机自启动,这个根据自身需求决定是否使用
[root@]# chkconfig crond on
6.3.crontabs查看、编辑、删除定时任务
crontab -u //设定特定用户的定时服务
crontab -l //列出当前用户定时服务内容
crontab -r //删除当前用户的定时服务
crontab -e //编辑当前用户的定时服务
在设定编辑之前都建议列出服务查看一下:crontab -l
修改后记得重启crond使改动生效
[root@]#service crond restart
6.4.查看crond执行结果
tail -f /var/log/cron
6.5.在线Linux表达式验证工具
https://tool.lu/crontab
[root@localhost ~]# nproc
7.2 监视工具
Glances 是一个有用的监视工具,用于监视系统状态。该工具是用python编写的,并使用库实用程序详细显示各种系统资源信息,例如CPU使用率,内存和网络监控,进程,磁盘I / O和文件系统利用率等。如果执行以下命令提示未找到命令,可以执行”yum install glances“ 安装。
[root@sharplee creatfile]# glances
还可以使用glances运行web服务器查看cpu利用率。
7.3允许ping
1、检查Linux服务器当前是否禁ping,执行命令:cat /proc/sys/net/ipv4/icmp_echo_ignore_all
备注: 0----代表允许ping包 1-----代表禁止ping包
2、修改配置文件/etc/sysctl.conf,在sysctl.conf文件最后以后添加以下内容:
net.ipv4.icmp_echo_ignore_all = 0
3、执行命令 (配置文件才能生效):sysctl -p
7.4端口排查
1.查看端口是否被占用
lsof -i:443
2.查看端口详细信息
ls 进程id
7.5 pkill 结束所有相关进程
sudo pkill -9 java
7.6 下载rpm安装包到指定位置
Yumdownloader 是一款简单,但是却十分有用的命令行工具,它可以一次性下载任何 RPM 软件包及其所有
yum install yum-utils
一旦安装完成,运行如下命令去下载一个软件包,例如 httpd
为了将软件下载到一个特定的目录下,我们使用 -destdir 参数
yumdownloader --resolve --destdir=/root/mypackages/ httpd
7.7 统计文件数量
使用ls
命令和wc
命令
使用ls
命令的-l
选项和管道操作符|
结合wc
命令来统计文件数量:
ls -l | grep "^-" | wc -l
使用find
命令递归查询
使用find
命令来递归地查找文件,并使用wc
命令统计文件数量:
find /path/to/folder -type f | wc -l
7.8 查看端口或应用网络连接状态
netstat -antp|grep
是一个在 Linux 系统中使用的命令,用于查看网络连接状态并过滤输出。这个命令的各个部分的功能如下:
-
netstat
:这是一个用于显示网络连接、路由表、接口统计等信息的工具。 -
-a
:显示所有连接和监听端口。 -
-n
:以数字形式显示地址和端口号,而不是尝试将地址和端口号转换为主机名和服务的名称。 -
-t
:只显示 TCP 连接。 -
-p
:显示与每个连接相关的进程 ID 和程序名称。 -
|
:管道符号,用于将 netstat 的输出传递给 grep 命令。 -
grep
:这是一个用于搜索字符串的命令。在这里,它用于过滤 netstat 的输出,只显示包含特定字符串的行。
如果您在 netstat -antp|grep
命令后面跟了一个特定的参数,那么 grep 将会只显示包含该参数的行。例如,如果您想查看所有与 ssh
相关的连接,可以使用:
netstat -antp | grep ssh
netstat -antp | grep 6379
windows 批量修改最后修改日期
进入指定文件夹后,执行以下命令来修改文件夹里面所有文件的修改日期为当前日期:
powershellGet-ChildItem -Recurse | ForEach-Object { $_.LastWriteTime = Get-Date }
或者
(Get-Item "C:\path\to\your\folder").LastWriteTime = (Get-Date "2023-01-01 12:00:00")