首页 > 系统相关 >linux与shell 4.检测系统进程 5.理解shell

linux与shell 4.检测系统进程 5.理解shell

时间:2022-12-27 15:22:52浏览次数:47  
标签:00 shell 检测 linux mnt DESKTOP kali FQ0BCLS Edgedownload

认识shell

查看已安装的shell

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/sh
/usr/bin/pwsh
/opt/microsoft/powershell/7/pwsh
/bin/zsh
/usr/bin/zsh
/usr/bin/tmux
/usr/bin/screen

查看系统默认shell

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ which sh
/usr/bin/sh

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ ls -l /usr/bin/sh
lrwxrwxrwx 1 root root 4 Sep  1 22:11 /usr/bin/sh -> dash

显示当前的shell名称

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ echo $0
bash

输入shell的名称即可切换bash
exit退出bash

shell的父子关系

PID 当前进程的ID
PPID 当前进程的父进程的ID

ps --forest 查看继承关系
ps -f 查看进程的常用详细信息
ps -l 详细信息

实时查看进程 top 
结束进程 kill PID

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ ps -f
UID        PID  PPID  C STIME TTY          TIME CMD
kali     10114 10113  0 Dec26 pts/0    00:00:00 bash
kali     10341 10114  0 14:39 pts/0    00:00:00 ps -f

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ bash
┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ ps -f
UID        PID  PPID  C STIME TTY          TIME CMD
kali     10114 10113  0 Dec26 pts/0    00:00:00 bash
kali     10342 10114  1 14:39 pts/0    00:00:00 bash
kali     10345 10342  0 14:39 pts/0    00:00:00 ps -f

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ ps --forest
  PID TTY          TIME CMD
10114 pts/0    00:00:00 bash
10342 pts/0    00:00:00  \_ bash
10346 pts/0    00:00:00      \_ ps

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ exit
exit

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ ps -f
UID        PID  PPID  C STIME TTY          TIME CMD
kali     10114 10113  0 Dec26 pts/0    00:00:00 bash
kali     10347 10114  0 14:39 pts/0    00:00:00 ps -f

进程列表

命令列表(命令间用分号分隔)

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ pwd;cd /etc;pwd;echo $BASH_SUBSHELL
/mnt/e/Edgedownload
/etc
0

进程列表(将命令列表放入小括号中)

生成一个子shell执行命令。可以嵌套括号生成子子shell
如何查看是否生成子shell?echo $BASH_SUBSHELL,非0为子shell。

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ (pwd;cd /etc;pwd;echo $BASH_SUBSHELL)
/mnt/e/Edgedownload
/etc
1

灵活运用子shell

后台模式(在命令行末尾加上&,将命令置于后台)

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ sleep 1000&
[1] 10350

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ jobs
[1]+  Running                 sleep 1000 &

[1] 后台作业号
10350 PID

jobs 查看所有后台进程

将进程放入后台后,终端不再与子shell的IO绑定

协程(coproc)

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ coproc sleep 10;ps --forest
[1] 10354
  PID TTY          TIME CMD
10114 pts/0    00:00:00 bash
10354 pts/0    00:00:00  \_ sleep
10355 pts/0    00:00:00  \_ ps

coproc与嵌套子进程

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ coproc (sleep 10;sleep 2)
bash: warning: execute_coproc: coproc [10365:COPROC] still exists
[4] 10367

[2]   Done                    coproc COPROC ( sleep 10 )
[3]   Done                    coproc COPROC ( sleep 10 )
┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ ps --forest
  PID TTY          TIME CMD
10114 pts/0    00:00:00 bash
10367 pts/0    00:00:00  \_ bash
10368 pts/0    00:00:00  |   \_ sleep
10369 pts/0    00:00:00  \_ ps

协程命名

# 默认名称
┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ coproc sleep 10;jobs
[1] 10375
[1]+  Running                 coproc COPROC sleep 10 &

# 自定义名称 注意格式{空格xxx;空格}
┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ coproc MY_COPROC { sleep 10; }
[1] 10372

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ jobs
[1]+  Done                    coproc MY_COPROC { sleep 10; }

外部命令和内建命令

使用type -a 命令名查看是外部命令还是内建命令
使用which 查看当前使用命令的安装位置

外部命令

位于 .../bin 文件夹中
执行时衍生(创建子进程)

内建命令

和shell集成的命令,高效

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ type -a echo
echo is a shell builtin  <--echo是内建命令
echo is /usr/bin/echo
echo is /bin/echo

[1]+  Done                    coproc COPROC sleep 10
┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ which echo
/usr/bin/echo  <--当前使用的echo是外部命令

┌──(kali㉿DESKTOP-FQ0BCLS)-[/mnt/e/Edgedownload]
└─$ type -a ps
ps is /usr/bin/ps  <--ps是外部命令
ps is /bin/ps

两个常用的内建命令

history 查看历史使用的命令行
alias 设置命令行别名

标签:00,shell,检测,linux,mnt,DESKTOP,kali,FQ0BCLS,Edgedownload
From: https://www.cnblogs.com/hezexian/p/17008144.html

相关文章

  • 21、electron 在linux环境下打印pdf文件
    环境:"electron":"^22.0.0"、麒麟系统V10(sp1)1、思路:利用nodejs调linux的打印命令lp打印2、代码:constchildProcess=require("child_process");constsp=ch......
  • linux三权分立账号创建
    系统管理员创建系统管理员(sys用户)并设置密码[root@localhost~]#useraddsys[root@localhost~]#passwdsys创建组并将用户添加到组(/var是要给用户权限访问的路径......
  • Linux安装防火墙
    在虚拟机上装的centos7是最小安装方式,所以许多东西都没装,需要自己手动安装。想通过防火墙来开放3306端口,但是通过vi/etc/sysconfig/iptables发现文件不存在,网上说是没有......
  • linux vi 编辑器常用命令
    1、打开命令:vi+filename(还有各种打开的姿势,只不过我比较顺手这个)2、退出命令::q退出而且不保存修改的内容:q!强制退出不保存修改的内容:wq退出并且保存修改的内容:wq!......
  • Linux 目录配置
    Linux目录配置的依据)(FHS标准) /(root,根目录):与开机系统有关;/usr(unixsoftwareresource):与软件安装/执行有关;/var(variable):与系统运作过程有关。  /......
  • Linux档案权限不目录配置
    如何改变文件属怅不权限:chgrp,chown,chmodLinux用户身份不群组记彔的档案在我们Linux系统当中,默认的情况下,所有的系统上的账号不一般身份使用者,还有那个root的相......
  • Linux如何正常关机
    若不正常关机,则可能造成文件系统的毁损(因为来不及将数据回写到档案中,所以有些朋务的档案会有问题!)。所以正常情况下,要关机时需要注意底下几件事: 观察系统的使用状态:......
  • 第01章_Linux下MySQL的安装与使用
    第01章_Linux下MySQL的安装与使用1.安装前说明1.1Linux系统的准备安装并启动好两台虚拟机:CentOS7安装有Xshell和Xftp等访问CentOS系统的工具CentOS6和CentOS......
  • Xshell 上传下载本地文件
    1.需要先安装lrzszyum-yinstalllrzsz aptinstalllrzsz(查看aptlist--installed)未安装找不到rz命令2.检验安装结果rpm-qalrzsz3.上传本地文......
  • linux回炉第八天
    if...;thenfiif...;thenelse...fiif...;thenelif...;thenelse...ficase...inpat1)...;;pat2)...;;*)...;;esac~]#foriin`ls/etc`;doecho$......