工作中经常用到的 Linux 命令

学习 Linux 命令行,就像一名出色的钢琴家一样。不是我们一个下午就能学到的东西,它需要很多的实践。

                                                            -  William E. Shotts

    作为一个开发人员,需要对终端有一定基本能力,本篇文章将总结那些常用的基本的 Linux 命令。

推荐阅读时长:7 分钟

1

 文件系统

touch: touch 命令 可以让我们更新现有文件和目录的时间戳以及创建新文件。

    • 要创建新文件,只需运行 touch 命令后跟要创建的文件名即可 :

      touch file1.txt
    • 若文件已存在,则该命令更新文件操作时间:

    • 指定多个文件的时候,可以用逗号隔开,即:

      touch file1.txt file2.txt file3.txt

小Tips:使用重定向运算符创建文件。

重定向允许您捕获命令的输出,并将其作为输入管道到另一个命令或文件。有两种方法可以将输出重定向到文件。

> 操作符将覆盖现有文件

>> 操作符将追加输出到文件中。

vi/vim:编辑文件,但是可以创建新文件,不过需要保存退出,如果创建新的空文件不建议使用:

vim file3.txt   

cat : 显示一个文件的内容,或者连接多个文件的内容,同样可以创建新文件

        cat >file4.txt
      • 记得回车之后,ctrl+D保存哦!

echo:echo命令的标准输出可以被重定向到文件。

      • 如果要创建一个空文件,只需使用:

          echo > file5.txt

    • 有时,出于测试目的,您可能需要创建一个大文件。当您要测试驱动器的写入速度或测试连接的下载速度时,此功能很有用。你可以使用dd命令或者fallocate命令。

      使用dd命令

      dd命令主要用于转存和复制文件,要创建一个大小为1GB 的文件1G.test,请运行:

      dd if=/dev/zero of=1G.test bs=1 count=0 seek=1G

      使用fallocate命令

      fallocate命令用于为文件分配实际磁盘空间,以下命令将创建一个1GB 的新文件1G.test

      fallocate -l 1G 1G.test
      • 要使用echo创建新文件,后跟要打印的文本,然后使用重定向操作符>将输出写入到要创建的文件:

          echo "hello world" > file6.txt

less:一次显示一页的大文件,使用空格键前进,使用b后退。

more:查看文件,使用空格键和b前进或后退,但是后退对管道不适用

众所周知 linux 中,cat、more、less均可用来查看文件内容。

主要区别有:
cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况;


more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能。

more比cat强大,less比more更强大。

2

file:告诉文件的格式。

head/tail:显示文件的顶部和尾部,通过 -n 来规定查看的行数。

          #查看前5行head -5 file2.txt

          #查看后10行tail -10 file3.txt

reset:重新初始化终端。

           在调整窗口大小或者命令导致窗口混乱的时候特别有用。

>:I/O重定向,将命令输出发送到文件,直接覆盖原有内容:

        ls > file1.txt
      • 将ls输出的内容 覆盖到了file1.txt中

>>:如果不是覆盖,而是追加内容,用>>重定向运算符:

        ll  >> file1.txt
      • 最末尾还有一个file6.txt,没截到。

| :管道字符,用于将命令的输出发送到另一个命令的标准输入。

head /proc/cpuinfo | tr a-z "替换的内容"# tr 命令:用于转换或者删除文件中的字符

sort:对文本进行排序。

    sort testfile# sort 命令将以默认的方式将文本文件的第一列以 ASCII 码的次序排列# 并将结果输出到标准输出。

      • 使用参数 -k 对第二列的值进行重排:

        sort testfile -k 2

uniq:用于检查以及删除文本文件中省略重复出现的行。一般与sort命令结合使用。

    uniq testfile -c# -c :在每一列的旁边显示该行重复的次数

    uniq testfile -d # 参数 -d: 仅仅显示重复的行列
        uniq testfile # 删除重复的行列
        

grep:用于查找文件里符合条件的字符串

 

  • 查找后缀是 .txt 文件中,包含字符串“a”的行,并打印。

    grep a *.txt

    反向查找,查找不包含“a”的行,使用参数 -v。

    grep -v a *.txt

    不区分大小写的行,利用参数 -i

    grep -i "被查找的字符串" 文件名

wc:用于计算字数,打印每个文件的换行符、字数和字节数。

            参数

  • -c   只显示Bytes数。

  • -l    示行数。

  • -w   只显示字数。

    #在默认的情况下,wc将计算指定文件的行数、字数,以及字节数wc testfile

tee:从标准输入读取并写入标准输出和文件

    • 使用 tee 命令,将用户输入的数据 同时保存到 file1.txt 以及 file2.txt中,输入以下命令:
         tee file1.txt file2.txt 

2

 进程 

进程是一个正在运行的程序

每个进程都有一个进程 ID (PID)

以下是命令行中可用的一些工具,可让我们检查程序在做什么。

ps:用于显示当前进程的状态,类似于window的任务管理区。

    • 当仅仅输入 ps 命令时候,将打印四列信息,以显示当前shell程序中正在运行的两个进程:shell程序本身(shell)以及调用命令ps时shell程序中运行的进程。

    • 四列分别为 PID(进程号),TTY(进程的控制终端名称),TIME(进程使用CPU时间,以分钟和秒为单位),CMD(用于启动进程的命令名称)

    • 单单运行的 ps 命令时,用户最想寻找的最重要的是进程号 PID,,了解了 PID 进程号可以轻松终止故障进程。

    ps aux --sort=-%mem

    注意:要检查特定进程,请在命令行末尾添加PID ps

    ps u 1234
    ps -ef | grep 进程关键字# ps -ef 是unix风格的语句,也是指示 ps 显示所有的进程,# 显示8列的信息包括UID,PID,PPID,C,STIME,TIME和CMD# UID与BSD风格的PS命令的USER列相同,表示运行进程的用户。PPID父进程的ID。# C与相同%CPU列相同,表示进程的cpu利用率。# STIME与START列相同,表示命令启动的时间。
    1. 解释一下常用参数的含义

      1. a :告知 ps 显示所有用户的进程,除了于终端不相关的进程。

      2. u :代表了一种面向用户User的格式,提供有进程的详细信息。

      3. x :让 ps 没有控制终端的进程,这些主要是在启动时启动并在后台运行的进程,例如服务。

      4. ps aux :ps aux命令将显示11个的列的信息USERPID%CPU%MEMVSZRSSSTATSTARTTTYTIMECMD

          1. USER: 运行进程的用户

          2. PID: 进程号

          3. %CPU: 进程的cpu利用率

          4. %MEM: 进程的驻留集大小占计算机上物理内存的百分比

          5. VSZ: KiB中进程的虚拟内存大小

          6. RSS: 进程正在使用的物理内存的大小

          7. STAT: 进程状态代码,可以是Z僵尸进程,S正在休眠进程,R正在运行进程...etc

          8. START: 命令开始的时间

          9. TTY: 进程的控制终端名称

          10. TIME: 进程使用CPU时间,以分钟和秒为单位

          11. CMD: 用于启动进程的命令名称

    2. ps x :显示所有正在运行的进程

    3. ps ax :显示系统上的所有进程,而不仅仅是拥有的进程

    4.  ps u :包括有关流程的个更多详细信息

    5. ps w :显示完整的命令名称,而不仅仅是一行

    6. ps auxf:需要打印进程树,请添加 f 选项,这将告诉 ps 显示父进程到子进程的树视图

    7. ps命令还允许您对输出进行排序。例如,要根据内存使用情况对输出进行排序,可以使用:

    8. ps 命令与管道

      1. 想要分页显示 ps 命令的信息,则可以通过与管道操作符| 结合,传递给 less 参数,就可达到分页的效果:

          # BSD 风格ps aux | less
          # unix风格ps -ef | less
          # unix风格中# -e 是显示所有的进程  f为显示详细信息
      2. ps 命令的输出也可以通过管道 | 传递给 grep 进行过滤,例如仅展示 root 用户的进程,你将运行以下命令:

          ps -ef | grep root
          ps aux | grep root
          
      3. 所有的ps选项的信息,请在终端中输入 man ps,即可查看。

top:显示任务,实时显示进程的动态。

实例

显示进程信息

# top

显示完整命令

# top -c

以批处理模式显示程序信息

# top -b

以累积模式显示程序信息

# top -S

设置信息更新次数

top -n 2//表示更新两次后终止更新显示

设置信息更新时间

# top -d 3//表示更新周期为3秒

显示指定的进程信息

# top -p 139//显示进程号为139的进程信息,CPU、内存占用率等

显示更新十次后退出

top -n 10

使用者将不能利用交谈式指令来对行程下命令

top -s

kill:删除执行中的程序或工作

使用 kill -l 命令列出所有可用信号。

最常用的信号是:

  • 1 (HUP):重新加载进程。

  • 9 (KILL):杀死一个进程。

  • 15 (TERM):正常停止一个进程。

实例

杀死进程

# kill 12345

强制杀死进程

# kill -KILL 123456

发送SIGHUP信号,可以使用一下信号

# kill -HUP pid

彻底杀死进程

# kill -9 123456

显示信号

# kill -l

1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP

6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ

杀死指定用户所有进程

kill -9 $(ps -ef | grep hnlinux) //方法一 过滤出hnlinux用户进程

kill -u hnlinux //方法二

jobs:用来查看后台执行的任务

bg:将工作置于后台(用来将一个后台暂停的命令,继续执行)

fg:将工作放在前台(用来将后台中的命令掉到前台继续执行)

killall:按名称杀死进程

shutdown:关闭或者重新启动系统

—END—

  

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值