Linux系统操作(2):关于管理linux服务器常用指令mark (for myself)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_41554005/article/details/90181462

查询gpu状态

gpustat -cpu

网络服务重启

sudo systemctl restart networking.service

sudo service network-manager restart

返回当前位置

pwd

通过命令: id username

来查看用户信息

安装ubuntu时,创建了一个普通用户,没有sudo权限,执行sudo相关命令失败,原因该普通用户没有加到超级用户组,

使用如下命令可以添加到用户组(也可是超级用户组)。

命令如下:

sudo usermod -aG 超级用户组名 用户名

例子:sudo usermod -aG sudo username

其中a:表示添加,G:指定组名

第二种方法是直接修改,/etc/sudoers

修改sudoes文件也有两种形式,

其一是给单个用户添加sudo权限。方法是

将这一行天追加udoers文件中:username ALL=(ALL:ALL) ALL

者方式取消用户的sudo权限,就是删除改行。

其二是给用户组添加sudo权限。方法是

%admin ALL=(ALL:ALL) ALL

给admin用户组所有的用户都具有sudo权限。

2,从用户组中删除指定用户

sudo usermod -G 用户组名 用户名

列子:sudo usermod -G 组1 -G 组2 用户名

其中 -G 表示:加到组1 和 组2,可以添加到多个组,当然也可以是一个组。

    -G的含义是把用户添加到指定的用户组,但是会自动从其他组中删除。

    -a的含义是追加,但不会从其他组中删除。

创建新用户adduser
https://blog.csdn.net/timothy93bp/article/details/77679000

ps -ef|grep mcfcm_st|grep -v grep|cut -c 9-15|xargs kill -9

管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。下面说说用管道符联接起来的

几个命令:
“ps - ef”是linux 里查看所有进程的命令。这时检索出的进程将作为下一条命令“grep mcfcm_st”的输入。
“grep mcfcm_st”的输出结果是,所有含有关键字“mcfcm_st”的进程,这是Oracle数据库中远程连接进程的共同特点。
“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。
“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。
“xargs kill -9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -9”命令的参数,并执行该令。

“kill -9”会强行杀掉指定进程,这样就成功清除了oracle的所有远程连接进程。其它类似的任务,只需要修改“grep mcfcm”中的关键字部分就可以了。

ps -ef|grep mcfcm|grep -v grep|cut -c 9-15|xargs kill -9

作者:叶子一哥
来源:CSDN
原文:https://blog.csdn.net/abc5382334/article/details/45311279
版权声明:本文为博主原创文章,转载请附上博文链接!

2、 killall 进程名

  如杀死java相关进程:killall java

1、ps指令与kill配合:

   ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9

管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。下面说说用管道符联接起来的

几个命令:

 “ ps - ef”是Red Hat 里查看所有进程的命令。这时检索出的进程将作为下一条命令“grep LOCAL=NO”的输入。 

“grep LOCAL=NO”的输出结果是,所有含有关键字“LOCAL=NO”的进程,这是Oracle数据库中远程连接进程的共同特点。

“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。

“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。

“xargs kill -9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -9”命令的参数,并执行该令。

     “kill -9”会强行杀掉指定进程,这样就成功清除了oracle的所有远程连接进程。其它类似的任务,只需要修改“grep LOCAL=NO”中的关键字部分就可以了

作者:lgh1117
来源:CSDN
原文:https://blog.csdn.net/lgh1117/article/details/48402285
版权声明:本文为博主原创文章,转载请附上博文链接!

nohup 命令可以使命令永久的执行下去,和终端没有关系,退出终端也不会影响程序的运行;
& 是后台运行的意思,但当用户退出的时候,命令自动也跟着退出。
那么,把两个结合起来nohup 命令 &这样就能使命令永久的在后台执行

以run_train.sh文件为例

source env_set.sh

nohup python -u train_image_classifier.py
–dataset_name=KaTeX parse error: Expected 'EOF', got '\ ' at position 14: DATASET_NAME \̲ ̲ --dataset_dir…DATASET_DIR
–checkpoint_path=KaTeX parse error: Expected 'EOF', got '\ ' at position 17: …HECKPOINT_PATH \̲ ̲ --model_name=…TRAIN_DIR
–learning_rate=0.001
–learning_rate_decay_factor=0.76
–num_epochs_per_decay=50
–moving_average_decay=0.9999
–optimizer=adam
–ignore_missing_vars=True
–batch_size=32 > output.log 2>&1 &
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
TensorFlow中运行程序,在run_train.sh文件前后添加nohup 命令 > output.log 2>&1 &让命令在后台执行。

其中 0、1、2分别代表如下含义:
0 – stdin (standard input)
1 – stdout (standard output)
2 – stderr (standard error)

nohup+最后面的&是让命令在后台执行

output.log 是将信息输出到output.log日志中

2>&1是将标准错误信息转变成标准输出,这样就可以将错误信息输出到output.log 日志里面来。

查看日志(动态显示)

tail -f output.log
1
1
查看日志(一次性显示整个文件)

cat output.log
1
1
查看当前Python进程

ps -ef |grep python
1
1
杀死进程

sudo kill 进程号
1
1
kill 9 进程号 #绝杀

当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨)。为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。

1、&

当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。例如:sh test.sh &

适合在后台运行的命令有f i n d、费时的排序及一些s h e l l脚本。在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:

command > out.file 2>&1 &
这样,所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。
注意:当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进程,或杀死它。(ps -ef | grep 进程号 或者 kill -9 进程号)

2、nohup命令:

使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。nohup命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。该命令的一般形式为: nohup command &

如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:

nohup command > myout.file 2>&1

【实例】

nohup.sh

i=1
while [ $i -le 100000 ]
do
echo $i >> result.txt
i=expr $i + 1
done
1)使用sh nohup.sh 执行,当前命令行就会hang住,如图:

2)使用sh nohup.sh & 执行,就会把作业提交到后台,释放当前命令行,同时显示了进程号;但是如果帮当前命令窗口关闭,整个作业就停止了;

注:可以使用ps -ef | grep nohup.sh 来查看后台作业运行情况。

3)使用nohup sh nohup.sh > log 2>1& & ,同样把作业提交到后台,释放当前窗口;而且即使把当前命令窗口关闭,作业仍然运行。

注:使用nohup执行命令,不会返回当前进程号,要跟踪后台作业,可以使用jobs命令查看;或者使用 ps -ef | grep nohup.sh 来查看

3、ctrl + z
可以将一个正在前台执行的命令放到后台,并且处于暂停状态。

4、Ctrl+c

终止前台命令。

5、jobs
查看当前有多少在后台运行的命令。
jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。

6、bg
将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。
如图,先前台运行一个脚本,然后转到后台,查看后台作业情况

7、fg
将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出。


作者:赶路人儿
来源:CSDN
原文:https://blog.csdn.net/liuxiao723846/article/details/47754479
版权声明:本文为博主原创文章,转载请附上博文链接!

1、运行.sh文件

直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令。

(1)&命令

      功能:加在一个命令的最后,可以把这个命令放在后台执行

(2)nohup命令

      功能:不挂断的运行命令

2、查看当前后台运行的命令

有两个命令可以用,jobs和ps,区别是jobs用于查看当前终端后台运行的任务,换了终端就看不到了。而ps命令用于查看瞬间进程的动态,可以看到别的终端运行的后台进程。

(1)jobs命令

    功能:查看当前终端后台运行的任务

   

   jobs -l选项可显示当前终端所有任务的PID,jobs的状态可以是running,stopped,Terminated。+ 号表示当前任务,- 号表示后一个任务。

(2)ps命令

      功能:查看当前的所有进程

      

     ps -aux | grep "test.sh"    #a:显示所有程序  u:以用户为主的格式来显示   x:显示所有程序,不以终端机来区分

3、关闭当前后台运行的命令

  kill命令:结束进程

 (1)通过jobs命令查看jobnum,然后执行   kill %jobnum

 (2)通过ps命令查看进程号PID,然后执行  kill %PID

   如果是前台进程的话,直接执行 Ctrl+c 就可以终止了

4、前后台进程的切换与控制

 (1)fg命令

   功能:将后台中的命令调至前台继续运行

   如果后台中有多个命令,可以先用jobs查看jobnun,然后用 fg %jobnum 将选中的命令调出。

 (2)Ctrl + z 命令

   功能:将一个正在前台执行的命令放到后台,并且处于暂停状态

 (3)bg命令

   功能:将一个在后台暂停的命令,变成在后台继续执行

   如果后台中有多个命令,可以先用jobs查看jobnum,然后用 bg %jobnum 将选中的命令调出继续执行。

作者:求知之人
来源:CSDN
原文:https://blog.csdn.net/u013846293/article/details/74003051
版权声明:本文为博主原创文章,转载请附上博文链接!

mark
https://www.jianshu.com/p/747e0d5021a2

Linux 查看某个用户的进程
To view only the processes owned by a specific user, use the following command:

top -U [USERNAME]

and replace [USERNAME] with the name of the user.

引言
研发需要知道某 Python 程序脚本所在目录,这研发,还好他不是后端研发。
不过当我们使用 ps 或 top 命令查看时,并不能查看到 Python 程序脚本的绝对路径。
我模糊地记得可以在/proc/${PID}下可以查到相关信息,但是很久没用过,忘记了,
现在我来重新学习记录下。

Linux 查看进程的详细信息
Linux 在启动一个进程时,系统会在/proc下创建一个以 PID 命名的文件夹,在该文件夹下会有我们的进程的信息, 其中包括一个名为 exe 的文件即记录了绝对路径,通过 ll 或 ls –l命令即可查看。

cwd 符号链接的是进程运行目录;
exe 符号链接就是执行程序的绝对路径;
cmdline 就是程序运行时输入的命令行命令;
environ 记录了进程运行时的环境变量;
fd 目录下是进程打开或使用的文件的符号连接。

https://blog.csdn.net/longerzone/article/details/8015941
https://blog.csdn.net/gatieme/article/details/52777721
https://www.cnblogs.com/baby123/p/6477429.html
https://blog.csdn.net/liuyanfeier/article/details/62422742

tmux new -s mysession
tmux attach -t mysession
pkill -u 你的用户名

root修改普通用户的密码:sudo passwd user_name然后连续两次输入新的用户密码即可;2. root查看普通用户密码:密码是无法被查看的,即使是root也不行,因此普通用户要是遗忘了密码,可以参照上一步,让管理员使用root权限修改密码,然后再将新密码告知普通用户;3. 普通用户修改自己的密码:passwd直接使用上述命令即可,之后它会要求你输入原先的密码和新的密码。

作者:余含军
链接:https://www.jianshu.com/p/a0a7645a2c2e
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

猜你喜欢

转载自blog.csdn.net/qq_41554005/article/details/90181462