第1次 更多的bash shell命令

这篇具有很好参考价值的文章主要介绍了第1次 更多的bash shell命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.检测程序

       程序都是进程在运行,进程里面有很多线程,面试经常会问进程和线程的区别,线程可以访问另一个线程的什么什么的,这些我都听腻了,区别就是进程会分配程序需要的空间,创建线程需要的资源,用一个中二的说法:进程就是世界,线程是世界意志的执行者。线程可以访问进程的各种资源,但是不能访问线程自己的堆栈。

        查看进程的命令是ps,它有很多搭配的参数,比如ps -e 输出全部进程,ps -f显示进程的完整信息,还可以组合ps -ef

       实时检测进程的运行情况:top

        进程显示的信息有哪些?

        UID 启动这些进程的用户

        PID 进程的ID号

        PPID 父进程的ID

        C 进程生命周期中CPU利用率

        STIME 进程启动时的系统时间

        TTY 启动进程时的终端时间

        CMD 启动的程序名称

       使用ps -l会出现更多的字段,可以自行查询

2.结束进程

        我们需要知道进程的各种状态,根据情况结束进程,唤醒进程,挂起进程等等,进程是通过信号来通信。下面列举了几种信号对应的状态

信号 名称 描述
1 HUP 挂起
2 INT 中断
3 QUIT 结束运行
9 KILL 无条件终止
11 SEGV 段错误
15 TERM 尽可能终止
17 STOP 无条件停止运行,但是不终止
18 TSTP 停止或者暂停,但继续在后台运行
19 CONT 在STOP或者TSTP后恢复运行

(1).kill命令

    kill PID  

        终止PID代表的进程,这是向进程发生TERM命令,有些进程会很调皮,无视这个命令,这个时候你可以强硬一点,使用kill -s PID,pid进程会立刻GG

(2). killall命令

kill需要pid,killall可以指定进程名字,还能用通配符

3.监测磁盘空间

有时候我们还要处理LINUX系统空间,所以这也是一项基本技能。

1.挂载存储媒体

LINUX文件系统把所有的磁盘并入到一个虚拟目录下,把新的储存媒体比如U盘放在虚拟目录下,这样的工作叫做挂载。

(1).mount命令

这是挂载媒体的命令,输入mount,输出当前系统上挂载的设备列表

mount命令提供四个部分的信息:

(1).媒体的设备文件名

(2).媒体挂载的虚拟目录的挂载点

(3).文件系统类型

(4).已挂载媒体的访问状态

·修改挂载点 mount -t type device directory

type:格式化方法,有很多种,比如vfat,ios9660,ntfs

device:目前的挂载点

directory:修改到指定位置的挂载点

mount -t  vfat /dev/sdb1 /media/disk

把sdb1的挂载点修改到/media/disk

mount还可以搭配其他的参数,完成更加复杂的命令,这里只介绍重要的-o

-o可以添加一些其他的命令,后面用逗号分割,

ro只读挂载

rw读写挂载

user允许普通用户挂载文件系统

check-none挂载时不检测

loop挂载一个文件

2.umount移除挂载设备

从系统中移除一个可移动设备,需要先卸载。

umount [directory | device]

可以指定设备名字或者挂载点来移除设备,如果设备正在使用,则会失败

3.df命令

查看挂载设备的内存使用情况

这个输出很容易看懂,下面就是df的输出,分别是设备的设备文件位置,块(1M)的数量,已经使用的块,可以空间,使用率,挂载点

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root       61054632 3911020  54605344   7% /
devtmpfs          781052       0    781052   0% /dev
tmpfs             946812       0    946812   0% /dev/shm
tmpfs             378728    1188    377540   1% /run
tmpfs               5120       4      5116   1% /run/lock
/dev/mmcblk0p1    261108   31228    229880  12% /boot
tmpfs             189360      20    189340   1% /run/user/1000

df -h 输出更明白

Filesystem      Size  Used Avail Use% Mounted on
/dev/root        59G  3.8G   53G   7% /
devtmpfs        763M     0  763M   0% /dev
tmpfs           925M     0  925M   0% /dev/shm
tmpfs           370M  1.2M  369M   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
/dev/mmcblk0p1  255M   31M  225M  12% /boot
tmpfs           185M   20K  185M   1% /run/user/1000

4.du命令

df是看整体的情况,则du是看某个指定文件夹下面的内存情况,某人情况下是看当前的文件夹,它会输出指定文件夹下的子文件夹使用情况。这种输出会从文件夹最底层开始,也就是最里面开始输出。也许我们并不需要知道每个文件夹的情况。只需要知道指定的文件夹整体情况。

du -s 则输出文件夹下的整体占用空间

du -h 输出普通人看得明白的数据,和上面那个一样

du -c 输出整体的情况,它是在末尾多了一个统计而已

我的桌面有一个Linux文件目录

du -s linux #输出Linux的文件大小

输出:

6236    linux

du -h linux

64K     linux/.git/hooks
4.0K    linux/.git/refs/heads
4.0K    linux/.git/refs/tags
12K     linux/.git/refs
8.0K    linux/.git/info
4.0K    linux/.git/branches
4.0K    linux/.git/objects/info
4.0K    linux/.git/objects/pack
12K     linux/.git/objects
116K    linux/.git
64K     linux/linux-2.6/.git/hooks
4.0K    linux/linux-2.6/.git/refs/heads
4.0K    linux/linux-2.6/.git/refs/tags
12K     linux/linux-2.6/.git/refs
8.0K    linux/linux-2.6/.git/info
4.0K    linux/linux-2.6/.git/branches
4.0K    linux/linux-2.6/.git/objects/info
5.9M    linux/linux-2.6/.git/objects/pack
5.9M    linux/linux-2.6/.git/objects
6.0M    linux/linux-2.6/.git
6.0M    linux/linux-2.6
6.1M    linux

64      linux/.git/hooks
4       linux/.git/refs/heads
4       linux/.git/refs/tags
12      linux/.git/refs
8       linux/.git/info
4       linux/.git/branches
4       linux/.git/objects/info
4       linux/.git/objects/pack
12      linux/.git/objects
116     linux/.git
64      linux/linux-2.6/.git/hooks
4       linux/linux-2.6/.git/refs/heads
4       linux/linux-2.6/.git/refs/tags
12      linux/linux-2.6/.git/refs
8       linux/linux-2.6/.git/info
4       linux/linux-2.6/.git/branches
4       linux/linux-2.6/.git/objects/info
6000    linux/linux-2.6/.git/objects/pack
6008    linux/linux-2.6/.git/objects
6112    linux/linux-2.6/.git
6116    linux/linux-2.6
6236    linux
6236    total

5. 处理数据文档

(1) sort 对文档的数据排序

默认情况是安装字符串的升序排序,如果你的文档是数字字符,然后你想按数字排序,可以用-n,如果开头是时间,可以按时间排序,-r是降序,-t指定分隔符,-k指定排序的字段。-k和-t一起使用很有效。

理解一下:

du linux | sort -nr

6236    linux
6116    linux/linux-2.6
6112    linux/linux-2.6/.git
6008    linux/linux-2.6/.git/objects
6000    linux/linux-2.6/.git/objects/pack
116     linux/.git
64      linux/linux-2.6/.git/hooks
64      linux/.git/hooks
12      linux/linux-2.6/.git/refs
12      linux/.git/refs
12      linux/.git/objects
8       linux/linux-2.6/.git/info
8       linux/.git/info
4       linux/linux-2.6/.git/refs/tags
4       linux/linux-2.6/.git/refs/heads
4       linux/linux-2.6/.git/objects/info
4       linux/linux-2.6/.git/branches
4       linux/.git/refs/tags
4       linux/.git/refs/heads
4       linux/.git/objects/pack
4       linux/.git/objects/info
4       linux/.git/branches

Linux文件下全部文件降序排列 ,|是管道符

sort -t ':' -k 3 /etc/passwdsystemd-network:x:101:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:102:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-timesync:x:103:109:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:104:110::/nonexistent:/usr/sbin/nologin
_rpc:x:105:65534::/run/rpcbind:/usr/sbin/nologin
sshd:x:106:65534::/run/sshd:/usr/sbin/nologin
statd:x:107:65534::/var/lib/nfs:/usr/sbin/nologin
avahi:x:108:113:Avahi mDNS daemon,,,:/run/avahi-daemon:/usr/sbin/nologin
dnsmasq:x:109:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
lightdm:x:110:114:Light Display Manager:/var/lib/lightdm:/bin/false
rtkit:x:111:116:RealtimeKit,,,:/proc:/usr/sbin/nologin
pulse:x:112:119:PulseAudio daemon,,,:/run/pulse:/usr/sbin/nologin
saned:x:113:122::/var/lib/saned:/usr/sbin/nologin
colord:x:114:123:colord colour management daemon,,,:/var/lib/colord:/usr/sbin/nologin
hplip:x:115:7:HPLIP system user,,,:/run/hplip:/bin/false
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
systemd-coredump:x:996:996:systemd Core Dumper:/:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

观察一下,它把: 作为分割符号,分为很多个字段,指定第三个字段作为排序的指标,然后升序排列。

(2).搜索数据:grep

他的使用方法很多,需要仔细研究。命令模式:

grep [options] pattern [file]

比如我们有一个文本test.txt,内容如下:

abc
def
123
456

grep a test.txt

输出:abc

grep -v a test.txt #-v表示输出不含查询的字符

def
123
456

有很多选项,可以自己查询

6.压缩文件

有很多工具可以压缩,比如bzip2,compress,gzip,zip

后缀名也各不一样,分别对应.bz2,.z,.gz,.zip

介绍一下gzip,这是GUN的一个压缩软件

(1).gzip 压缩文件

(2).gzcat 查看压缩文件的内容

(3).gunzip 解压

7.归档文件

虽然gzip可以压缩文件,但是它是对单个文件使用,我们常常需要对一系列文件使用,所以需要tar命令。

tar function [option] object1 object2 object3

功能有很多

-A 把一个归档的文件追加到另一个中

-c 创建一个新的归档文件

-d 比较两个归档文件的不同

-r 追加归档文件到末尾

-t 列出归档文件的内容

-u 更新,追加同名文件

-x 从归档文件中提取文件

选项也有很多

-C dir 切换到指定dir

-f file 输出结果到文件file

-j 重定向输出结果给bzip2来压缩文件

-p 保留文件权限

-v 处理文件的时候显示文件

-z 重定向给gzip命令来压缩文件

比如压缩三个文件a1,a2,a3

tar -cvf A.tar a1 a2 a3

把a1 a2 a3 的内容输入到创建的文件A.tar中

查看压缩文件

tar -tf A.tar

则输出a1 a2 a3

 A.tar会被重新构建

解压命令:

tar -zxvf A.tar文章来源地址https://www.toymoban.com/news/detail-727712.html

到了这里,关于第1次 更多的bash shell命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • bash shell基础命令(二)

    ps 命令可以用来检测系统进程。 默认的ps命令只显示运行在当前终端中属于当前用户的进程。如上当前在运行的进程有bash和ps。 PID:进程ID TTY:运行终端 TIME:占用CPU时间 CMD:进程名 ps命令支持3种命令行选项: Unix风格选项,选项前加单连接字符- BSD风格选项,选项前不加连

    2024年01月19日
    浏览(59)
  • BASH shell脚本篇2——条件命令

    这篇文章介绍下BASH shell中的条件相关的命令,包括:if, case, while, until, for, break, continue。之前有介绍过shell的其它基本命令,请参考:BASH shell脚本篇1——基本命令 1. If语句 if 语句用于在顺序执行语句的流程中执行条件任务。 If 语句通常用于在Bash脚本中做出决定。它们根据

    2024年02月07日
    浏览(47)
  • Linux和Shell笔记-2基本的bash shell命令

    与windows前面标明盘符不同,Linux采用了将文件存储在单个目录结构中,这个目录被称为 虚拟目录 。 Linux使用正斜线( / )而不是反斜线( ) 在文件路径中划分目录。Linux中反斜线用来标识转义字符,因此不能用在文件路径里,这一点和windows不同。 常用的目录名称以及功能介绍

    2024年02月16日
    浏览(49)
  • 10.1.5 查询指令是否为 Bash shell 的内置命令: type

    通过 type 这个指令我们可以知道每个指令是否为 bash 的内置指令。 此外,由于利用 type 搜寻后面的名称时,如果后面接的名称并不能以可执行文件的状态被找到, 那么该名称是不会被显示出来的。也就是说, type 主要在找出“可执行文件”而不是一般文件文件名。 10.1.6 指令

    2024年02月15日
    浏览(50)
  • SHELL 基础 入门(三) Bash 快捷键 命令执行顺序,详解通配符

    目录 Bash 常用快捷键  输入输出重定向  用法  输出重定向  命令执行顺序  ;  分号 ||  通配符  传统通配符  ? \\\'  *  \\\'  [  ]   [ - ]   [ ^ ] 常用字符  强调 : {  }   生成序列  Ctrl + A    把光标移动到命令行开头 Ctrl + E    把光标移动到命令行尾  Ctrl + D    退出当前

    2024年02月11日
    浏览(59)
  • Shell脚本中文英文多语言国际化和命令行批处理(bash sh cmd bat)中定义函数的简单写法

    有时候为了方便别人使用,我们会选择去编写各种各样的命令行脚本:给Windows用户编写 .bat cmd批处理脚本,给macOS、Linux用户编写 .sh bash shell脚本。 面向国内用户当然应当首选中文作为脚本的显示语言,如果还要支持海外用户使用,那么能提供国际化多语言( i18n )支持那是

    2024年02月08日
    浏览(55)
  • shell、bash的关系及bash的特性(一)

            shell是壳,是运行在终端中的文本互动程序。Shell相当于是一个翻译,把我们在计算机上的操作命令,翻译为计算机可识别的二进制命令,传递给内核,以便调用计算机硬件执行相关的操作;同时,计算机执行完命令后,再通过Shell翻译成自然语言,呈现在我们面前

    2024年02月14日
    浏览(43)
  • 自定义实现shell/bash

    exec/exit就像call/return一个C程序有很多函数组成。一个函数可以调用另外一个函数,同时传递给它一些参数。被调用的函数执行一定的操作,然后返回一个值。每个函数都有他的局部变量,不同的函数通过call/return系统进行通信。这种通过参数和返回值在拥有私有数据的函数间

    2024年04月28日
    浏览(25)
  • Ubuntu系统默认的dash shell改成bash shell

    在Ubuntu系统中,如果默认的 /bin/sh 链接指向了 dash ,而你希望将其更改为指向 bash ,可以通过以下步骤操作: 但是,这种做法并不推荐,因为某些系统服务和脚本依赖于 dash 作为轻量级且符合POSIX标准的shell。Ubuntu系统将 /bin/sh 链接到 dash 是为了提高系统的启动速度和脚本执

    2024年01月17日
    浏览(48)
  • bash shell实现简易进度条

    # processbar current total processbar() {   local current=$1; local total=$2;   local maxlen=80; local barlen=66; local perclen=14;   local format=\\\"%-${barlen}s%$((maxlen-barlen))s\\\"   local perc=\\\"[$current/$total]\\\"   local progress=$((current*barlen/total))   local prog=$(for i in `seq 0 $progress`; do printf \\\'#\\\'; done)   printf \\\"rn$3rn$format\\\" $p

    2024年02月21日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包