欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > linux >内容正文

linux

Linux 使用记录

发布时间:2025/5/22 linux 112 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Linux 使用记录 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
作为web程序员,该掌握的 linux 命令有哪些,稍微高级点的? - 刘志军的回答 - 知乎  https://www.zhihu.com/question/64063454/answer/217773144 答案中提到一本书:《The Linux Command Line》,中文版叫《快乐的 Linux 命令行》 内网环境使用 yum 以下为查看 tomcat 日志(在 Jenkins 上构建项目时)的命令: 1、cd /usr/local/apache-tomcat-8.0.47/logs/(进入日志文件夹) 2、ll -rthl(查看最近更新的文件的详细信息) (注:相关命令有 ll、ls,可参考:https://www.cnblogs.com/zhaosunwei/p/7069029.html) 3、tail -f catalina.out ,查看日志内容(开始输入日志信息) 4、ctrl+c:tail命令,停止输出日志信息 有关 tail 命令:https://www.jianshu.com/p/6445f3b95542 vi 文件之后,按 i 进入编辑模式,按 esc 键退出编辑模式,进入命令模式 退出 vim 编辑器(注意各种退出命令之前都有一个冒号): 按Esc键,退出编辑模式,进入命令模式。然后可以键入 >:q to quit(short for:quit) >:q!退出而不保存(短接:退出!) >:wq写和退出(认为写和退出) >:wq!即使文件只有读取权限(如果文件没有写入权限:强制写入),也可以写入和退出。 >:x写和退出(类似于:wq,但如果没有更改就不会写) >:qa to quit all(缩写:quitall) ​ 当您按:,a:将出现在屏幕的底部。 ​ 或者您可以按Esc ZZ(Esc Shift Z Shift Z)写入/保存文件被更改,然后退出。 ​ 或者如果你不想保存更改,可以使用ZQ。 ​ Vim有广泛的帮助,所以键入Esc:helpReturn,你会有你的所有答案,甚至一个整洁的教程。 来源:https://codeday.me/bug/20170304/501.html 注:如果在没有进入编辑模式的情况下(即,只是 vi 文件,没有按 i,则无需按 esc 键再按 :q! 键退出了) exit   退出当前终端会话(断开 xshell 和服务器的连接) cd ..    返回上级目录 注意:cd 和 .. 之间有一个空格 定位 tomcat 中 Catalina.log 中定位错误信息的方法: 1、定位指定异常(具体到哪一行) 2、查询异常附近的信息
https://blog.csdn.net/u010648555/article/details/78073104(内容和排版都非常好) 输出 catalina.out 文件中,6132300 行及之后的所有数据到 tmp 文件夹的 0508.txt 文件 cat -n catalina.out|tail -n +6132300  > /tmp/0508.txt 注: > 表示将信息输出 /tmp 中的 / 表示根目录 /tmp 文件夹是系统自带的 0508.txt 文件时新建的(名字随便起) linux 下进程、端口相互查看方法: http://www.cnblogs.com/MacoLee/p/5664306.html 通过进程名查端口: 1、先查看进程pid ps -ef | grep 进程名 ​ 2、通过pid查看占用端口 netstat -nap | grep 进程pid

 

通过端口查进程: <wiz_code_mirror> netstat -nap | grep 端口号

 

tab 键有补位的功能 pwd 查看当前目录 文件查找 文件搜索 find: https://www.cnblogs.com/chyingp/p/linux-command-find.html 例如: find / .name 'nginx.conf' 注:一定要用英文引号,否则查不到,且不报任何错误

jenkins 上登记项目的配置信息中的 execute shell,我自己加了一些注释: // jenkins 已经连接了 gitlab,并将代码打包 // scp 跨服务器复制,将打包后的代码,复制到目标服务器的特定位置 scp -r /root/.jenkins/workspace/xx_xx_system/target/xx-xx-system-1.0.0-SNAPSHOT.jar root@xx.xx.xx.xxx:/usr/wyl/xx-xx-system // ssh 切换(操作的)服务器 v/null 2>&1 存疑 远程执行的内容在“<< eeooff ” 至“ eeooff ”之间,在远程机器上的操作就位于其中 ssh root@xx.xx.xx.xxx> /dev/null 2>&1 << eeooff // 进入文件夹 cd /usr/wyl/xx-xx-system // 查原 jar 包进程 pid=\`ps -ef | grep /usr/wyl/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar | grep -v grep | awk '{print \$2}'\` // 判断,若原始进程存在,则kill掉,重新启动 if [ -n "\$pid" ]; then// 打印(echo)进程名称echo "kill -9 pid:" \$pidkill -9 \$pid // 判断结束标识 fi // 给新加的jar包,赋所有权限(777) chmod 777 /usr/wyl/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar // java -jar 启动 jar 包 使用 nohup + 命令 + $ 的方式使 jar 包能一直在后台运行,否则关闭操作窗口之后,该进程会停止。其中,nohup 是不挂起的意思 nohup java -jar /usr/wyl/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar >/dev/null 2>&1 & // 查看进程,确定是否启动成功 npid=\`ps -ef | grep /usr/wyl/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar | grep -v grep | awk '{print \$2}'\` // 判断,若新进程存在 if [ -n "\$npid" ]; then// 打印(echo)进程名称echo "new pid:" \$npid fi // 在结束 远程命令“eeooff”之前,加 exit 退出远程节点exit eeooff

 

关于 >/dev/null 2>&1 比较好的文章: http://blog.jobbole.com/109355/ 关于 eeooff 在以下文章的一开始有比较好的解释: https://www.cnblogs.com/softidea/p/6855045.html 最终在服务器的xx项目的同目录下,创建了 restart.sh 文件,内容如下:(更新此段代码,错代码保存    \$2 中的 \ 不应该存在    if [ -n "\$pid" ]?    重视机器说的话   知道有 xshell 编程之后,心理就没有陌生感了,因为学过其他的编程语言) cd /usr/wyl/xx-xx-system pid=\`ps -ef | grep /usr/wyl/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar | grep -v grep | awk '{print \$2}'\` if [ -n "\$pid" ]; thenecho "kill -9 pid:" \$pidkill -9 \$pid fi chmod 777 /usr/wyl/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar nohup java -jar /usr/wyl/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar >/dev/null 2>&1 & npid=\`ps -ef | grep /usr/wyl/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar | grep -v grep | awk '{print \$2}'\` if [ -n "\$npid" ]; thenecho "new pid:" \$npid fi

 

正确的脚本代码: cd /usr/wyl/xx-xx-system pid=$(ps -ef | grep /usr/wyl/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}') if [ -n "\$pid" ]; thenecho "kill -9 pid:" $pidkill -9 $pid fi chmod 777 /usr/wyl/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar nohup java -jar /usr/wyl/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar >/dev/null 2>&1 & npid=$(ps -ef | grep /usr/wyl/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}') if [ -n "\$npid" ]; thenecho "new pid:" $npid fi 迁移服务器之后更新的脚本: cd /usr/local/xx-xx-system pid=$(ps -ef | grep /usr/local/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}') if [ -n "\$pid" ]; thenecho "kill -9 pid:" $pidkill -9 $pid fi chmod 777 /usr/local/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar nohup java -jar /usr/local/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar >/dev/null 2>&1 & npid=$(ps -ef | grep /usr/local/xx-xx-system/xx-xx-system-1.0.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}') if [ -n "\$npid" ]; thenecho "new pid:" $npid fi 用新的 jar 包覆盖原 jar 包之后,只需执行以下命令即可: sh /usr/local/xx-xx-system/restart.sh

 

在 idea 中,操作步骤: (重新部署 spring boot 项目(此处针对项目 xx-xx-system)) 1、打包(Maven:clean、package),生成新的 jar 文件 2、将项目 xx_xx_system 的 target 目录下的 xx-xx-system-1.0.0-SNAPSHOT.jar 文件拷贝到以下位置,将原来的 jar 包覆盖 (Tools → Deployment → Browse Remote Host) 3、在服务器执行命令:(Tools → Start SSH session → 可信主服务器) sh /usr/wyl/xx-xx-system/restart.sh 以执行脚本 restart.sh,重启服务器
对于 spring boot 项目,在服务器上使用 shell 命令重启 jar 包: [root@iz2zec3dge6rwzdxgdl48vz ~]# ps -ef|grep java root 2429 1 0 Sep26 ? 00:22:16 java -jar yy-yy-manage-1.0.0-SNAPSHOT.jar root 5096 5072 0 17:20 pts/3 00:00:00 grep --color=auto java root 6026 1 0 Sep28 ? 00:19:07 java -jar aa-aa-manage-1.0.0-SNAPSHOT.jar root 21019 1 0 Oct10 ? 00:06:54 java -jar xx-xx-system-1.0.0-SNAPSHOT.jar root 22118 1 0 Sep17 ? 00:32:27 java -jar aa-bb-server-1.0.0-SNAPSHOT-1.jar root 22167 1 0 Sep17 ? 00:32:24 java -jar aa-bb-server-1.0.0-SNAPSHOT-2.jar [root@iz2zec3dge6rwzdxgdl48vz ~]# kill -9 21019 [root@iz2zec3dge6rwzdxgdl48vz ~]# ps -ef|grep java root 2429 1 0 Sep26 ? 00:22:16 java -jar yy-yy-manage-1.0.0-SNAPSHOT.jar root 5099 5072 0 17:21 pts/3 00:00:00 grep --color=auto java root 6026 1 0 Sep28 ? 00:19:07 java -jar aa-aa-manage-1.0.0-SNAPSHOT.jar root 22118 1 0 Sep17 ? 00:32:27 java -jar aa-bb-server-1.0.0-SNAPSHOT-1.jar root 22167 1 0 Sep17 ? 00:32:24 java -jar aa-bb-server-1.0.0-SNAPSHOT-2.jar [root@iz2zec3dge6rwzdxgdl48vz ~]# cd /usr/wyl [root@iz2zec3dge6rwzdxgdl48vz wyl]# ll total 1808 drwxr-xr-x 4 root root 4096 Sep 28 18:23 aa-aa-manage drwxr-xr-x 3 root root 4096 Sep 26 11:31 yy-yy-manage drwxr-xr-x 3 root root 4096 Oct 8 10:59 xx-xx-system drwxr-xr-x 3 root root 4096 Oct 15 14:58 java drwxr-xr-x 4 root root 4096 Sep 5 11:25 mysql drwxr-xr-x 4 root root 4096 Sep 6 17:00 private_cloud drwxr-xr-x 5 root root 4096 Sep 7 16:06 aa_bb_server drwxr-xr-x 4 root root 4096 Oct 15 16:15 redis drwxrwxr-x 6 root root 4096 Oct 15 16:16 redis-4.0.7 -rw-r--r-- 1 root root 1729488 Oct 15 16:13 redis-4.0.7.tar.gz drwxr-xr-x 3 root root 4096 Sep 5 08:47 ST_Get_UUID_Tool_Linux -rw-r--r-- 1 root root 76923 Sep 4 11:16 ST_Get_UUID_Tool_Linux.zip [root@iz2zec3dge6rwzdxgdl48vz wyl]# cd xx-xx-system/ [root@iz2zec3dge6rwzdxgdl48vz xx-xx-system]# ll total 49668 -rwxrwxrwx 1 root root 46802373 Oct 15 16:38 xx-xx-system-1.0.0-SNAPSHOT.jar drwxr-xr-x 3 root root 4096 Oct 15 10:43 logs -rw------- 1 root root 4044093 Oct 15 17:20 nohup.out [root@iz2zec3dge6rwzdxgdl48vz xx-xx-system]# nohup java -jar xx-xx-system-1.0.0-SNAPSHOT.jar & [1] 5102 [root@iz2zec3dge6rwzdxgdl48vz xx-xx-system]# nohup: ignoring input and appending output to ‘nohup.out’ ​ [root@iz2zec3dge6rwzdxgdl48vz xx-xx-system]# [root@iz2zec3dge6rwzdxgdl48vz xx-xx-system]# [root@iz2zec3dge6rwzdxgdl48vz xx-xx-system]# ps -ef|grep java root 2429 1 0 Sep26 ? 00:22:16 java -jar yy-yy-manage-1.0.0-SNAPSHOT.jar root 5102 5072 99 17:22 pts/3 00:00:37 java -jar xx-xx-system-1.0.0-SNAPSHOT.jar root 5149 5072 0 17:22 pts/3 00:00:00 grep --color=auto java root 6026 1 0 Sep28 ? 00:19:07 java -jar aa-aa-manage-1.0.0-SNAPSHOT.jar root 22118 1 0 Sep17 ? 00:32:27 java -jar aa-bb-server-1.0.0-SNAPSHOT-1.jar root 22167 1 0 Sep17 ? 00:32:24 java -jar aa-bb-server-1.0.0-SNAPSHOT-2.jar [root@iz2zec3dge6rwzdxgdl48vz xx-xx-system]#

 


nginx

查找 nginx.conf 文件的位置: find / .name 'nginx.conf' 修改 nginx.conf 文件之后,检查该配置文件是否正确: /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf 参考: 介绍下检查nginx配置文件是否正确的方法,在nginx查检配置文件,主要是用nginx -t命令, 如何检查配置是否正确呢?用nginx -t命令就好了。 一、nginx的几个命令参数Nginx 安装后只有一个程序文件,本身并不提供各种管理程序,它是使用参数和系统信号机制对 Nginx 进程本身进行控制的。 Nginx 的参数包括:可以这样使用 /usr/local/nginx/sbin/nginx -参数 -c <path_to_config>:使用指定的配置文件而不是 conf 目录下的 nginx.conf 。 -t:测试配置文件是否正确,在运行时需要重新加载配置的时候,此命令非常重要,用来检测所修改的配置文件是否有语法错误。 -v:显示 nginx 版本号。 -V:显示 nginx 的版本号以及编译环境信息以及编译时的参数。 二、检测新的conf文件 测试当前nginx.conf文件是否正确,使用命令: 复制代码 代码示例: [root@localhost]/usr/local/nginx/conf# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful ​ 得到如此结果,说明新conf文件没有错误。 如果有错,它会提示在哪行出了错,再修改错误即可。 ​ 作者:金星show 链接:https://www.jianshu.com/p/26d562bf69bb 來源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

nginx 启动、重启、关闭命令: http://www.cnblogs.com/derekchen/archive/2011/02/17/1957209.html nginx 启动命令: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 查看 nginx 进程(其中 master 为主进程): ps -ef|grep nginx 端口号,要在阿里云添加安全组 配置文件新添内容: <wiz_code_mirror> # 该段为新加部分,为了给xx系统的图片做代理server {listen 9016;server_name xx.xx.xx.xxx;root /xx_xx_system/upload_file; ​location / {} ​error_page 404 /404.html;location = /40x.html {} ​error_page 500 502 503 504 /50x.html;location = /50x.html {}}

 

 

转载于:https://www.cnblogs.com/stone94/p/10070070.html

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的Linux 使用记录的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。