
文章目录一、Linux命令总结1.ps -ef|grep syslog或者ps aux|grep syslog2.pid_maxulimit -u和thread_max之间的区别3.useradd与adduser的区别4.base64命令的使用5. watch 介绍6. curl 命令二、Windows命令总结一、Linux命令总结查找路径名称包含ifcfg-eth的路径find / | grep ifcfg-eth查找名称为相应参数的文件或文件夹路径find / -name ifcfg-eth0、find / -name spark-sql-kafka*mongo使用了哪些端口netstat -ntulp|grep mongo端口40001被什么程序占用netstat -ntulp|grep 40001注若没有该工具在Centos7.2中执行yum -y install net-toolsssh指定密钥文件ssh -i /path/to/private_key userhostsudo 操作命令暂时切换到超级用户模式以执行超级用户权限,有时间限制Ubuntu默认为一次时长15分钟。sudo -i使用root用户的环境变量跳转到/root拥有超级管理员权限sudo -s使用当前用户的环境变量不跳转目录拥有超级管理员权限统计所有Zookeeper的连接netstat -antp | grep 2181 | wc -l上面的命令包含等待的和正在通信的如果查看正在通信的netstat -antp | grep 2181 | grep ESTABLISHED | wc -lhistory过滤命令history | grep spark-submit-N: 显示历史记录中最近的N个记录history | grep zkCli.sh -2查看历史执行记录后10条history 10用于显示系统的运行时间和负载情况uptime查看22端口现在运行的情况[roothui ~]# lsof -i :22COMMAND PID USER FDTYPEDEVICE SIZE NODE NAME sshd 1409 root 3u IPv6 5678 TCP*:ssh(LISTEN)COMMAND进程的名称 PID进程标识符 USER进程所有者 FD文件描述符应用程序通过文件描述符识别该文件。如cwd、txt等TYPE文件类型如DIR、REG等 DEVICE指定磁盘的名称 SIZE文件的大小 NODE索引节点文件在磁盘上的标识 NAME打开文件的确切名称查看linux系统是物理机还是虚拟机物理机返回机器型号[rootlaocalhost ~]# dmidecode -s system-product-nameS910-X31E[root192-110-110-110 ~]# dmidecode -s system-product-nameRH2288 V3 虚拟机[rootdev01-188 ~]# dmidecode -s system-product-nameKVM[roothost-192-110-110-110 ~]# dmidecode -s system-product-nameOpenStack Nova[rootnode01 ~]# dmidecode -s system-product-nameVMware Virtual Platform挂载磁盘命令mount/opt/rhel-server-6.4-x86_64-dvd.iso/media/-o loop-o 是mount命令的一个参数Options的首字母后面跟bai着mount选项喽 loop用du来把一个文件当成硬盘分区mount到目录 ro采用只zhi读方式挂接设备 rw采用读写方式挂接设备 iocharset指定访问文件系统所用字符集[roothost-110 yum.repos.d]# mount /mnt/huiq/CentOS-7-x86_64-DVD-1708.iso /media/mount:/dev/loop0 写保护将以只读方式挂载 取消挂载命令umount/media/设置网络代理场景有些linux服务器处于内网并且没有公网ip故要想与外网进行http/https通信只能通过nat或者加proxy的方式。nat服务器有网段的限制而http/https proxy代理则没有使用起来也方便。 在文件.bashrc 中添加 export http_proxyproxy IP:port如 export http_proxy192.168.0.1:8080也可以直接在Linux中执行命令export http_proxy192.168.0.1:8080解压缩gzip -d syslog.5.gz压缩gzip syslog.5解压缩unzip -d /temp test.zip压缩zip -vr apache-ambari.zip apache-ambari-2.7.5-src抓包tcpdump -i eth0 host 192.168.101.45修改属主chown -R root.root /etc/rsync/rsyncd.secrets赋予文件相应的权限(r为4w为2x为1)chmod 644 /backup/hehe/ZC.rar删除用户userdel -r omm删除用户所有进程慎用可别把root用户所有进程删了pkill -u omm查找该内容在该文件的第几行grep -rn hehe hehe.txt输出6:hehe查找该内容在该文件中有几行cat nohup.out | grep 社交治理失败 | wc -l输出12查看目录下文件数量不包含子目录ls -l | grep ^- | wc -l查看目录-t 以文件修改时间排序-r, –reverse 依相反次序排列-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)ll -rth我们通常使用ll来查看文件列表以及文件大小但是默认单位是B看起来很不方便可以加入参数--block-sizeM/G来修改单位ll --block-sizeK #以Kb为单位显示大小ll --block-sizeM #以Mb为单位显示大小ll --block-sizeG #以Gb为单位显示大小将application.properties文件中所有的2018-11-6替换为2018-11-10sed -i s/2018-11-6/2018-11-10/g application.propertieslinux下查看文件第几行内容的方法nl file-name |sed -n 5phead -n file_name|tail -1sed -n 5p filenameawk NR5 filenameCtrlR用于 反向搜索历史命令。它允许快速查找并重新执行之前输入过的命令可参考Linux笔记之终端Ctrlr快捷键vim 编辑器技巧总结:s/vivian/sky/ 替换当前行第一个 vivian 为 sky:s/vivian/sky/g 替换当前行所有 vivian 为 sky:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 skyn 为数字若 n 为 .表示从当前行开始到最后一行:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky可以使用 # 作为分隔符此时中间出现的 / 不会作为分隔符:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/:%s/oradata/apras//user01/apras1 (使用 来 替换 / )/oradata/apras/替换成/user01/apras1/:set nu 显示行号vim 粘贴取消自动缩进:set paste进入paste模式之后再按i进入插入模式进行复制、粘贴就很正常了粘贴完毕后输入下面指定关闭paste模式:set nopastevim 显示中文乱码临时办法每次打开 Vim 后输入set encodingutf-8。永久性办法在当前用户目录下新建.vimrc文件在里面添加set encodingutf-8。GUN nano 保存操作ctrl s、ctrl o、ctrl c、ctrl xFor 循环执行Linux命令fori in{1..105};docurl-khttp://XXX.XXX.XXX.XXX:8081/executor\-dsession.id2bdbeb70-41ed-4b39-a034-327953230631\-dconcurrentOptionrun\-dajaxexecuteFlow\-dprojectMyTest22\-dflowtask_num\-dflowOverride[command]sh helloworld.sh;done--按日期递增跑 d2026-06-14;e2026-06-29;s$(date-d$d%s);t$(date-d$e%s);while[$s-le$t];dodt$(date-d$s%Y-%m-%d);echoProcessing$dt;sudo-u hdfs spark-submit--classcom.heheda.App--name HehedaApp--master yarn--deploy-mode client--driver-memory 3G--driver-cores 2--executor-memory 4G--executor-cores 3--num-executors 5/mnt/hehe-student-1.0-SNAPSHOT-jar-with-dependencies-test.jar pro stu-1710903395401$dt;s$((s86400));done上传下载文件# 上传rz# 下载sz 文件名称场景Linux下使用cpmvrm等命令时经常会碰到“Argument list too long”错误这主要是因为这些命令的参数太长即文件个数过多。解决要删除test文件夹下以jpg结尾的文件find test/ -name *.jpg | xargs -i rm {}场景用xftp将在Windows中写好的shell脚本上传到Linux中执行报错[rootTJY-HD-01 ldjsc]# sh ldjsc.shldjsc.sh: line 2: $\r: command not found : No such file or directoryopclient/bigdata_env解决用vim打开该sh文件输入:set ff回车显示fileformatdos重新设置下文件格式输入:set ffunix保存退出::wq再执行竟然可以了清除缓存[roothui ~]# echo 1 /proc/sys/vm/drop_caches注释放内存前先使用sync命令做同步以确保文件系统的完整性将所有未写的系统缓冲区写到磁盘中包含已修改的i-node、已延迟的块 I/O 和读写映射文件。否则在释放缓存的过程中可能会丢失未保存的文件。/proc是一个虚拟文件系统可以通过对它的读写操作作为与 kernel 实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件来对当前 kernel 的行为做出调整。也就是说我们可以通过调整/proc/sys/vm/drop_caches来释放内存。drop_caches的值可以是 0-3 之间的数字代表不同的含义0不释放系统默认值1释放页缓存PageCache2清除目录项和 inode3释放所有缓存清除页面缓存目录项和 inode释放完内存后改回去让系统重新自动分配内存。echo 0 /proc/sys/vm/drop_cachesLinux下查看文件编码格式在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式。执行后会显示这样的信息fileencodingutf-8Linux下文件编码格式转换文件比较小的时候可以在Windows用UltraEdit等编辑软件直接转换但是我有一次TXT文件有2.6G大小UltraEdit就有点扛不住了。换个思路可以用Linux下的iconv来转换iconv-f GBK-t UTF-8 file1-o file2其中的参数的意义表示-f From 某个编码-t To 某个编码-o 输出到文件可能会报错iconv: illegal inputsequenceat position 1678866原因编码转换的时候如果你的源格式设定为 GB2312 的话而且在转换成 UTF-8 的时候发现程序会报“illegal input sequence at position xxxx”的错误。这是由于你之前的做的假定有问题。GB2312 是国标里面一个最小也是最早的中文编码标准。其中只涵盖了 6,763 个汉字。所以你需要转换的文件的原始的格式可能并不是 GB2312 编码。这个时候你可以用 GB18030 做为源格式来进行转换。GB18030 是最新的国家标准包含了 27,564 个汉字而且向下兼容 GB2312 和 GBK。解决iconv-f gb18030-t UTF-8 hehe.Txt-o heheutf8.Txt如果还是有的汉字字符识别不出来的话可以加-c参数即忽略无效的字符比如“常袆”转换完成为“常袆”后续遇到这种情况上面的命令同样适用即第一个参数是gb18030后来又遇到了编码格式是这种的文件。生成这种文件的原因是数据库导出文件的时候选的这个如果不想每次回话连接之后都执行source变量的话可以把命令放到~/.bashrc文件中vim ~/.bashrc在末尾添加该行source /mnt/huiq/hadoopclient/bigdata_env1.ps -ef|grep syslog或者ps aux|grep syslog注Linux下显示系统进程的命令ps最常用的有ps -ef 和ps aux。这两个到底有什么区别呢两者没太大差别讨论这个问题要追溯到Unix系统中的两种风格System 风格和BSD 风格ps aux最初用到Unix Style中而ps -ef被用在System V Style中两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。来自https://www.linuxidc.com/Linux/2016-07/133515.htmps -ef 是用标准的格式显示进程的、其格式如下其中各列的内容意思如下UID //用户ID、但输出的是用户名PID //进程的IDPPID //父进程IDC //进程占用CPU的百分比STIME //是命令启动的时间如果在 24 小时之内启动的则输出格式为”HH:MM”小时分钟否则就是”Mmm:SS”月份英语单词前 3 个字母第几号TTY //该进程在那个终端上运行若与终端无关则显示? 若为pts/0等则表示由网络连接主机进程。TIME //是累积的 CPU 时间usersystem显示格式通常是”MMM:SS”。分钟秒 可以看出这里并不是指从命令启动开始到现在所花的时间。CMD //命令的名称和参数ps aux 是用BSD的格式来显示、其格式如下同ps -ef 不同的列有USER //用户名%CPU //进程占用的CPU百分比%MEM //占用内存的百分比VSZ //该进程使用的虚拟內存量KBRSS //该进程占用的固定內存量KB驻留中页的数量STAT //进程的状态START //该进程被触发启动时间TIME //该进程实际使用CPU运行的时间其中STAT状态位常见的状态字符有D //无法中断的休眠状态通常 IO 的进程R //正在运行可中在队列中可过行的S //处于休眠状态T //停止或被追踪W //进入内存交换 从内核2.6开始无效X //死掉的进程 基本很少见Z //僵尸进程 //优先级高的进程N //优先级较低的进程L //有些页被锁进内存s //进程的领导者在它之下有子进程l //多线程克隆线程使用 CLONE_THREAD, 类似 NPTL pthreads //位于后台的进程组CPU占用最多的前10个进程ps auxw|head -1;ps auxw|sort -rn -k3|head -10参考Linux终端查看最消耗CPU内存的进程、如何在 Linux 中找出内存消耗最大的进程内存消耗最多的前10个进程ps auxw|head -1;ps auxw|sort -rn -k4|head -10或者ps -eo pid,ppid,%mem,%cpu,cmd --sort-%mem | head或者top -c -b -o %MEM | head -n 20 | tail -15参数解析sort #排序命令-nr #默认使用字符串排序n代表使用数值进行排序 默认从小到大排序 r代表反向排序-k4 #以第4列进行排序2.pid_maxulimit -u和thread_max之间的区别# 这意味着我可以在我的系统中同时执行32768个进程这些进程可以在不同的内存空间中运行。cat/proc/sys/kernel/pid_max 32768# 查看目前进程数为多少ps-eLf|wc-l 3317# 这意味着我可以在共享内存空间中拥有126406个线程。cat/proc/sys/kernel/threads-max 126406# 它表示用户在特定时间可以拥有的总进程数。这意味着用户可以在某个时间点创建的所有进程都可以运行63203进程。ulimit-u 63203参考pid_maxulimit -u和thread_max之间的区别3.useradd与adduser的区别useradd与adduser都是创建新的用户。在CentOs下useradd与adduser是没有区别的都是在创建用户在home下自动创建目录没有设置密码需要使用passwd命令修改密码。而在Ubuntu下useradd与adduser有所不同useradd在使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录而且不会自动选择shell版本也没有设置密码那么这个用户是不能登录的需要使用passwd命令修改密码。adduser在使用该命令创建用户是会在/home下自动创建与用户名同名的用户目录系统shell版本会在创建时会提示输入密码更加友好。userdel只能删除用户并不会删除相关的目录文件。userdel -r可以删除用户及相关目录。参考【系统运维】Linux系统下新增用户命令useradd与adduser的区别4.base64命令的使用# 将编码放到文件中echobase64-w 0/mnt/大数据组件安装.pdf|perl-pes/\n/\\n/g hehe2.txt# 解码回原文件cathehe2.txt|base64--decode de.pdf5. watch 介绍linux 命令 watch 是周期性的用来执行某命令并把某命令执行结果输出到屏幕上。使用 watch 命令可以周期性的监测并输出某命令的执行结果到屏幕上省得手动一遍一遍运行某命令提高工作效率。参数说明-hwatch帮助文档-n设置watch时间间隔默认为2s-d高亮显示变化的区域-t不显示顶部的时间间隔信息例如watch -d hadoop fs -du -h /hbase/参考Linux watch命令使用介绍6. curl 命令在服务器上验证某个页面能否访问curl -v http://xxx.xxx.xxx.xxx:8080获取访问 azkaban 的 sessionIdcurl -k http://xxx.xxx.xxx.xxx:31081/login -d actionlogin -d usernamexxx -d passwordxxx二、Windows命令总结列出8080端口运行的进程netstat -ano | findstr 8080跟据PID寻找进程名称tasklist | findstr 6568根据PID强制关闭某个进程taskkill -PID 6568 -Fcmd从C盘进入D盘d:运行程序输出到日志文件python hehe.py haha.log或者追加python hehe.py haha.log查看本机ipipconfig清除DNS缓存ipconfig /flushdns打开我的电脑Win E锁定电脑Win L启动或停止服务winr打开compmgmt.msc管理注册表打开按住电脑winR快捷键调出运行提示并在输入regedit确定后即可调出。共享目录后在另一台PC机输入地址访问\\(共享主机IP地址)在相应目录打开 cmd查看当前 package.json 内容type package.json | findstr -i tui-editorD:\WorkSpace\PyCharm\bsp-web-frontfindstr/sMarkdownEditor*.vue*.js src\components\MarkdownEditor\index.vue: name:MarkdownEditor,src\views\components-demo\markdown.vue:import MarkdownEditorfrom/components/MarkdownEditorsrc\views\components-demo\markdown.vue: components:{MarkdownEditor},