Linux 命令学习总结

    科技2024-01-18  102

    以下内容都是我从各个地方转载学习到的,有的直接给了链接。如有侵权,请联系。

    & 和 && 和|和 || 区别 

    (1)& 实现命令后台执行。

    (2)&&  表示前一条命令执行成功时,才执行第二条命令。

    (3)| 管道,执行完最左边的命令后,作为输入执行第二条命令。

    cat /foo/a.txt | grep "hello"

     先执行 cat 打印文件,然后找到含有 “hello”的行。

    (4) ||  上一条命令执行失败后,才执行第二条命令。

    单引号、双引号、反向单引号的区别

    (1)单引号:引号中的内容不会转义,直接打印输出。

    >>echo 'hello\n' hello\n

    (2)双引号:引号中的内容根据需要,会进行转义输出。 

    >>echo -e "hello\th" hello h >>echo -e "\"hello\"" "hello"

    (3)反向单引号:``,实现的是``中的命令作为输入,在输出。

    >>echo -e `echo "hello\th"` hello h

    此外,可以利用$实现对变量的引用。 

    建立的a.sh文件:

    #!/bin/sh read name echo "$name It is a test." >>sh a.sh foo foo It is test.

    > 和 >> 和 < 区别

    > 将标准输出的内容导入 a.txt文件中

    >> 追加命令,> 会覆盖源文件。>> 是追加。

    < 标准输入:不太明白。输入重定向到一个程序??

    (1)echo 用于字符串的输出 类似于print() 

    详情可见:https://www.cnblogs.com/Spiro-K/p/6360489.html

    (2)scp 实现两台服务器之间的文件传输。

    scp /home/foo/test.txt root@100.0.0.0:/home/foo_1/test

    需要root@100.0.0.0的登录密码。

    此外,这是从内网向外网进行传输,可以直接利用这样的方式实现。但是外网向内网传输,这样操作不可行。因为内网会有屏障。因为scp命令是基于ssh服务的。因此,可以建立基于ssh服务的反向隧道,从而实现外网向内网传输。

    可以参考:链接。

    进程相关的命令

    参考:https://blog.csdn.net/dongyanxia1000/article/details/62042065

    (1)jobs 查看当前用户的进程个数  

    +(加号)表示是一个当前的作业,

    - (减号)表示是一个当前作业之后的一个作业

    jobs -l #可显示所有任务的PID

    注意[1]不是进程号,只是表示优先顺序的一种方式。  -l 可以显示PID。

    (2) bg 将挂起的进程,重新启动

    bg %1 # 1是jobs显示的进程先后关系,不是进程的PID

    (3)pg 将服务从后台调至前台运行。

    pg %1 # 1是jobs显示的进程先后关系,不是进程的PID

    (4)ctrl+z 可以将前台服务挂起。等待响应。ctrl+c 直接终止正在运行中的进程 

    终止程序的几种方法:https://www.cnblogs.com/pejsidney/p/8932707.html

    (5)将命令放在后台进行运行,可以利用 "&"来实现。

    scp /home/foo/test.txt root@100.0.0.0:/home/foo_1/test &

    (6) ps 查看当前时间节点内运行的进程

    ps -aux # 显示所有包含其他使用者的进程 ps -a #显示同一终端下的所有程序 ps -au #显示较详细的资讯 ps x # 显示所有程序,不以终端机来区分

    常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。

    比如:ps -aux | grep watch (查看watch命令的情况)

    (7)top 能够实时显示系统中各个进程的资源占用状况,类似于资源管理器。

    top显示的参数详解:https://www.cnblogs.com/niuben/p/12017242.html

    top中第一行显示的就是 uptime的情况。也就是服务器的基本情况。

    (8)uptime :显示服务器的基本情况。详情:https://www.cnblogs.com/ftl1012/p/uptime.html

    服务器时间:13:29:09  服务器运行时长:299 days 当前用户数:2 当前负载均衡  load average  0.03, 0.02, 0.04

    (9)kill 杀死一个进程 

    kill -9 PID

     详情可见:https://blog.csdn.net/guo_guo_cai/article/details/78499477

    9是信号编号,信号编号是一种给进程发送的指令编号(里面涵盖一些计算机指令)。-9的含义是: sigkill -15的含义是sigterm.sigterm多半是会被阻塞的、忽略。sigkill会强制终止。

    文件相关操作

    (1)cat 显示文件的主要内容

    cat /file_name

    还可以向文件中增加一些东西,生成b.txt文件。 

    (2)sort 按照一定的顺序,将文件按照行排序。然后排序规则是按照列进行的。【不改变源文件】

    (3)uniq 重复行统计,统计重复的过程中,统计的是相邻行,不相邻的行即使是重复的也不会按照重复的情况来处理。【不改变源文件】

    sort和uniq的相关示例可参考:https://www.linuxprobe.com/linux-uniq-student.html

    (4)wc 统计作用。 统计行数、单词数字、字节数。

    >>wc a.txt 1 1 10 a.txt >> wc -l a.txt 仅输出行数

    (5)cut 统计文件的情况,按照一定的顺序匹配,将匹配后的列进行输出。

    (6)grep 匹配作用。 匹配某个的单词是否在文本中出现,如果出现,则输出这一行。只要出现单词即可。

    >>grep "cat" a.txt hello cat cat

    (7)vi/vim 

    vim是在vi基础上发展的。可以认为是 创建/进入 一个可以编辑的文本。

    一共有三种模式:(1)刚开始进入的只读模式 (2)i 插入模式,可以进行编写 (3):退出模式

    退出模型中 (1):wq 保存退出 (2):q! 强制退出 不保存 (3):q 退出,在没有做更改的时候直接退出,若更改了会提醒。

    (8)cp  用于复制文件或者目录 详见:https://www.runoob.com/linux/linux-comm-cp.html

    cp -r 复制目录和其下的所有子目录和文件 cp -d 保留连接文件,类似于桌面快捷方式 cp -i 覆盖目标文件时,是否给出提示

    (9)mv 用于移动目录或者文件 https://www.runoob.com/linux/linux-comm-mv.html

    mv 可以用于改名,将a.txt改成b.txt,一般情况下,liunux不怎么看后缀名。linux会将其认为就是一个文件的名字而已。

    mv a.txt b.txt mv -i 有同名询问是否覆盖 mv -f 不询问直接覆盖

    (10)rm 删除文件或者目录(rm命令删除,则无法恢复,所以必须格外小心地使用该命令)

    rm -f rm -r # 删除目录及其中的所有东西 如果直接删除 rm test/ 删除不掉 rm -i 删除前进行询问

    (11)zip/unzip 打包和解包文件 

              dpkg 命令    解包.deb类型 

              tar命令  压缩文件 【zip和tar不同,要注意】

    zip [-r] name.zip test/ # 压缩 test/和其目录下的所有内容 zip a.zip a.txt # 将单个文件进行压缩

    (12) awk  处理文本文件  详见:https://www.cnblogs.com/virgosnail/p/11103651.html

    awk '{condition} action' filname

    注意:必须是单引号 

    查看系统存储状态

    (1)df:查看系统磁盘使用情况。是以块为单位,进行查看的。因为磁盘的存储结构,就是以块进行的。(操作系统内容)

    df -h # 以GB显示 df -i # 以inode信息显示

    (2)du 查看目录/文件夹的大小。类似于查看文件夹的属性中的大小信息。会进行相应的罗列。

    注意不会查看此目录下的文件的大小(如 .txt等)

    -h 以kb -a 显示所有文件信息(包括单个文件) 以及文件夹下的最深大小 -b 以byte

    查看开机状态

    (1)dmesg 查看开机状态中的信息 

    dmesg | grep TCP # 查看TCP的相关情况

    也可以通过 cat /var/log/dmesg 来查看,开机时会将信息保存此位置。

    查看设备信息

    (1)lspci 查看在总线PCI上的设备信息。

    查看GPU信息:

    lspci | grep -i nvidia

    (2)nvidia-smi  查看GPU显存情况

    查看网络情况

    (1)netstat 查看网络状态,包括TCP Ip等

    详细可见:https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html

    (2)watch 监测一个命令的运行结果,来监测想要结果的变化情况。详情见:https://www.cnblogs.com/ftl1012/p/watch.html

    watch -n 1 -d "uptime"

    10秒输出一次系统的均衡负载情况。双引号是想要监控的命令。前面是watch所带的参数情况。

    (3)who   显示当前登录系统的用户

    Processed: 0.022, SQL: 8