我是靠谱客的博主 魔幻鞋垫,最近开发中收集的这篇文章主要介绍Linux命令,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

linux启动后环境变量加载的顺序为:etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc → [/etc/bashrc]

https://www.cnblogs.com/xuxinstyle/p/9609551.html 50个常用命令

~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, .. 则表示目前目录位置的上一层目录

cat /etc/redhat-release 查看CentOS版本

rwx = 4+2+1 = 7                r:4    w:2     x:1

sudo apt-get clean 删除包缓存中的所有包

sudo apt-get autoremove:    删除为了满足其他软件包的依赖而安装的,但现在不再需要的软件包

sudo apt-get update:更新软件包列表(/etc/apt/sources.list 或 /etc/apt/preferences);

sudo apt-get install packagename:安装一个新软件包;

sudo apt-get remove packagename:卸载一个已安装的软件包(保留配置文件);

sudo apt-get --purge remove packagename:卸载一个已安装的软件包(删除配置文件);

sudo dpkg --force-all --purge packagename:有些软件包很难卸载,而且还阻止了别的软件的应用,就可以用这个,不过有点冒险;

sudo apt-get autoclean:清理无用的软件包,定期运行这个命令来清除那些已经卸载的软件包的.deb文件。通过这种方式,您可以释放大量的磁盘空间。如果您的需求十分迫切,可以使用apt-get clean以释放更多空间。这个命令会将已安装软件包的.deb文件一并删除。大多数情况下你不会再用到这些.deb文件,因此如果你为磁盘空间不足而感到焦头烂额,这个办法也许值得一试;

sudo apt-get upgrade:更新所有已安装的软件包;

sudo apt-get dist-upgrade:将系统升级到新版本;

sudo apt-cache search string:在软件包列表中搜索字符串;

sudo fuser -v /dev/nvidia*       GPU查看那些进程正在执行

ps aux 查看运行过程

free 命令用于显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer

top 命令是Linux下常用的性能分析工具,能够实时系统中各个进程的资源占用状况,Windows的任务管理器

du -sh *    查看当前文件下各文件大小***

du -h ===     df       查看当前目录下各个目录的大小

du -h --max-depth=1 Linux 查找占用空间最大的文件与目录:

du -sh * .[^.]* 隐藏文件

df -h 查看挂载目录下大小  更好用***

Ctrl+c和Ctrl+z都是中断指令,区别如下

Ctrl+c是强制中断程序执行

Ctrl+z将任务中断,但是任务没有结束,它仍在进程中只是维持挂起的状态。

我们可以使用fg或者bg来继续前台或者后台的任务(fg重新启动前台被中断的任务,bg后台执行被中断的任务)。

杀死进程           # kill 12345

强制杀死进程     # kill -KILL 123456

发送SIGHUP信号,可以使用一下信号 # kill -HUP pid

彻底杀死进程 # kill -9 123456

:set paste 解决粘贴格式错乱

cat 0526_bert_fine_tuning_3_bpe/log_eval_loss_file.txt     

cat 0526_bert_fine_tuning_3_bpe_back/log_eval_loss_file.txt     

lsof -i 查看端口占用情况

lsof -i:8080: 查看8080端口占用

在linux服务器上,经常会遇到复制代码,粘贴到文件里时,经常会遇到粘贴进来的格式变了

解决方法:
在vim普通模式下执行
:set paste 命令,再按 i 插入就会保留原文件格式

如果你想关闭:
:set nopaste

帮忙:
:h paste

#查看 使用信息

watch -n 0.1 nvidia-smi

watch -n 0.1 -d nvidia-smi     #每隔0.1秒刷新一次

cat [选项] [文件]...

-A, --show-all           等价于 -vET

-b, --number-nonblank    对非空输出行编号

-e                       等价于 -vE

-E, --show-ends          在每行结束处显示 $

-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号

-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行

-t                       与 -vT 等价

-T, --show-tabs          将跳格字符显示为 ^I

-u                       (被忽略)

-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

进程命令

free

free [参数]      命令用于显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer

-b  以Byte为单位显示内存使用情况。

-k  以KB为单位显示内存使用情况。

-m  以MB为单位显示内存使用情况。

-g   以GB为单位显示内存使用情况。

-o  不显示缓冲区调节列。

-s<间隔秒数>  持续观察内存使用状况。

-t  显示内存总和列。

-V  显示版本信息。

top [参数]        命令是Linux下常用的性能分析工具,能够实时系统中各个进程的资源占用状况,Windows的任务管理器

-b 批处理

-c 显示完整的治命令

-I 忽略失效过程

-s 保密模式

-S 累积模式

-i<时间> 设置间隔时间

-u<用户名> 指定用户名

-p<进程号> 指定进程

-n<次数> 循环显示的次数

ps 命令显示运行的进程,还会显示进程的一些信息如pid, cpu和内存使用情况等

-A :所有的进程均显示出来

-a :不与terminal有关的所有进程

-u :有效用户的相关进程

-x :一般与a参数一起使用,可列出较完整的信息

-l :较长,较详细地将PID的信息列出

chmod g+w file  向file的文件权限中加入用户组可写权限

sudo 用来以其他身份来执行命令,预设的身份为root

diff 命令用于比较两个文件或目录的不同

wget 是从远程下载的工具:

date  ‘+%c’          date 命令用于显示或设定时间

tree 文件树形格式

tree -d 文件树形格式(只显示目录)

touch 文件名   新建文件

mkdir  文件名 Make Directory(创建目录)

mkdir -p  test01/test02/test03 -p创建多级目录

mkdir {test01,test02,test013}/tool 在多个文件夹里的每个文件夹里面需要创建一个tool文件夹的话

cp 命令,作用复制,参数如下:

-r :递归持续复制,用于目录的复制行为

-i :若目标文件已经存在时,在覆盖时会先询问操作的进行

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-a :将文件的特性一起复制

-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份

-u :目标文件与源文件有差异时才会复制

cp dir1/a.doc dir2  表示将dir1下的a.doc文件复制到dir2目录下

cp -r dir1 dir2  表示将dir1及其dir1下所包含的文件复制到dir2下

cp -r dir1/. dir2  表示将dir1下的文件复制到dir2,不包括dir1目录

rmdir   文件名 删除目录

 ls --file-type | grep -v /$ | xargs rm -f         删除当前目录下所有非文件夹文件

mv 文件夹A 文件夹B                                        更改文件夹名字

mv example.txt ~/Documents   文件移动到后面文件夹

mv example.txt ~/Documents/foo.txt    移动后重命名

mv -b example.txt ~/Documents 有冲突时提供备份

mv foo bar baz ~/Documents 移动多个文件

 tar命令,用于压缩解压:

tar -zcvf   打包后生成的文件名全路径         要打包的目录

tar -jcvf   /nfs/volume-826-2/lqt/t3.zip   test

压缩:tar -jcvf filename.tar.bz2 要被处理的文件或目录名称

查询:tar -jtvf filename.tar.bz2

解压:tar -jxvf filename.tar.bz2 -C 欲解压缩的目录

-c :新建打包文件

-t :查看打包文件的内容含有哪些文件名

-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中

-j :通过bzip2的支持进行压缩/解压缩

-z :通过gzip的支持进行压缩/解压缩

-v :在压缩/解压缩过程中,将正在处理的文件名显示出来

-f filename :filename为要处理的文件

-C dir :指定压缩/解压缩的目录dir

df: disk free 其功能是显示磁盘可用空间数目信息及空间结点信息

du: Disk usage

: w filename (输入 「w filename」将文章以指定的文件名filename保存)

: wq (输入「wq」,存盘并退出vi)

: q! (输入q!, 不存盘强制退出vi)

:sp上下分屏

:vsp左右分屏

ctrl+w+w切换屏

i :在光标前

I :在当前行首

a:光标后

A:在当前行尾

o:在当前行之下新开一行

O:在当前行之上新开一行

r:替换当前字符

R:替换当前字符及其后的字符,直至按ESC键

s:从当前光标位置处开始,以输入的文本替代指定数目的字符

S:删除指定数目的行,并以所输入文本代替之

pwd -P # 显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径

 ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置:

ifconfig [网络设备] [参数]

up 启动指定网络设备/网卡。

down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。

arp 设置指定网卡是否支持ARP协议。

-promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包

-allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包

-a 显示全部接口信息

-s 显示摘要信息(类似于 netstat -i)

add 给指定网卡配置IPv6地址

del 删除指定网卡的IPv6地址

<硬件地址> 配置网卡最大的传输单元

mtu<字节数> 设置网卡的最大传输单元 (bytes)

netmask<子网掩码> 设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。

tunel 建立隧道

dstaddr 设定一个远端地址,建立点对点通信

-broadcast<地址> 为指定网卡设置广播协议

-pointtopoint<地址> 为网卡设置点对点通讯协议

multicast 为网卡设置组播标志

address 为网卡设置IPv4地址

txqueuelen<长度> 为网卡设置传输列队的长度

 whereis 命令:

# whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。 但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

whereis [-bmsu] [BMS 目录名 -f ] 文件名

 -b 定位可执行文件。
 -m 定位帮助文件。
 -s 定位源代码文件。
 -u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
 -B 指定搜索可执行文件的路径。
 -M 指定搜索帮助文件的路径。
 -S 指定搜索源代码文件的路径。

which 会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果:

which 可执行文件名称

-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

-p  与-n参数相同,但此处的包括了文件的路径。

-w  指定输出时栏位的宽度。

-V  显示版本信息

grep

Linux 系统中 grep 命令是一种强大的文本搜索工具

grep 允许对文本文件进行 模式查找,所谓模式查找,又被称为正则表达式。

选项 含义

-n 显示匹配行及行号

-v 显示不包含匹配文本的所有行(相当于求反)

-i 忽略大小写

常用的两种模式查找

参数 含义

^a 行首,搜寻以 a 开头的行

ke$ 行尾,搜寻以 ke 结束的行

用户管理

提示:创建用户 / 删除用户 / 修改其他用户密码 的终端命令都需要通过 sudo 执行

创建用户/设置密码/删除用户

序号

命令

作用

01

id [用户名]

查看用户 UID 和 GID 信息

02

who

查看当前所有登录的用户列表

03

whoami

查看当前登录用户的账户名

关机

# 重新启动操作系统,其中 now 表示现在

$ shutdown -r now

# 立刻关机,其中 now 表示现在

$ shutdown now

# 系统在今天的 20:25 会关机

$ shutdown 20:25

# 系统再过十分钟后自动关机

$ shutdown +10

# 取消之前指定的关机计划

$ shutdown -c

# 查看网卡配置信息

$ ifconfig

# 查看网卡对应的 IP 地址

$ ifconfig | grep inet

scp

scp 就是 secure copy ,是一个在 Linux 下用来进行 远程拷贝文件 的命令

它的地址格式与 ssh 基本相同,需要注意的是,在指定端口时用的是大写的 -P 而不是小写的

# 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py

# 注意:`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径

scp -P port 01.py user@remote:Desktop/01.py

# 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py

scp -P port user@remote:Desktop/01.py 01.py

# 加上 -r 选项可以传送文件夹

# 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop

scp -r demo user@remote:Desktop

# 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹

scp -r user@remote:Desktop demo

#######  环境变量

想修改某用户登录后shell字体的颜色,可在~/.bashrc中添加PS1内容即可,以下是我机器的设置:

PS1="[33[1;32;1m][[33[0;32;1m]u:[33[1;35;1m]w[33[1;32;1m]][33[1;31;1m]$[33[1;37;1m]"

PS1='${debian_chroot:+($debian_chroot)}u@h:w$ '

export CLICOLOR=1

export LSCOLORS=gxfxaxdxcxegedabagacad

alias ll='ls -l'

vi ~/.bash_profile

if [ -f ~/.bashrc ];then

source ~/.bashrc

fi

cat ~/.bashrc          环境变量

source ~/.bashrc                 source ~/.bash_profile  MAC   

VIM模式

u 取消操作

p 粘贴

yy 复制光标所在位置的一行

dd 删除光标所在的行

dw: 删除当前光标所在位置的单词

set nu 显示行号

0   移动到行首

$   移动到行尾

) :光标移至句尾

( :光标移至句首

}:光标移至段落开头

{:光标移至段落结尾

G 光标移至文章的最后

Ctrl+f 向前翻屏

Ctrl+b 向后翻屏

Ctrl+d 向前翻半屏

Ctrl+u 向后翻半屏

搜索及替换命令

/pattern:从光标开始处向文件尾搜索pattern

?pattern:从光标开始处向文件首搜索pattern

n:在同一方向重复上一次搜索命令

N:在反方向上重复上一次搜索命令

:s/p1/p2/g:将当前行中所有p1均用p2替代

:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g:将文件中所有p1均用p2替换

Linux挂载U盘驱动:

1、插入u盘到计算机,如果目前只插入了一个u盘而且你的硬盘不是scsi的硬盘接口的话,那它的硬件名称为:sda1。

2、在mnt目录下先建立一个usb的目录(如:[root@localhost root]# mkdir /mnt/usb)

3、挂载U盘:mount -t vfat /dev/sda1 /mnt/usb

4、卸载U盘:umount /mnt/usb

5、删除usb目录:rm -rf /mnt/usb

bashrc  文件配置带颜色

if [ -n "$force_color_prompt" ]; then

    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then

# We have color support; assume it's compliant with Ecma-48

# (ISO/IEC-6429). (Lack of such support is extremely rare, and such

# a case would tend to support setf rather than setaf.)

color_prompt=yes

    else

color_prompt=

    fi

fi

if [ "$color_prompt" = yes ]; then

    PS1='${debian_chroot:+($debian_chroot)}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[00m]$ '

else

    PS1='${debian_chroot:+($debian_chroot)}u@h:w$ '

fi

# enable color support of ls and also add handy aliases

if [ -x /usr/bin/dircolors ]; then

    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"

    alias ls='ls --color=auto'

    #alias dir='dir --color=auto'

    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'

    alias fgrep='fgrep --color=auto'

    alias egrep='egrep --color=auto'

fi

最后

以上就是魔幻鞋垫为你收集整理的Linux命令的全部内容,希望文章能够帮你解决Linux命令所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部