Linux

1. Linux 查看文件内容的命令

  • cat
    由第一行开始显示内容,并将所有内容输出
  • tac
    从文件最后一行开始显示,并将所有内容输出
  • less
    根据窗口大小,一页一页的显示文件内容
  • head
    显示前几行文件的内容
  • tail
    只显示最后几行
  • nl
    和 cat 一样,只是 nl 显示行号

2. 定时任务(cron)

crontab定时任务
crontab文件的含义:

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

minute hour day month week command

其中:

minute: 表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

在这里插入图片描述
在以上各个字段中,还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

3. 进程管理

查看进程
  1. ps
    ps -l:查看自己的进程
    ps aux:查看系统所有的进程
    ps aux | grep threadx:查看特定的进程
  2. top
    实时显示进程信息。例如,每两秒刷新一次:top -d 2
  3. netstat
    查看占用端口的进程
    实例:查看占用特定端口的进程 netstat -anp | grep port

-a或–all 显示所有连线中的Socket。
-p或–programs 显示正在使用Socket的程序识别码和程序名称。
-n或–numeric 直接使用IP地址,而不通过域名服务器。

4. 在Linux系统中,可以用来查找可执行文件的是?

(1)whereis:
whereis命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

(2)locate:
locate命令和slocate命令都用来查找文件或目录。
locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

(3)which:
which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

(4)type:
type命令用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令。

(5)find:
find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

Linux 进程

1.进程的概念

当某个程序被执行时,内核中实际上产生了一个名为 task_struct{} 的结构体来保存这个进程。进程从一开始就需要各种资源来维护,比如内存资源、CPU资源、文件、信号、各种锁资源等,所有这些东西都是动态变化的,而进程的这些信息都会记录在task_struct当中,所以这个结构体也常称为进程控制块(Process Control Block,简称PCB)。

2.进程的组织方式

进程是一个动态的过程,既然会产生进程,那么进程也会消失,即死亡。每个进程都是由其父进程产生,若子进程结束后,父进程会回收其资源。若子进程的父进程先被结束,那么子进程就会进入孤儿态,其会被系统的1号进程回收其资源。

3.进程的等待

孤儿进程
父进程生成子进程,但是父进程比子进程先结束;子进程会变成孤儿进程,由系统1号init 进程进行接管。init 进程接管后,在该孤儿进程结束的时候,负责“收尸”,回收系统资源及进程信息。

僵尸进程
子进程已经退出,但是没有父进程回收它的资源(父进程生成的子进程,但是子进程比父进程先挂掉,如果父进程没有收回它的资源时,那么子进程挂掉后就变成了僵尸进程;应该尽量避免产生僵尸进程,可以在父进程调用wait 或者waitpid 进程回收)

wait 函数用于等待子进程

进程一旦调用了wait,就立即阻塞自己,由wait 自动分析是否当前进程的某个子进程已经退出。如果让它找到了这样一个已经变成僵尸的子进程,wait 就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait 就会一直阻塞在这里,直到有一个出现为止。

Linux 进程的状态

在这里插入图片描述

  • STAT 检查的状态:进程状态使用字符表示的:
    R(running正在运行或准备运行)
    S(sleeping睡眠)
    I(idle空闲)
    Z (僵死)
    D(不可中断的睡眠,通常是I/O)
    P(等待交换页)
    W(换出,表示当前页面不在内存)
    N(低优先级任务)
    T(terminate终 止)
相关命令

ps 命令
要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到的.
1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。
2)ps -A 显示所有程序。
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps e 列出程序时,显示每个程序所使用的环境变量。
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s 采用程序信号的格式显示程序状况。
10)ps S 列出程序时,包括已中断的子程序资料。
11)ps -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u  以用户为主的格式来显示程序状况。
13)ps x  显示所有程序,不以终端机来区分。

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

linux上进程有5种状态:

  1. 运行(正在运行或在运行队列中等待)
  2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
  3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
  4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
  5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

ps工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process

Linux 解压

tar

  • tar
    -c :建立压缩档案
    -x:解压
    -t:查看内容
    -r:向压缩归档文件末尾追加文件
    -u:更新原压缩包中的文件
    这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。

下面的参数是根据需要在压缩或解压档案时可选的:
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

下面的参数-f是必须的:
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。

tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思

tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思

BASH

Shell 的变量功能
变量的取用与设定:echo
  1. 利用echo 就能够读出,只是需要在变数名称前面加上$ 。如:echo $variable
  2. $:(关于 shell 的 PID)
    钱字号本身也是个变数喔!这个咚咚代表的是『目前这个Shell 的执行绪代号』,亦即是所谓的PID (Process ID)。更多的程序观念,我们会在第四篇的时候提及。想要知道我们的shell 的PID ,就可以用:『 echo $$ 』即可!出现的数字就是你的PID 号码。
  3. ?:(关于上个执行指令的回传值)
    问号也是一个特殊的变数?没错!在bash里面这个变数可重要的很!这个变数是:『上一个执行的指令所回传的值』,上面这句话的重点是『上一个指令』与『回传值』两个地方。当我们执行某些指令时,这些指令都会回传一个执行后的代码。一般来说,如果成功的执行该指令,则会回传一个0值,如果执行过程发生错误,就会回传『错误代码』才对!一般就是以非为0的数值来取代。

Linux 查看日志常用命令

  1. cat 【选项】【文件】:查看文件内容
  2. less 【参数】【文件】:分页显示文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值