赞
踩
shutdown -h 0
立即关机reboot
重启passwd user_name
修改任何用户的密码, 普通用户运行passwd
只能修改自己的密码ps -ef
查看所有正在运行的进程ps aux | grep mysql
查看特定的进程top
查看进程实时信息top -u <user_name>
or ps -u <user_name>
: 查看某个用户正在运行的程序ll /proc/PID
查看进程启动时的绝对路径,输入的命令行命令等信息export -p
//列出当前的环境变量值export MYENV=7
//定义环境变量并赋值查看文件列表: ls
.
列表形式展示文件信息: ll
.
显示当前的目录位置: pwd
, pwd means print working directory.
删除文件:rm filename
删除文件夹:1. rmdir directoryname
, 2. rm -r dir/
-r为recursive, -f为force
查看文件大小:ls -lh filename
查看当前文件夹下所有文件及文件夹的大小:du -h -max-depth=1 *
查看指定文件夹的大小:du -sh dirname
,s为sum, du means disk usage, -sh summarize human-readable.
移动文件或文件夹:mv file_path dir_path
移动多个文件:mv file1 file2 dir_path
设置文件的许可(permission)有两种方式:
absolute mode: chmod *** <file_name>
, 其中***每个位置为设置三种拥有者的permission, 第一个位置是user, 第二个是group的, 第三个是other的, 每个位置上的数字代表不同的permission, 设置规则为:
number | means |
---|---|
0 | no permission |
1 | eXcute |
2 | Write |
4 | Read |
所以一类拥有者如只拥有读写permission, 那么对应位置为6, 拥有全部permission, 位置对应数值就为7.
symbolic mode: symbolic mode不像absolute mode需要同时设置三类拥有者的许可, symbolic 可以单独设置某一类的许可信息. 其对应的标记为
symbol | means |
---|---|
u | user |
g | group |
o | other |
a | all |
+ | adding |
- | remove |
= | overriding |
for example, 对agatha.txt文件设置group拥有类添加excute permission: chmode g+X agatha.txt
, 当然, 也可同时设置多种拥有者的permission:chmod o-rw+x,u+x agatha.txt
其含义为:对other类拥有者移除读写,添加执行, 对user 添加执行.
where is jupyter
返回所有匹配,which jupyter
返回第一个匹配的,即所用的ps -ef|grep java
查看Java运行程序
java -jar gdelt_Crawl_trans.jar
运行Java程序
screen -S screen_name
创建一个为screen_name的screen
screen -ls
查看所有的screen
screen -r screen_name
进入screen_name的screen
ctr+a+d
退出screen不关闭screen
screen -R session_name and exit
删除 screen way1,需要进入session内删除
screen -X -S session_id quit
删除 screen way2
screen -D -r screen_id( 18352 )
解释:-D -r 先删除前一用户再登陆,解决:出现screen session的状态为Attached但是却连不上的情况
解决screen -r glean
后出现 WriteMessage: Bad file descriptor
的问题,通过screen_id
进入:screen -r 28552
可以解决
删除所有screen: killall screen
使用conda建立虚拟环境后,再用screen创建界面去运行程序的时候,会出现环境参数调用错位等问题。现阶段的解决办法是:在非conda环境下进入screen界面,再在screen界面里面启用conda。
conda config --set auto_activate_base false
~/.condarc
文件末尾添加auto_activate_base: false
conda config --show-sources
conda env list
conda remove --name env_name --all
conda create -n env_name python=3.9
mkdir ~/.pip
,然后: vim ~/.pip/pip.conf
[global]
index-url=https://mirrors.cloud.aliyuncs.com/pypi/simple/
[install]
trusted-host=mirrors.cloud.aliyuncs.com
更改conda下载源:
运行 conda config --set show_channel_urls yes
运行 vim ~/.condarc
覆盖键入:
channels:
- defaults
show_channel_urls: true
default_channels:
- http://mirrors.aliyun.com/anaconda/pkgs/main
- http://mirrors.aliyun.com/anaconda/pkgs/r
- http://mirrors.aliyun.com/anaconda/pkgs/msys2
custom_channels:
conda-forge: http://mirrors.aliyun.com/anaconda/cloud
msys2: http://mirrors.aliyun.com/anaconda/cloud
bioconda: http://mirrors.aliyun.com/anaconda/cloud
menpo: http://mirrors.aliyun.com/anaconda/cloud
pytorch: http://mirrors.aliyun.com/anaconda/cloud
simpleitk: http://mirrors.aliyun.com/anaconda/cloud
清除索引缓存,保证用的是镜像站提供的索引,conda clean -i
lsblk
list block,即用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息,可用于查看系统的硬盘空间
df -h
(disk free)查看查看磁盘剩余空间信息
dmidecode --type memory
查看内存条信息
free -m
查看内存大小
lsb_release -a
查看操作系统版本
lscpu
查看cpu的统计信息
blue@blue-pc:~$ lscpu Architecture: i686 #cpu架构 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian #小尾序 CPU(s): 4 #逻辑cpu个数 On-line CPU(s) list: 0-3 Thread(s) per core: 1 #每个cpu核,只能支持一个线程,即不支持超线程 Core(s) per socket: 4 #每个物理CPU的核数 Socket(s): 1 #物理CPU个数 Vendor ID: GenuineIntel #cpu产商 intel CPU family: 6 Model: 42 Stepping: 7 CPU MHz: 1600.000 BogoMIPS: 5986.12 Virtualization: VT-x #支持cpu虚拟化技术 L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 6144K
总核数 = 物理CPU个数 X 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 X 每个物理CPU的核数 X 每个核心线程数
lspci | grep -i nvidia
查看显卡信息nvidia-smi
查看GPU使用情况表头释义:
- Fan:显示风扇转速,数值在0到100%之间,是计算机的期望转速,如果计算机不是通过风扇冷却或者风扇坏了,显示出来就是N/A;
- Temp:显卡内部的温度,单位是摄氏度;
- Perf:表征性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能;
- Pwr:能耗表示;
- Bus-Id:涉及GPU总线的相关信息;
- Disp.A:是Display Active的意思,表示GPU的显示是否初始化;
- Memory Usage:显存的使用率;
- Volatile GPU-Util:浮动的GPU利用率;
- Compute M:计算模式;
- Processes: 显示每块GPU上每个进程所使用的显存情况。
lshw -C display
显示各个显卡详细信息
实时查看GPU的使用情况:watch -n 5 nvidia-smi
,参数5为每5秒刷新一次,nvidia-smi可以替换成其他命令,同样也可进行实时查看
在nvidia-smi中查看gpu使用情况,进程太多会被折叠,可以使用fuser -v /dev/nvidia*
查看完成进程列表,想要停掉某个进程,使用sudo kill -9 PID
即可,停掉某个用户的所有进程,使用killall -u user_name
ifconfig
查看IP信息, 需要事先安装net-tools, 对于新机器, 可能事先没有安装, 同样可以查看IP信息的还有ip addr
, 这个不用安装什么.shell 是一个命令解释器,是介于操作系统内核与用户之间, 被称为解释性语言或脚本语言。它可以将系统调用、公共程序、工具和编译过的二进制程序粘合在一起调用,所以有时候脚本语言又叫做胶水语言。
.sh
:vim test.sh
,键入i,进入INSERT模式,按顺序写好执行命令,如:python test1.py
python test2.py
写好后,键入Esc退出INSERT模式,键入:qw
保存文件退出
bash test.sh
,或./test.sh
,后者需要赋予文件执行权限chmod +x test.sh
#
为注释
:
为空命令,
>
有导入的意思, :> file_name.c
就会把file_name.c这个文件清空.
>/dev/null
为将标准输出重定向到空设备文件, 不输出任何信息到终端. 与1>/dev/null
相同.
2>&1
是将标准错误输出重定向到与标准输出相同的输出端,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件.
0
表示标准输入, 1
表示标准输出, 2
表示错误输出.
if-else
判断语句
if [ 条件判断式 ]; then
当条件判断成立时,可以进行的命令工作内容
fi #这里将if反过来写,结束if语句的意思
export
命令用于设置或显示当前环境变量.在 shell 中执行程序时, shell会提供一组环境变量. export
可新增, 修改或删除相关环境变量, 供后续执行的程序使用。export
的效力仅限于该次登陆操作. e.g.:export -p
//列出当前的环境变量值export MYENV=7
//定义环境变量并赋值可以配置的文件有:
.profile
;.bashrc
.用户单独的在~/
目录下,系统(影响所有用户)的在etc/
目录下,在.profile
中可以加入调用路径格式: export PATH=”$PATH:path1:path2 …”
或者export PATH="~/anaconda3/bin":$PATH
,之后再source */.profile
一下进行激活即可.
ip addr
查看哪个网口连上了网线, 对比, 连上网线的网口有’UP’提示.cd /etc/netplan
, 查看是否有01-network-manager-all.yaml文件, sudo vim 01-network-manager-all.yaml/
添加配置, 注意要以管理员方式打开, 添加sudo前缀. 然后添入:network:
version: 2
renderer: NetworkManager
ethernets:
eno2:
dhcp4: false
addresses:
- 172.20.201.135/28
nameservers:
addresses:
- 172.16.100.180 # 有时候这个不能用
- 119.29.29.29 # 腾讯DNSPod推出的新公共DNS服务器
gateway4: 172.20.201.129
后期有出现了联网问题, 发现ping baidu.com
, ping不通, 但ping baidu.com的ip却能ping通, 说明是DNS服务器的问题, 所以在nameservers里又加了一个119.29.29.29服务地址, 该IP地址网上说是腾讯DNSPod推出的新公共DNS服务器地址.
dhcp4默认是true,由于是这里配置的是静态IP,所以改为false.
addresses是ip,/28是子网掩码,28表示的二进制子网掩码里有28个1,用点分十进制表示为255.255.255.240。子网掩码的计算可以百度任意ip地址计算器就可以计算.
gateway4是网关, nameservers是DNS, 注意yaml文件里不要有任何tab,否则导致不识别。
sudo netplan try
sudo netplan apply
cd /etc/apt/
vim sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
deb https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
注意: 这里的版本是系统的版本是Ubuntu 18.04, 不同的系统版本可能填入的内容不同.
4. 更新源和软件
sudo apt-get update
one more word, apt means: Advanced Packaging Tool.sudo apt-get upgrade
NFS: Network File System
使用这个,在一台服务器中配置了相关环境,在其他服务器中将会自动同步,不用重复配置
发现能 ping通服务器, 但无法使用xshell连接服务器, 然后使用telnet 172.20.201.136 22
查看22端口是否打开, 发现22端口没有打开, 所以猜测是ssh没有启动或者没有安装的问题. SSH 的架构是服务器/客户端模式,两端运行的软件是不一样的, OpenSSH 的客户端软件是 ssh,服务器软件是 sshd, 显示屏, 键盘直连服务器, 输入sshd
,发现果然没有安装, 使用sudo apt install openssh-server
安装ssh服务器端, 下载后重新连接, 发现能连接成功.
参考: ssh安装与配置(详解版).
输入命令nvidia-smi
, 报错:
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
上网查阅及根据自己的判断是服务器ubuntu系统内核更新导致的.首先使用uname -r
查看当前的内核版本是:linux-image-5.4.0-149-generic
, 尝试选择进入较低的内核, 查看执行该命令是否还有问题. 首先重启服务器, 使用键盘加显示器直连服务器, 然后按Esc
进入引导界面, 选择ubuntu advanced options
选项, 然后选择较低的版本选项linux-image-5.4.0-148-generic
, 然后进入后再输入命令nvidia-smi
, 发现没有问题了, 确认是内核版本问题.
为让后续服务器重启后自动选择较低版本的内核, 按网上方法修改grub
文件内容:sudo vim /etc/default/grub
.
# GRUB_DEFAULT=0 将该行改为以下一行
GRUB_DEFAULT="1> 2"
“1> 2"的含义为:第一个选项是索引0,第二个是1,第三个是2,依此类推。在一个GRUB菜单选项中, Ubuntu为0,Ubuntu advanced options为1, …, 我们选择1, 再进入子选项中,使用’>'符号来指定有一个子菜单, 我们选择了较低版本的内核, 索引是2, 因此为"1> 2”(注意中间有个空格). 保存退出后运行命令:sudo update-grub
使其生效.
后续工作, 禁止内核自动更新:
sudo gedit /etc/apt/apt.conf.d/10periodic
sudo gedit /etc/apt/apt.conf.d/20auto-upgrades
将两个文件中的配置信息都置为0后保存退出.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。