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


文章目录

1、查询gpu状态

gpustat -cpu
nvidi-smi

2、网络服务配置及重启

2.1 ubuntu网络相关问题

2.1.1 网络重启

sudo systemctl restart networking.service 
sudo service network-manager restart

2.1.2 配置网络服务参数

16.04版本
sudo vim /etc/network/interfaces
18.04 Desktop 版本

Ubuntu Desktop 18.04 设置静态IP方法(超详细)

18.04 Server版本

新的版本采用了netplan管理网络,在命令行中配置有点差别,配置文件在/etc/netplan/*.yaml

*.yaml就是那个配置文件,不同的计算机文件名称是不同的。

文件具体配置如下

network: 
  version: 2
  ethernets: 
    eno1: 
      addresses: [202.1**.1**.164/24]
      gateway4: 202.1*.1**.1
      dhcp4: no
      nameservers: 
        addresses: [202.117.0.20,202.117.0.21]  

2.2 centos网络相关问题

2.2.1 网络重启

systemctl restart network.service
或者
service network restart

2.2.2 配置网络服务参数

vi  /etc/sysconfig/network-scripts/ifcfg-eth0

2.3 linux查看网络信息

cat /etc/sysconfig/network-scripts/ifcfg-eth0
cat /etc/sysconfig/network-scripts/ifcfg-l0
ifconfig  (查看网络信息)
ip -a

3、返回当前位置

pwd

4、退出账号

logout

5、临时修改系统语言无需重启

echo $LANG
locale
LANG=zh_CN.UTF-8
locale
echo $LANG

在这里插入图片描述

6、添加用户、用户组管理员权限

6.1 创建新用户

创建新用户

adduser usernameXXX

这种方法会直接创建对应的用户的文件夹

6.2 用户登录权限的关闭与打开

usermod -L usernameXXX ##Lock 帐号usernameXXX
usermod -U usernameXXX ##Unlock 帐号usernameXXX

6.3 查询组内的成员

grep 'Plants' /etc/group

Plants 为组的名字,可用于查询组内成员查询超级用户组

6.4 查询用户属于那些组

id username

在这里插入图片描述

6.5 添加用户管理员权限

方法一:

sudo usermod -aG 超级用户组名 usernameXXX
例子:sudo  usermod -aG sudo username
其中a:表示添加,G:指定组名(把usernameXXX添加到组内)

这种方法不建议使用 这样还需要查询超级用户用户组的成员(查询组内成员方法6.3 移除组内成员方法6.7)

方法二:

sudo vim /etc/sudoers

username ALL=(ALL:ALL) ALL追加到sudoers文件中:
取消用户的sudo权限,就是删除改行。

6.6 添加用户组管理员权限

用户组添加sudo权限。
groupname ALL=(ALL:ALL) ALL追加到sudoers文件中:
groupname用户组所有的用户都具有sudo权限

6.7 将用户移入或移出组

sudo gpasswd -a username groupname   # -a add
sudo gpasswd -d username groupname   # -d delete

7、更改用户密码

7.1 更改root密码

如果是以root身份登录,修改root密码.只要输入

passwd

就会出现:

New password:
Retype new password:

按提示输入密码确认即可

7.2 更改其他用户密码

passwd username

举例

passwd username
New password:
Retype new password:

可以输入passwd --help来查看该命令的使用方法.

8、进入超级权限

8.1 ubuntu

sudo -i

8.2 centos

su

9、apt更换国内源

ubuntu16.04和18.04更换国内源
写在前面:安装好ubuntu双系统后,默认的软件更新源是国外的,在国内使用速度很慢,用"apt install xxx"安装软件时可能出现"网络不可达"、“你的网络需要认证吗”、"无法定位软件包"等错误,所以我们需要更换成国内的源,这样才能正常安装和更新软件。

9.1 ubuntu16.04更换国内源

9.1.1 备份原始源文件source.list

桌面打开终端,执行命令:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

9.1.2 修改源文件source.list

  • 终端执行命令:sudo chmod 777 /etc/apt/source.list更改文件权限使其可编辑;
  • 执行命令:sudo gedit /etc/apt/source.list打开文件进行编辑;
  • 删除原来的文件内容,复制下面的任意一个到其中并保存(常用的是阿里源和清华源,推荐阿里源);
  阿里源:
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

  清华源:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

	浙大源
deb http://mirrors.zju.edu.cn/ubuntu xenial main universe restricted multiverse
deb http://mirrors.zju.edu.cn/ubuntu xenial-security main universe restricted multiverse
deb http://mirrors.zju.edu.cn/ubuntu xenial-updates main universe restricted multiverse
deb http://mirrors.zju.edu.cn/ubuntu xenial-backports main universe restricted multiverse
deb-src http://mirrors.zju.edu.cn/ubuntu xenial main universe restricted multiverse
deb-src http://mirrors.zju.edu.cn/ubuntu xenial-security main universe restricted multiverse
deb-src http://mirrors.zju.edu.cn/ubuntu xenial-updates main universe restricted multiverse
deb-src http://mirrors.zju.edu.cn/ubuntu xenial-backports main universe restricted multiverse

9.1.3 更新源

桌面终端执行命令:sudo apt update更新软件列表,换源完成。

9.2 ubuntu18.04更换国内源

9.2.1 备份原始源文件source.list

桌面打开终端,执行命令:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

9.2.2 修改源文件source.list

  • 终端执行命令:sudo chmod 777 /etc/apt/source.list更改文件权限使其可编辑;
  • 执行命令:sudo gedit /etc/apt/source.list打开文件进行编辑;
  • 删除原来的文件内容,复制下面的任意一个到其中并保存(常用的是阿里源和清华源,推荐阿里源,内容可以去博客复制);
  阿里源:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
  清华源:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

  163源:
deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse

	浙大源
deb http://mirrors.zju.edu.cn/ubuntu bionic main universe restricted multiverse
deb http://mirrors.zju.edu.cn/ubuntu bionic-security main universe restricted multiverse
deb http://mirrors.zju.edu.cn/ubuntu bionic-updates main universe restricted multiverse
deb http://mirrors.zju.edu.cn/ubuntu bionic-backports main universe restricted multiverse
deb-src http://mirrors.zju.edu.cn/ubuntu bionic main universe restricted multiverse
deb-src http://mirrors.zju.edu.cn/ubuntu bionic-security main universe restricted multiverse
deb-src http://mirrors.zju.edu.cn/ubuntu bionic-updates main universe restricted multiverse
deb-src http://mirrors.zju.edu.cn/ubuntu bionic-backports main universe restricted multiverse

9.2.3 更新源

桌面终端执行命令:sudo apt update更新软件列表,换源完成。

10、浙江大学上网centos设置

链接教程

11、文件与磁盘的指令

11.1 查看目前所有文件系统的总体可用空间、使用情况、挂载情况

df -h

查看已经挂在在系统上的磁盘的使用空间剩余空间、磁盘对应的挂在路径

df 只会列出已挂载的文件系统信息,对于没有挂载的文件系统是查看不到的。
在这里插入图片描述

11.2 查看具体目录的大小

  • 查看不同深度文件夹的大小
sudo du -h --max-depth=1 your_dest_dir
  • 查看目录下每个文件夹的大小
du -sh * 

11.2 已插入的磁盘情况

linux新增磁盘后,用fdisk等命令查询不到 - wsy3306 - 博客园
Linux服务器添加新硬盘无法识别解决方法(无需重启)_漠效的博客-CSDN博客_linux 安装找不到硬盘

sudo fdisk -l 

列出硬盘的分区表、容量大小以及分区类型,但看不到具体文件系统类型
在这里插入图片描述

11.3 分区以及磁盘大小调整

用parted命令可以对大于2TB的磁盘设备进行分区,以及创建GPT分区(而fdisk命令就办不到了)。
可以参考如下链接

parted

实际操作

sudo parted /dev/device
mklabel gpt  (定义分区表格式,常用的有msdos和gpt分区表格式,msdos不支持2TB以上容量的磁盘,所以大于2TB的磁盘选gpt分区表)
mkparted (如果只建立一个分区的话就直接回车,如果有多个分区的话就加上分区的名字)
然后定义分区格式(不支持ext4,想分ext4格式的分区,可以通过mkfs.ext4格式化成ext4格式)
Start?  1    (	定义分区的起始位置,单位支持K,M,G,T)
End?   5T  (	定义分区的结束位置,单位支持K,M,G,T)
(parted)    print  (查看当前分区情况,或这也可以)
q  (退出)

在这里插入图片描述

11.4 格式化(分区结束之后可以进行每个分区不同文件格式的格式化)

mkfs

语法:mkfs[-t 文件系统格式] 设备文件名
选项与参数:
-t:文件系统格式,例如 ext3,ext2,vfat 等

可以参考如下链接

11.5 查看linux的文件系统是什么格式的(如ext2,ext3,xfs等)

对比几种查看方式。感觉还是df的更加方便直观些。parted是GNU里面的一款分区工具。查看文件系统不过是其中的一个作用罢了。

方法一

df -T -h

在这里插入图片描述
通过man df 查看发现那么中是这么描述的:

df - report file system disk space usage
其中有个参数  T
       -T, --print-type
              print file system type    //正是要求实现的功能。

使用df -T 即可。这样可以列出文件系统格式。但是后面的容量显示不是很好看罢了。如下图所示:
在这里插入图片描述

还可以列出指定的文件系统类型:

-t, --type=TYPE
              limit listing to file systems of type TYPE

在本环境下 df --type=ext3 。执行结果如图:
在这里插入图片描述
还这个跟-t正好相反的参数。感觉就跟选择和反选一样。

     -x, --exclude-type=TYPE
            limit listing to file systems not of type TYPE

在这里插入图片描述

方法二

parted(要求使用root权限)
parted   ,然后执行p(即print)

在这里插入图片描述

12、挂载与取消

12.1 挂载操作

  • 首先根据11查到硬盘或者移动设备的名字

  • 新建一个文件夹作为挂载所对应的位置

mkdir /firename
  • 挂载
sudo mount /dev/sdb1 /firename

12.2 开机自动挂载硬盘

编辑文件/etc/fstab, 根据已有的内容进行修改注明:文件格式,起始位置,结束位置,挂载地址,磁盘名或者磁盘ID

sudo vim /etc/fstab

想要尝试看看能不能自动挂载可以先取消刚才的挂载命令让他umount,然后运行如下指令,进行一次全部开机时会启动的全部挂载

sudo mount -a

12.2 取消挂载

sudo umount /dev/sdb1

12.3 取消挂载时遇到问题解决

取消挂载/home时出现umount: /dev/device: device is busy,

原因是因为有程序在使用/dev/device目录,我们可以使用fuser查看那些程序的进程,然后杀掉就可以了。

[root@localhost home]# fuser -m /dev/device
    
/dev/device: 10278c 10279c 10280c 10281c 10282c 10295 10365 18222c
(前面的序号就是进程号,后面的字母表示占用形式===c,e等)

kill -9 pid

其他还有很多命令

fuser -kvm /dev/device   (-k的时候是kill)
umount -l /dev/device (强行解除挂载)

fuser命令_Linux fuser 命令用法详解:使用文件或文件结构识别进程

13、图形界面与命令行切换

ctrl+alt+F1/F2/F3...(多终端切换)
startx (命令行切换回图形界面)

14、查看用户

cat /etc/passwd 可以查看所有用户的列表
w 可以查看当前活跃的用户列表
cat /etc/group 查看用户组

groups 查看当前登录用户的组内成员
groups gliethttp 查看gliethttp用户所在的组,以及组内成员
whoami 查看当前登录用户名

一个简明的layout命令

cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more

15、删除用户

userdel -r username //-r命令的作用是同时删除该用户主目录

16、环境变量的总结

Linux是一个多用户多任务的操作系统,可以在Linux中为不同的用户设置不同的运行环境,具体做法是设置不同用户的环境变量。

17.1 Linux环境变量分类

按照生命周期来分,Linux环境变量可以分为两类:

1、永久的:需要用户修改相关的配置文件,变量永久生效。
2、临时的:用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。

按照作用域来分,Linux环境变量可以分为:

系统环境变量:系统环境变量对该系统中所有用户都有效。
用户环境变量:顾名思义,这种类型的环境变量只对特定的用户有效。

17.2 Linux设置环境变量的方法

17.2.1 在/etc/profile文件中添加变量 对所有用户生效(永久的)

用vim在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。
例如:编辑/etc/profile文件,添加CLASSPATH变量

  vim /etc/profile    
  export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

注:修改文件后要想马上生效还要运行

source /etc/profile

不然只能在下次重进此用户时生效。

17.2.2 在用户目录下的.bash_profile文件中增加变量 【对单一用户生效(永久的)】

用vim ~/.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。

vim ~/.bash.profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

注:修改文件后要想马上生效还要运行

source ~/.bash_profile

不然只能在下次重进此用户时生效。

17.2.3 直接运行export命令定义变量 【只对当前shell(BASH)有效(临时的)】

在shell的命令行下直接使用export 变量名=变量值
定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

17.3 Linux环境变量使用

17.3.1 Linux中常见的环境变量有:

PATH:指定命令的搜索路径
PATH声明用法:
PATH=$PAHT:<PATH 1>:<PATH 2>:<PATH 3>:--------:< PATH n >
export PATH
你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效。
可以利用echo $PATH查看当前当前系统PATH路径。

HOME:指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)。
HISTSIZE:指保存历史命令记录的条数。
LOGNAME:指当前用户的登录名。
HOSTNAME:指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的
SHELL:指当前用户用的是哪种Shell。
LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。
MAIL:指当前用户的邮件存放目录。
注意:上述变量的名字并不固定,如HOSTNAME在某些Linux系统中可能设置成HOST

17.3.2 Linux也提供了修改和查看环境变量的命令,下面通过几个实例来说明:

echo 显示某个环境变量值 echo $PATH
export 设置一个新的环境变量 export HELLO=“hello” (可以无引号)
env 显示所有环境变量
set 显示本地定义的shell变量
unset 清除环境变量 unset HELLO
readonly 设置只读环境变量 readonly HELLO

18、更改linux文件的拥有者及用户组(chown和chgrp)

18.1 基本知识

在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户。该文件用户可以修改该文件的拥有者及用户组,当然root用户可以修改任何文件的拥有者及用户组。在Linux中,对于文件的权限(rwx),分为三部分,一部分是该文件的拥有者所拥有的权限,一部分是该文件所在用户组的用户所拥有的权限,另一部分是其他用户所拥有的权限。

文件(含文件夹,下同)的权限,在shell中可以通过chmod命令来完成。在 shell 中,可以使用chown命令来改变文件所有者及用户组,chgrp命令来改变文件所在用户组。

另外,在shell中,要修改文件当前的用户必须具有管理员root的权限。可以通过su命令切换到root用户,也可以通过sudo获得root的权限。

18.2 使用chown命令更改文件拥有者

在shell 中,可以使用chown命令来改变文件所有者。chown命令是change owner(改变拥有者)的缩写。需要要注意的是,用户必须是已经存在系统中的,也就是只能改变为在 /etc/passwd这个文件中有记录的用户名称才可以。

chown命令的用途很多,还可以顺便直接修改用户组的名称。此外,如果要连目录下的所有子目录或文件同时更改文件拥有者的话,直接加上 -R的参数即可。

基本语法:
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:用户组名称 文件或目录
参数:
-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录
都更新成为这个用户组。常常用在更改某一目录的情况。
示例1:
[root@localhost home]# touch testfile        //由 root 用户创建文件 
[root@localhost home]# ls testfile –l 
输出为
-rw--w--w- 1 root root 0 Jun 7 19:35 testfile //文件的拥有者及拥有者级均为 root 

[root@localhost home]# chown yangzongde testfile //修改文件拥有者为 yangzongde 
[root@localhost home]# ls testfile -l 
输出为
-rw--w--w- 1 yangzongde root 0 Jun 7 19:35 testfile //查看文件拥有者为 yangzongde,但组仍为 root 

示例2:
chown bin install.log
ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log
chown root:root install.log
ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

18.3 使用chgrp命令更改文件所属用户组

在shell中,可以使用chgrp命令来改变文件所属用户组,该命令就是change group(改变用户组)的缩写。需要注意的是要改变成为的用户组名称,必须在 /etc/group里存在,否则就会显示错误。

基本语法:
chgrp [-R] 用户组名称 dirname/filename ...
参数:
-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录
都更新成为这个用户组。常常用在更改某一目录的情况。
示例3
[root@localhost home]# ls testfile -l 
输出为
-rw--w--w- 1 yangzongde root 0 Jun 7 19:35 testfile //查看文件拥有者为 yangzongde,但组为 root 
[root@localhost home]# chgrp yangzongde testfile //修改拥有者组为 yangzongde 
[root@localhost home]# ls testfile -l 
输出为
-rw--w--w- 1 yangzongde yangzongde 0 Jun 7 19:35 testfile 
[root@localhost home]# chown root:root testfile // 使用 chown 一次性修改拥有者及组 
[root@localhost home]# ls testfile -l 
输出为
-rw--w--w- 1 root root 0 Jun 7 19:35 testfile 

示例4
[root@linux ~]# chgrp users install.log
[root@linux ~]# ls -l
-rw-r--r--  1 root users 68495 Jun 25 08:53 install.log

示例5
更改为一个 /etc/group里不存在的用户组
[root@linux ~]# chgrp testing install.log
chgrp: invalid group name `testing' <== 出现错误信息~找不到这个用户组名~

19 Linux 下/etc/passwd文件详解

https://blog.csdn.net/a1154490629/article/details/52190801

20、RDP问题

https://www.linuxidc.com/Linux/2018-10/155073.htm

21、新建文件夹

新建普通文件夹

mkdir dirname

新建多个普通文件夹

mkdir dirname1 dirname2 dirname3

递归创建一些列文件树

mkdir -p dirname1/dirname2/dirname3

设置新建文件夹的权限

mkdir -m 权限数字 dirname

未整理部分

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

sudo usermod -G 用户组名 用户名

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

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

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

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

Linux查看系统基本信息,版本信息(最全版)
https://blog.csdn.net/qq_31278903/article/details/83146031

通过命令: id username

来查看用户信息

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

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: Undefined control sequence: \ at position 14: DATASET_NAME \̲ ̲ --dataset_dir…DATASET_DIR
–checkpoint_path=KaTeX parse error: Undefined control sequence: \ 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 &

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

查看日志(一次性显示整个文件)

cat output.log

查看当前Python进程

ps -ef |grep python

杀死进程

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

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(是命令编号,不是进程号)将选中的命令调出。

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 将选中的命令调出继续执行。

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

pkill -u 你的用户名

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

(1条消息) Linux find查找文件及文件夹命令_m0_37568814的博客-CSDN博客_linux 查找文件夹

(1条消息) Linux之tree命令生成文件目录结构_ZONGXP的博客-CSDN博客_linux生成目录结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值