前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux系统相关2

linux系统相关2

原创
作者头像
用户6841540
发布2024-07-31 09:11:06
1140
发布2024-07-31 09:11:06
举报
文章被收录于专栏:安义技术分享

linux运行批处理文件(bat)

bat是批处理文件,在windows和linux上都可以使用。

不过在linux的命令行中不可以直接敲"xxx.bat",系统会去找所有的命令。

想要调用bat文件,需要写绝对路径,比如"/home/myDir/xxx.bat",或者是切换到bat文件所在的目录,然后键入:"./xxx.bat".这里的"./"是告诉系统在当前目录下找名为"xxx.bat"的文件执行。

在bat文件中不可以使用windows特有的命令。

在执行bat文件之前,确保bat文件的权限是可执行的,如果没改权限的话,很有可能会报错误:Permission denied.更改权限的方式请自己查询"chmod"命令的使用方法.

注意:

其实这种方法不止是bat文件,各种可执行文件都可以以这种方式运行。

端口问题

有的时候,端口会被占用,导致一系列问题,比如:

clash端口显示为0,导致代理失败。这可能是因为clash的进程没有结束,导致端口一直被占用。当然这只是其中一种情况,其他的情况请自行百度。这种问题的解决方式如下:

1.查看当前所有端口(已知端口的话这步可以跳过)

代码语言:bash
复制
netstat -nultp

指令结果中端口为listen即被占用。

2.查看自己的端口有没有被占用

代码语言:bash
复制
# 查看7890端口是否被占用
netstat -anp |grep 7890

没有LISTEN那一行,所以就表示没有被占用。此处注意,图中显示的LISTENING并不表示端口被占用,不要和LISTEN混淆哦,查看具体端口时候,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用了。

在Linux 上的 /etc/services 文件可以查看到更多关于保留端口的信息。

3.找到对应端口在系统中的进程ID(PID)

代码语言:bash
复制
lsof -i :7890

4.结束进程

代码语言:bash
复制
kill -9 [PID]
注意:有的时候电脑端没用,但手机端或者平板端正常。可能有以下原因:
  • 电脑端节点链接没更新
  • 浏览器安装有代理插件
  • 没有打开系统接口
  • 如果上面的都没有问题,那么可以尝试打开tune模式,有网后再关掉tune即可(有点玄学,还不清楚是为什么)

xshell使用技巧

快捷键

功能

ctrl+insert

复制

shift+insert

粘贴

shift/ctrl+table

快速切换打开的tab

参考链接

Xshell不能使用退格、删除键的解决方案

解决方法:设置xshell,文件–>打开—>属性–>终端 -->键盘 把delete 和backspace序列改为 ASCII 127即可。

不想设置可以通过ctrl+backsace实现删除

xshell修改快捷键

参考链接

linux下运行.m文件

进入m文件所在目录后,运行

代码语言:bash
复制
$ matlab -nodesktop -nosplash -r matlabfile

只用文件名matlabfile,不能添加.m

第二种方式

可以用xmanger远程显示界面,但画图可能会报错:

代码语言:bash
复制
MATLAB has experienced a low-level graphics error, and may not have drawn correctly.
Read about what you can do to prevent this issue at Resolving Low-Level Graphics Issues then restart MATLAB.

这是因为显卡不支持,解决办法:

在matlab的命令框中输入

代码语言:bash
复制
opengl('save','software')

重启matlab即可

第二种方式延迟比较高

注:linux系统下matlab快捷键与windows不同。

后台运行.m文件

与python不同,matlab相对来说麻烦一点

代码语言:bash
复制
nohup matlab <test2.m> fill.out &

<指向python,>指向要输出的日志文件,可以没有。即:

代码语言:bash
复制
nohup /usr/matlab/bin/matlab   <fill.m> &

上面这个也没有将matlab写入环境变量的情况。

参考博客

linux如何修改文件内容

以修改index.php文件为例,其他文件类似(例如py文件,m文件等)

1、使用快捷键打开终端命令行模式。

2、输入以下命令进入index.php文件并按下“i”键进入编辑模式。

代码语言:bash
复制
vim index.php

3、修改完之后,通过“Esc键” “:wq”保存退出即可。

查看特定进程

Linux系统是一个强大的操作系统,它可以运行很多有用的进程,从而为用户提供充分的功能服务。有时用户可能想要查找特定进程,这意味着用户需要知道该进程的名称、PID和其他信息。本文将介绍在Linux系统中寻找特定进程的方法。

首先,在Linux系统中使用ps命令查找特定进程。例如,可以使用ps -ef | grep 进程名称 命令来查找特定进程。该命令支持正则表达式,可以模糊匹配特定进程,并显示该进程的PID、用户ID等信息,以下是该命令的示例:

代码语言:bash
复制
$ ps -ef | grep apache2
root      2890     1  0  2017  ?  03:45:41 /usr/sbin/apache2 - k start

linux磁盘空间对不上

发现,Used和Avail加起来不够Size,莫名被吃掉一部分

其实这是Linux文件系统的一种安全策略,它默认会为root用户保留5%的磁盘空间,留作紧急情况使用。这样能保证有些关键应用(比如数据库)在硬盘满的时候有点余地,不致于马上就 crash

我们可以通过tune2fs修改预留空间的比例

代码语言:bash
复制
tune2fs -m 1 /dev/vda1

linux下安装matlab的一些问题

linux下安装好后可能会出现matlab无法连接到mathwork,解决方法:重新安装mathwork

下载链接

执行以下命令安装就行

代码语言:bash
复制
./mathworksservicehost_2023.3.0.6_glnxa64_installer.bin

但执行matlab一段时间后,不知道为什么会闪退,报错信息Segmentation fault (core dumped),现在这个错误莫名其妙没有了。

断开xshell时程序依然执行:screen

GNU Screen一款由GNU计划开发的用于命令行终端切换的软件,可以当做窗口管理器的命令行界面版本。只要Screen本身没有被终止,在其内部运行的会话都可以恢复,特别适合执行一些运行时间长的任务。

安装screen工具。

Linux系统默认没有screen工具,需要先进行安装。

CentOS系列系统安装命令如下所示。

说明 CentOS 6与CentOS 8操作系统版本结束了生命周期(EOL),按照社区规则,CentOS 6/8的源地址内容已移除。当您在CentOS 6/8系统内继续使用默认配置的源地址时会发生报错。建议您先切换CentOS 6/8的源地址,然后再进行操作。具体操作,请参见CentOS 6 EOL如何切换源?和CentOS 8 EOL如何切换源?

代码语言:bash
复制
yum install screen

Ubuntu系列系统安装

代码语言:bash
复制
sudo  apt-get  install screen

执行如下命令,创建screen窗口。

代码语言:bash
复制
screen -S [$Name]

执行如下命令,列出screen窗口。

代码语言:bash
复制
screen -ls

当需要运行脚本、执行程序时,在命令前添加screen即可。

同时按Ctrl+a+d键,就可以退出SSH登录,但不会影响screen程序的运行。

需要继续工作时,登录实例,然后执行如下命令,恢复会话即可。

代码语言:bash
复制
screen -r -d

示例

第一种:screen命令,需要安装

yum install screen #安装

screen -S new1  #开启一个new1的screen

执行一些命令,然后中断ssh,直接关闭

然后又ssh重新登录进去

screen -r new1  #可以看到依然在的

解决screen状态为Attached连上不的问题

screen -ls #列出screen

screen -D -r <session-id> #-D -r 先踢掉前一用户,再登陆

screen -ls                    #查看所有screen会话

按键盘上面的Ctrl+a,然后再按d    #保存当前的screen会话

exit                         #退出screen

screen -wipe  new1            #删除会话

保留screen做法: 先按ctrl+a,再按d,exit是直接退出screen新建窗口

screen -X -S   quit

断开xshell时程序依然执行:nohup

nohup

直接执行

代码语言:bash
复制
nohup python3 main.py 

查看服务运行日志 tail -f nohup.out

& 表示后台运行

将输出放到 main.log 文件中

代码语言:bash
复制
nohup python3 main.py  > main.log 

查看应用运行进程

代码语言:bash
复制
ps -ef |grep python
代码语言:bash
复制
jobs -l  //查看任务,返回任务编号n和进程号
bg  %n   //将编号为n的任务转后台运行
fg  %n   //将编号为n的任务转前台运行
ctrl+z    //挂起当前任务
ctrl+c    //结束当前任务

关闭进程

kill -9 + 进程号

代码语言:bash
复制
kill -9 6189

在执行命令nohup sh xxx.sh &的时候,提示

nohup: ignoring input and appending output to `nohup.out’

意思是 :忽略输入并将输出附加到`nohup.out’

程序也能正常启动。

如果不想看到这个提示可以使用:

nohup sh xxx.sh >a.log 2>& 1 &

或者

nohup sh xxx.sh &>a.log &

如果不想输入到a.log 可以使用

nohup sh xxx.sh >/dev/null 2>& 1 &

其中:

nohup放到命令开头表示不挂起,表示即使退出终端该进程也不会掉, & 放在命令到结尾,表示后台运行

/dev/null 表示空设备文件 (位桶(bit bucket)或者黑洞(black hole)的地方)

0 表示stdin标准输入

1 表示stdout标准输出

2 表示stderr标准错误

2>&1标识将错误输出重定向到标准输出,注意>& 不能分开

为用户增加sudo权限(修改sudoers文件)

在使用Linux系统过程中,通常情况下,我们都会使用普通用户进行日常操作,而root用户只有在权限分配及系统设置时才会使用,而root用户的密码也不可能公开。普通用户执行到系统程序时,需要临时提升权限,sudo就是我们常用的命令,仅需要输入当前用户密码,便可以完成权限的临时提升。在使用sudo命令的过程中,我们经常会遇到当前用户不在sudoers文件中的提示信息,如果解决该问题呢?通过下面几个步骤,可以很简单的解决此问题。

1、切换到root用户权限

代码语言:bash
复制
Last login: Tue Sep 24 20:50:51 2013 from 192.168.30.171
[user@Compile ~]$ su root
password:
[root@Compile user]#

2、查看/etc/sudoers文件权限,如果只读权限,修改为可写权限

代码语言:bash
复制
[root@Compile user]# ls -l /etc/sudoers
-r--r-----. 1 root root 4030 9月  25 00:57 /etc/sudoers
[root@Compile user]# chmod 777 /etc/sudoers
[root@Compile user]# ls -l /etc/sudoers
-rwxrwxrwx. 1 root root 4030 9月  25 00:57 /etc/sudoers
[root@Compile user]#

执行vi命令,编辑/etc/sudoers文件,添加要提升权限的用户;在文件中找到root ALL=(ALL) ALL,在该行下添加提升权限的用户信息,如:

代码语言:bash
复制
root ALL=(ALL) ALL
#在后面一行加上
user ALL=(ALL) ALL

说明:格式为(用户名 网络中的主机=(执行命令的目标用户) 执行的命令范围)

4、保存退出,并恢复/etc/sudoers的访问权限为440

代码语言:bash
复制
[root@Compile user]# chmod 440 /etc/sudoers
[root@Compile user]# ls -l /etc/sudoers
-r--r-----. 1 root root 4030 9月  25 00:57 /etc/sudoers
[root@Compile user]#

5、切换到普通用户,测试用户权限提升功能

代码语言:bash
复制
su username
sudo su

Linux忘记账户密码(虚拟机)

关于 虚拟机下 Redhat7版本 root用户密码忘记的解决方法

一、开机

二、出现这个不用管,点取消(没有出现也是正常的)

三、出现这个,键盘敲e进入编辑

四、鼠标移动到最下,在UTF-8后,写rd.break,然后 ctrl+x 进入到下一个环节

五、等待出现命令行

六、按顺序敲如下命令:

七、注意此时的命令前缀已经不同,输入命令,修改密码

八、注意输入上个命令后,会在几个小方格后停顿一下,也就是输入第一次密码(有可能也不会出现小方格乱码,按照提示进行即可)

重复密码,也是在下一行方格后停顿。

注意:密码输入皆不显示。自己注意输入正确即可

九、出现passwd后面接一串方格,就说明改完了。接着输入下列命令

十、最后等待,重启就好(时间有点长)。出现登录画面,ok,你就可以通过root的新密码登录了(但该机有点问题,重启报错,下次登录就会发展密码已经修改完成:账号名为root)

image.png
image.png

普通用户忘记密码

解决方法较为简单,使用超级用户身份登录后,修改普通用户的密码

代码语言:bash
复制
passwd username         ##username为需要配置的用户名称

如下所示:

代码语言:bash
复制
[root@localhost ~]# passwd miya
Changing password for user miya.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

参考文章1文章2

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • linux运行批处理文件(bat)
  • 端口问题
    • 1.查看当前所有端口(已知端口的话这步可以跳过)
      • 2.查看自己的端口有没有被占用
        • 3.找到对应端口在系统中的进程ID(PID)
          • 4.结束进程
          • xshell使用技巧
          • Xshell不能使用退格、删除键的解决方案
          • xshell修改快捷键
          • linux下运行.m文件
            • 第二种方式
              • 后台运行.m文件
              • linux如何修改文件内容
                • 以修改index.php文件为例,其他文件类似(例如py文件,m文件等)
                • 查看特定进程
                • linux磁盘空间对不上
                • linux下安装matlab的一些问题
                • 断开xshell时程序依然执行:screen
                  • 示例
                  • 断开xshell时程序依然执行:nohup
                  • 为用户增加sudo权限(修改sudoers文件)
                  • 1、切换到root用户权限
                  • 2、查看/etc/sudoers文件权限,如果只读权限,修改为可写权限
                  • 执行vi命令,编辑/etc/sudoers文件,添加要提升权限的用户;在文件中找到root ALL=(ALL) ALL,在该行下添加提升权限的用户信息,如:
                  • 4、保存退出,并恢复/etc/sudoers的访问权限为440
                  • 5、切换到普通用户,测试用户权限提升功能
                  • Linux忘记账户密码(虚拟机)
                  • 关于 虚拟机下 Redhat7版本 root用户密码忘记的解决方法
                    • 一、开机
                      • 二、出现这个不用管,点取消(没有出现也是正常的)
                        • 三、出现这个,键盘敲e进入编辑
                          • 四、鼠标移动到最下,在UTF-8后,写rd.break,然后 ctrl+x 进入到下一个环节
                            • 五、等待出现命令行
                              • 六、按顺序敲如下命令:
                                • 七、注意此时的命令前缀已经不同,输入命令,修改密码
                                  • 八、注意输入上个命令后,会在几个小方格后停顿一下,也就是输入第一次密码(有可能也不会出现小方格乱码,按照提示进行即可)
                                    • 九、出现passwd后面接一串方格,就说明改完了。接着输入下列命令
                                      • 十、最后等待,重启就好(时间有点长)。出现登录画面,ok,你就可以通过root的新密码登录了(但该机有点问题,重启报错,下次登录就会发展密码已经修改完成:账号名为root)
                                      • 普通用户忘记密码
                                      领券
                                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档