首页 文章 精选 留言 我的

精选列表

搜索[shell],共6050篇文章
优秀的个人博客,低调大师

shell常用命令

- cd命令 进入某个目录 - cd ~ : 等价于cd - cd ~user : cd ~后跟用户名,直接返回用户的home目录 - cd /: 直接返回根目录 - cd "$var": var=变量, 变量里存路径,要加引号防路径中的空格 - ls命令 [参数] [过滤项] 查目录文件 - ls -l: 详细列表(long format) - ls -a: 显示所有文件(包括隐藏文件) - ls -h: human(人性化) - ls -t: 按时间排序,倒序 - ls -r: 反转,比如ls -l是按字母顺序正序,ls -lr就变成按字母顺序倒序 - ls -R:递归列出子目录 - ls -d:只显示目录 - ls -S: 按大小倒序 - ls -ltr: 详细信息,时间正序 - ls -lt: 详细信息,时间倒序 - cp 命名 复制文件 - cp a.txt b.txt : 复制a.txt文件,并将复制的新文件a.txt命名为b.txt, 若b.txt本身就存在,则直接用a.txt的内容进行覆盖 - cp -i a.txt b.txt: 复制a.txt文件,但在覆盖之前会确认下是否要覆盖 - cp -n a.txt b.txt: 复制a.txt文件,但如果存在b.txt,则跳过不覆盖 - cp - -backup a.txt b.txt: 复制a.txt文件,如果存在b.txt, 则对b.txt进行备份,备份后再进行覆盖 - mv 命令 移动文件(原文件还在) - mv -i a.txt b.txt: 覆盖前询问 - mv -n a.txt b.txt: 目前不存在就移动,存在则跳过不移动 - mv -f a.txt b.txt: 强制覆盖(不加f也是覆盖) - mv -b a.txt b.txt: 覆盖前原文件会备份,再移动 - rm 命令 删除文件 - rm -i a.txt: 删除前询问 - rm -f a.txt: 强制删除 - rm -r a.txt: 递归删除目录以及文件 - rm -d empty: 删除空目录,非空目录报错 - mkdir 创建空目录 - mkdir dir1: 创建目录 - mkdir -p dir1/dir2/dir3: 递归创建目录 - mkdir -v dir1: 创建目录时打印出详细信息 - mkdir dir1 dir2 dir3: 创建多个目录 - rmdir 删除空目录 - rmdir dir1: 删除空目录,成功,非空目录,失败 - rmdir -p dir1/dir2/dir3: 递归删除目录,遇到非空目录则报错 - rmdir -v dir1: 删除目录并输出详细过程 - file f 查看文件类型 - cat 打印文件 - cat -A a.txt: 显示文件所有字符(包括隐藏字符) - cat -s a.txt: 打印时压缩空行 - cat a.txt:默认输出到屏幕上 - cat > a.txt: 键盘输入写文件,ctrl+d保存 - cat -n a.txt: 输出行数 - tail 命令 — 查看文件的尾部信息 - tail a.txt: 默认显示最后10行 - tail -n 20 a.txt: 最后20行 和 tail 20 a.txt等价 - tail -n +50 a.txt: 从50行开始到末尾 - ps命令 查看进程 - ps -aux : 查看所有进程, 基本信息为pid,cpu,mem等, 可以与ww组合,ww不限制宽度 - -a : 查看所有终端进程 - -x: 与a放在一起可以查看所有进程 - -u: user, 输出更符合用户习惯 - ps -ef: 查看所有进程,基本信息为pid、ppid、终端id等, 可以与ww一起使用,ww不限制宽度 - -e: 所有进程 - -f: 完整格式 - kill 命令: 向进程发信号,默认发信号15 - 日常用法 - kill 123: 默认给pid=123的进程发信号15 - kill -s SIGTERM 123:根据信号名称发信号, s 可不写, 等价kill -SIGTERM 123 - kill -n 15 123: 给pid=123的进程发送信号15, n可不写, 等级kill -15 123 - 常用信号 - SIGHUP 1 :终端挂断, 日常被用作配置重载等(行业约定),比如nginx的配置重载,就是nginx接收到hup信号后执行配置重加载 - SIGINT 2:ctrl +c触发的,中断, 一般是用户收到ctrl + c产生 - SIGOUT 3: - SIGKILL 9: 强制终止, 进程无法捕获 - SIGTERM 15: 默认信号,优雅退出 - SIGCONT 18: 继续运行(配合stop) - SIGSTOP 19: 暂停进程(ctrl + z发的,不能被捕获) - pkill 命令: 和kill一样,发送信号,pkill可以按照进程名去发送消息, 但pkill需要注意名字接近的,避免误伤 - pkill -f : 不加-f只匹配进程名,加了 -f 才匹配整个命令行参数 - pkill -u root: 杀root用户所有进程 - pkill -u root -f "python": 杀root的python的进程 - top 命令: 实时查看系统资源和进程状态 - top -d 1 : 延迟时间间隔, 每隔1秒刷新一次 - top -p 12345 : 只盯着 PID=12345 - top -u nginx : 只看nginx用户 - top -b -n 1 : 只输出一次 n是刷新次数 -b 是batch mode(批处理模式) - top -b -n 1 > a.txt : 问题快照,将top刷新一次的数据重定向到a.txt - 实时参数 - P : 按cpu排序(默认) - M: 按内存排序 - T: 按内存cpu时间排序 - k: 杀进程(输入pid→信号) - u: 只看某个用户 - c: 显示完整命令行 - s: 改刷新间隔(秒) - df 命令 disk free 用来查看文件系统级别的磁盘空间使用情况 - df : 默认输出磁盘使用情况,但默认是字节,非人类友好 - df -h : 人类可读,会将单位转换成K/M/G/T等单位 - df -T: 显示文件系统类型 - df -i: 看inode - df -a: 显示所有包括伪文件系统 - free 命令 内存占用 - free -m: 以M单位输出 - free -g: 以G单位输出 - free -s 8: 每过8秒重复打印一次 - free -h:符合人类习惯输出 - systemctl 命令:systemd系统的核心命令控制工具 - systemctl start nginx: 启动nginx服务 - systemctl stop nginx: 关闭nginx服务 - systemctl restart nginx: 重启nginx服务 - systemctl reload nginx: 重载配置(接收hup信息执行配置重载) - systemctl status nginx: 服务状态,正常运行会弹running - journalctl 命令: systemd系统自带的日志查询工具 - journalctl -f : 持续跟进,类似于tail -f - journalctl -n 50: 最近的50行 - journalctl -u nginx: nginx日志 - journalctl -u nginx -f : 持续跟进nginx日志 - journalctl --since "2026-07-30" : 查看7月30号的日志 - 绝对时间 journalctl --since "2026-07-30 14:05" 查看7月30号 14:05开始的日志 - 自然语言 journalctl --since today : 查看今天的日志, today, yesterday, tomorrow, now - 英文ago句式 journalctl --since "1 hour ago": 查看1小时以前的日志 - -/+ 后跟s m h d w month year来表示单位 journalctl --since -1h: 1小时以前 - journalctl -S "2026-07-30" :查看7月30号的日志 --since等价于 -S

优秀的个人博客,低调大师

CentOS shell 压缩解压命令

.tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— .gz 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:gzip FileName .tar.gz 和 .tgz 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf FileName.tar.gz DirName ——————————————— .bz2 解压1:bzip2 -d FileName.bz2 解压2:bunzip2 FileName.bz2 压缩: bzip2 -z FileName .tar.bz2 解压:tar jxvf FileName.tar.bz2 压缩:tar jcvf FileName.tar.bz2 DirName ——————————————— .bz 解压1:bzip2 -d FileName.bz 解压2:bunzip2 FileName.bz 压缩:未知 .tar.bz 解压:tar jxvf FileName.tar.bz 压缩:未知 ——————————————— .Z 解压:uncompress FileName.Z 压缩:compress FileName .tar.Z 解压:tar Zxvf FileName.tar.Z 压缩:tar Zcvf FileName.tar.Z DirName ——————————————— .zip 解压:unzip FileName.zip 压缩:zip FileName.zip DirName ——————————————— .rar 解压:rar x FileName.rar 压缩:rar a FileName.rar DirName ——————————————— .lha 解压:lha -e FileName.lha 压缩:lha -a FileName.lha FileName ——————————————— .rpm 解包:rpm2cpio FileName.rpm | cpio -div ——————————————— .deb 解包:ar p FileName.deb data.tar.gz | tar zxf - ——————————————— .tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea 解压:sEx x FileName.* 压缩:sEx a FileName.* FileName sEx只是调用相关程序,本身并无压缩、解压功能,请注意! gzip 命令 减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。 语法:gzip [选项] 压缩(解压缩)的文件名该命令的各选项含义如下: -c 将输出写到标准输出上,并保留原有文件。 -d 将压缩文件解压。 -l 对每个压缩文件,显示下列字段: 压缩文件的大小;未压缩文件的大小;压缩比;未压缩文件的名字 -r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。 -t 测试,检查压缩文件是否完整。 -v 对每一个压缩和解压的文件,显示文件名和压缩比。 -num 用指定的数字 num 调整压缩的速度, -1 或 --fast 表示最快压缩方法(低压缩比),-9 或--best表示最慢压缩方法(高压缩比)。系统缺省值为 6。指令实例: gzip *% 把当前目录下的每个文件压缩成 .gz 文件。 gzip -dv *% 把当前目录下每个压缩的文件解压,并列出详细的信息。 gzip -l *% 详细显示例1中每个压缩的文件的信息,并不解压。 gzip usr.tar% 压缩 tar 备份文件 usr.tar,此时压缩文件的扩展名为.tar.gz。

优秀的个人博客,低调大师

shell文件移动脚本

脚本功能:将指定目录多少天前的文件移动到目标目录并保持结构不变 应用场景:用于移走服务器中无需保留的老旧数据(笔者是ftp服务器环境) 使用说明:修改脚本中的源目录和目标目录且修改移动多少天前的数据 脚本代码: #!/bin/bash wdir= "/ftp" #源目录 bdir= "/mvbackup/ftp" #目标目录 fl= "/tmp/filelist" okl= "/tmp/oklist" erl= "/tmp/errlist" dl= "/tmp/dirlist" mvlog= "/var/log/mvfile.log" mdlog= "/var/log/mkdir.log" #enterworking(source)director cd $wdir #createsourcefilelist if [-f$fl]; then rm -f$fl fi find -mtime+300- type f| grep - v "\/\." >$fl #^300天前的数据 #filtersourcefilelist if [-f$okl]; then rm -f$okl fi if [-f$erl]; then rm -f$erl fi if [!-f$fl]; then echo stop:1 exit 1 fi oldIFS=$IFS IFS=$ '\n' for i in $( cat $fl) do if [-f$i]; then echo "$i" >>$okl else echo "$i" >>$erl fi done IFS=$oldIFS #createtragetdirectorlist if [-f$dl]; then rm -f$dl fi if [!-f$okl]; then echo stop:2 exit 2 fi cat $okl| awk -F '/' '{$1="";NF-=1;OFS="/";print}' | sort -u>$dl #createtragetdirector if [!-f$dl]; then echo stop:3 exit 3 fi oldIFS=$IFS IFS=$ '\n' for i in $( cat $dl) do if [!-d "$bdir$i" ]; then mkdir -p "$bdir$i" if [!$?=0]; then echo "$bdir$i" >>$mdlog fi #echo$bdir$i fi done IFS=$oldIFS #movefiletotragetfolder if [!-f$okl]; then echo stop:4 exit 4 fi oldIFS=$IFS IFS=$ '\n' for i in $( cat $okl) do if [-f "$i" ]; then j= "$bdir$(echo$i|awk-F'/''{$1=" ";NF-=1;OFS=" / ";print}')" fi if [-d "$j" ]; then echo s: "$i" echo d: "$j" mv -f "$i" "$j" if [!$?=0]; then echo "$i" >>$mvlog fi fi done IFS=$oldIFS

优秀的个人博客,低调大师

Spark shell的实例操作

1、 scala> val inFile = sc.textFile("./spam.data") 作用是将spam.data当作文本文件加载到Spark中,将spam.data文件中的每行作为一个RDD中的单独元素加载到Spark中,并返回一个名为inFile的RDD。 2、 scala> val inFile = sc.textFile([filepath]) 作用是,在本地模式下,可以将文件从本地直接加载。 3、 scala> import spark.SparkFiles; scala> val file = sc.addFile("spam.data") scala> val inFile = sc.textFile(SparkFiles.get("spam.data")) 作用是,让spam.data文件在所有机器上都有备份,使用了SparkContext类中的addFile函数。 4、 scala> val nums = inFile.map(x => x.split(' ').map(_.toDouble)) 作用是比较nums和inFile这两个RDD,确认一下两种数据的内容是一致的。 注意了,x=>x.toDouble与_.toDouble等价 5、 scala> inFile.first() 作用是查看你inFile这个RDD中的第一个元素 6、 想清晰的学习,请移步 本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/5717855.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

Shell 实现的 Docker Bocker

Bocker 详细介绍 Bocker 是一个用大约 100 行代码实现的 Docker。 依赖: btrfs-progs curl iproute2 iptables libcgroup-tools util-linux >= 2.25.2 coreutils >= 7.5 基本使用方法: $ bocker pull centos 7 ######################################################################## 100.0% ######################################################################## 100.0% ######################################################################## 100.0% Created: img_42150 $ bocker images IMAGE_ID SOURCE img_42150 centos:7 $ bocker run img_42150 cat /etc/centos-release CentOS Linux release 7.1.1503 (Core) $ bocker ps CONTAINER_ID COMMAND ps_42045 cat /etc/centos-release $ bocker logs ps_42045 CentOS Linux release 7.1.1503 (Core) $ bocker rm ps_42045 Removed: ps_42045 $ bocker run img_42150 which wget which: no wget in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin) $ bocker run img_42150 yum install -y wget Installing : wget-1.14-10.el7_0.1.x86_64 1/1 Verifying : wget-1.14-10.el7_0.1.x86_64 1/1 Installed : wget.x86_64 0:1.14-10.el7_0.1 Complete! $ bocker ps CONTAINER_ID COMMAND ps_42018 yum install -y wget ps_42182 which wget $ bocker commit ps_42018 img_42150 Removed: img_42150 Created: img_42150 $ bocker run img_42150 which wget /usr/bin/wget $ bocker run img_42150 cat /proc/1/cgroup ... 4:memory:/ps_42152 3:cpuacct,cpu:/ps_42152 $ cat /sys/fs/cgroup/cpu/ps_42152/cpu.shares 512 $ cat /sys/fs/cgroup/memory/ps_42152/memory.limit_in_bytes 512000000 $ BOCKER_CPU_SHARE=1024 \ BOCKER_MEM_LIMIT=1024 \ bocker run img_42150 cat /proc/1/cgroup ... 4:memory:/ps_42188 3:cpuacct,cpu:/ps_42188 $ cat /sys/fs/cgroup/cpu/ps_42188/cpu.shares 1024 $ cat /sys/fs/cgroup/memory/ps_42188/memory.limit_in_bytes 1024000000 当前实现的功能: docker build † docker pull docker images docker ps docker run docker exec docker logs docker commit docker rm / docker rmi Networking Quota Support / CGroups 文章转载自 开源中国社区[https://www.oschina.net]

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册