Ubuntu常用指令

Ubuntu常用指令

石墨版: Ubuntu指南.

su和sudo:得到root权限

sudo passwd [root]  # 设定root密码
su [root] # 切换到root用户
sudo COMMAND # 切换到root用户,执行COMMAND,然后切换回当前用户
su USER # 切换回普通用户USER

apt和dpkg:用于安装软件包

apt list  # 根据名称列出软件包
apt show PACKAGE # 显示软件包细节
sudo apt-get install PACKAGE # 安装软件包
sudo apt-get remove PACKAGE # 卸载软件包
sudo apt-get check PACKAGE # 检查依赖
sudo apt-get update # 更新可用软件包列表
sudo apt upgrade # 通过升级来更新系统
sudo apt-get install -f # 修复依赖

sudo dpkg -i xxx.deb # 运行deb程序进行安装

pip:用于安装python模块(不是linux里的默认指令,需自行安装sudo apt-get install pip)

sudo apt-get install python3-pip  # 安装python3下的pip

# 更新pip到指定版本
python3 -m pip install --user --upgrade pip==9.0.3 # (换成你想要的版本编号)

# pip临时加速
pip 加参数-i https://pypi.tuna.tsinghua.edu.cn/simple

# pip永久加速
# Linux下,修改 ~/.pip/pip.conf (没有就创建一个文件夹及文件。文件夹要加“.”,表示是隐藏文件夹)
"""
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com

"""

# windows下,直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,新建文件pip.ini。内容同上。

pip install PACKAGE # 安装包
pip uninstall PACKAGE # 卸载包
pip search PACKAGE # 搜索能安装的包
pip list # 例出所有的已安装的包
pip show PACKAGE # 展示已安装包的信息,可以指定单个包名展示
pip check PACKAGE # 检查依赖
pip --version # 显示pip版本和位置
pip help # 查看帮助
pip help install # 查看install指令的相关option介绍

ssh和scp:用于主机间的通信

ssh USERNAME@IP -p PORTNUM  # 远程登录到主机
scp LOCAL_FILE USERNAME@IP:REMOTE_DIRECTORY # 复制本地文件到远程主机
scp -r LOCAL_FILE USERNAME@IP:REMOTE_DIRECTORY # 复制本地文件夹到远程主机
sudo ufw dissable # 关闭防火墙
sudo ufw enable # 开启防火墙

sudo apt-get install vsftpd # 安装sftp
service vsftpd starrt # 启用sftp

zip,unzip,tar,rar,unrar:压缩和解压

gzip  # gzip是Linux使用最广的压缩指令
gzip [-cdtv#] FILENAME
"""
-c :将压缩的数据输出到屏幕上
-d :解压缩
-t :检验压缩文件是否出错
-v :显示压缩比等信息
-# : # 为数字的意思,代表压缩等级,数字越大压缩比越高,默认为 6
"""

bzip2 # 提供比gzip更高的压缩比
bzip2 [-cdkzv#] FILENAME
"""
-k :保留源文件
"""

xz2 # 提供比bzip2更佳的压缩比
xz [-dtlkc#] FILENAME

tar 压缩打包
tar [-z|-j|-J][cv][-f NEW_TAR_FILE] FILE # 打包压缩
tar [-z|-j|-J][tv][-f TAR_FILE] # 查看
tar [-z|-j|-J][xv][-f TAR_FILE] [-C DIR] # 解压
"""
-z :使用 zip
-j :使用 bzip2
-J :使用 xz
-c :新建打包文件
-t :查看打包文件里面有哪些文件
-x :解打包或解压缩的功能
-v :在压缩/解压缩的过程中,显示正在处理的文件名
-f : filename:要处理的文件
-C DIR : 在特定目录解压缩
"""

# 例1
tar -jcv -f file.tar.bz2 file # 压缩
tar -jxv -f file.tar.bz2 -C ./file # 解压
tar -zcv -f dir.tar.gz dir1 dir2 ... # 多个文件压缩

# 例2
tar -zcv file | split -b 4000M -d -a 1 - file.tar.gz. # 压缩成多个压缩包
# 使用split命令
"""
-b 4000M 表示设置每个分割包的大小,单位还是可以k
-d 参数指定生成的分割包后缀为数字的形式
-a x来设定序列的长度(默认值是2)
"""

cat file.tar.gz.* | tar -zxv file 多个压缩包解压

du和df:查看磁盘的存储占用和查看文件系统的存储占用

du -s  # 仅显示总计,只列出最后加的总值
du -c # 除了显示个别文件或目录的大小外,还显示一行目录和文件的总和大小
du -h # 以k,m,g为单位,提高信息的可读性
du --max-depth=1 # 查看当前目录所有(一级)文件的大小
du -sh *.mkv # 显示每个mkv文件的大小
du -csh *.mkv # 显示每个mkv文件的大小和总和

df -h # 以k,m,g为单位,提高信息的可读性
df -T # 显示文件系统的类型

which,whereis,locate,find:查找命令

#which在PATH变量制定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果
#whereis只能用于程序名的搜索,而且只能搜索二进制文件(-b),man说明文件(-m),源代码文件(-s)。若省略,则返回所有信息
#locate配合数据库查看文件位置。linux会将系统内所有文件记录在一个数据库文件中,电视该数据库并不是实时更新
#find实际搜寻硬盘查询文件名称

find . -name "*.conf" 当前目录查找扩展名为.conf的文件
updatedb 更新数据库
locate STRING 快速查找系统数据库中指定的内容
which python 查询python
whereis python 查询python

文件权限

chmod [ugoa][+-=][rwx] FILE|DIR  # 改变指定目录或文件的权限
# u代表该文件所有者,g代表该文件所有者的同组用户,o代表其他,a表示这三者皆是
# r可读,w可写,x可执行
chomd u+x test # 该文件的所有者增加可执行的权限

# 用数字表示,规定r=4,w=2,x=1
chmod 777 file # 三种用户都赋予可读可写可执行的权限
chown -R 用户名[:组名] 文件名或目录 # 改变指定目录或文件的所属用户,-R代表递归地改变目录下的所有文件

文件和文本操作

ls [-adl] FILE|DIR # 列出文件或者目录信息
"""
-a :列出全部的文件
-d :仅列出目录本身
-l :以长数据串行列出,包含文件的属性与权限等等数据
"""

cd DIR # 更换当前路径

mkdir [-mp] DIR # 创建目录
"""
-m :配置目录权限
-p :递归创建目录
"""

rmdir [-p] DIR # 删除目录,目录必须为空
"""
-p :递归删除目录
"""

touch [-acdmt] FILENAME # 更新文件时间或者建立新文件
"""
-a : 更新 atime
-c : 更新 ctime,若该文件不存在则不建立新文件
-m : 更新 mtime
-d : 后面可以接更新日期而不使用当前日期,也可以使用 --date="日期或时间"
-t : 后面可以接更新时间而不使用当前时间,格式为[YYYYMMDDhhmm]
"""

cp [-adfilprsu] SOURCE DESTINATION # 复制文件
"""
-d :若来源文件为链接文件,则复制链接文件属性而非文件本身
-i :若目标文件已经存在时,在覆盖前会先询问
-p :连同文件的属性一起复制过去
-r :递归持续复制
"""

rm [-fir] FILE|DIR # 删除文件或者目录
"""
-r :递归删除
"""

mv [-fiu] SOURCE DESTINATION # 移动文件
"""
-f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
"""

ln [-sf] SOURCE DESTINATION # 创建链接
"""
-s :默认是 hard link,加 -s 为 symbolic link
-f :如果目标文件存在时,先删除目标文件
"""

cat [-n] FILENAME # 获取文件内容
"""
-n :打印出行号,连同空白行也会有行号,-b 不会
"""

grep str /tmp/test # 在文件/tmp/test中查找str
grep ^str /tmp/test # 在文件/tmp/test中查找以str开始的行

ls -ld */ # 显示当前目录的所有目录文件
ls -l | grep '^d' # 显示当前目录的所有目录文件

wc -l # 统计文件行数
wc -w # 统计单词数量

ls -l | wc -l # 统计当前目前的文件数量,注意要减去“总用量”那一行

cp -a dir1 dir2 # 复制目录
mv dir1 dir2 # 移动/重命名目录
mkdir -p /tmp/dir1/dir2 # 创建一个目录树
rm -f file1 # 删除文件
rm -rf dir1 # 删除目录

ln -s /real_file /soft_link # 创建软链接

进程

ps -e  # 显示所有进程
ps -f # 全格式显示进程
ps -u 'liaohuqiang' | grep 'tmux' # 显示指定用户执行的进程,并匹配出包含'tmux'的那一行进程
ps -ef | grep 'python' | grep -v grep # 把grep命令排除掉
ps -ef | grep 'python' | grep -v grep | awk '{print $2}' # 提取进程号

pstree -A #查看进程树

kill -2 PID # 类似ctrl+C,在程序结束之前能够保存相关数据,再退出
kill -9 PID # 直接强制结束进程

reboot # 重启
shutdown -r now # 立刻重启
shutdown -r 30 # 30分钟后重启
shutdown -r 23:00 # 晚上11点重启

halt # 立刻关机
poweroff # 立刻关机
shutdown -h now # 立刻关机
shutdown -h 30 # 30分钟后关机

shutdown -c # 取消shutdwon的重启或关机

command & # 使指令成为后台任务
nohup # 不挂断地运行命令,通常和&一起用,输出将附加到目录的nohup.out
jobs -l # 列出任务列表,l表示显示进程号(只查看当前终端的,关闭终端后无法看到)
fg # 把最近一个job切换到前台
fg n # 把某个job切换到前台
ctrl z # 挂起某个前台进程
bg # 把作业放到后台运行


top # 动态显示进程信息
top -i # 不显示任何闲置或无用的进程
"""
k 杀死某进程
n 改变显示的进程数量
u 显示指定用户
P 按CPU使用情况排序
q 退出
"""


lscpu # 查看cpu信息概要

# 监视cpu
# 先安装matstat
sudo apt install sysstat
# 每两秒查看一次
mpstat -P ALL 2

网络

netstat  # 显示网络情况
netstat -a # 列出所有端口
netstat -l # 只显示监听端口
netstat -t # 列出所有tcp端口
netstat -p # 显示使用该端口的pid和程序名称
netstat -n # 直接使用ip地址,不通过域名服务器


# 找出程序运行的端口
netstat -anp | grep ssh


# 找出运行在指定端口的进程
netstat -anp | grep ':80'


ifconfig # 查看网卡信息

查看电脑配置

free -m   # 查看内存使用情况
df # 查看磁盘使用情况
cat /proc/cpuinfo # 查看cpu信息
lspci | grep VGA # 查看显卡
nvidia-smi # 查看英伟达系列显卡的使用情况
nvidia-smi -L  # 查看显卡型号
watch -n 1 -d nvidia-smi # 实时监控nvidia-smi,每隔一秒刷新一次,d表示高亮
cat /proc/driver/nvidia/version # 查看显卡驱动
cat /etc/issue # 查看ubuntu版本

vim简单操作

vim可以分为三种模式:命令模式(Command mode)插入模式(Insert mode)底线命令模式(Last line mode)
Comand mode:控制屏幕光标的移动,字符或光标的删除,移动复制某区段及进入Insert mode下,或者到Last line mode。
Insert mode:唯有在Insert mode下,才可做文字数据输入,按Esc等可回到Comand mode。
Last line mode:将储存文件或离开编辑器,也可设置编辑环境,如寻找字符串、列出行号等。

在Command mode下按‘i’、‘a’或‘o’三键就可进入Insert mode。这时候您就可以开始输入文字了
i: 插入,从目前光标所在之处插入所输入的文字
a: 增加,目前光标所在的下一个字开始输入文字
o: 插入新的一行,从行首开始输入文字
Insert的切换→Command mode,按Esc
您目前处于Insert mode,您就只能一直打字。假如您发现打错字了,想用光标键往回移动,将该字删除,就要按ESC键转换回Command mode,再删除文字

在Command mode下,可按冒号“”键入入Last line mode,例如:
:w filename (输入“w filename”,将文章存入指定的文件名filename)
:wq (输入“wq”,因为进入之时已经指定文件名testfile,所以会写入testfile并离开vi)
:q! (输入“q!”,强制离开并放弃编辑的文件)

x:每按一次删除光标所在位置的后面一个字符
dd:删除光标所在行
yy:复制光标所在行
u:假如您误操作一个指令,可以马上按u,回复到上一个操作

其他

date  # 显示时间
whoami # 显示当前用户名
who # 目前登录系统的用户信息
curl 'url' -O --progress # 下载文件,-O代表保存文件(如果没有则输出到屏幕), --progress表示会显示进度条
# (curl不是linux的默认自行,需自行安装apt install curl)
echo $SHELL # 查看系统使用的是哪种shell
echo $PATH # 查看环境变量

xdg-open filename # 用默认应用程序打开文件

python run_generation.py | tee vggTrainResult # 重定向到文件

cat /usr/local/cuda/version.txt # 查看cuda版本

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 # 查看cudnn版本

参考

https://www.cnblogs.com/liaohuiqiang/p/7191462.html

Author: pangzibo243
Link: https://litianbo243.github.io/2019/08/05/Ubuntu shell 常用指令 指南/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
支付宝打赏
微信打赏