Linux常用命令总结

linux的目录图:转自细说linux挂载

/         (这就是著名的根)
├── bin         (你在终端运行的大多数程序,比如cp、mv...)
├── boot         (内核放在这里,这个目录也经常被作为某个独立分区的挂载点)
│   └── grub   (grub引导程序和引导菜单就放在这里)
├── cdrom
├── dev         (存放设备文件,这里相当于一个设备管理器,由系统自动生成。视硬件环境不同变化很大)
│   ├── block
│   ├── bsg
│   ├── bus
│   ├── char
│   ├── disk         (磁盘信息,要挂载硬盘分区就要注意这里的信息喽)
│   │   ├── by-id      (硬盘分区的永久性符号链接)
│   │   ├── by-label   (按卷标识别的硬盘分区,常用于挂载)
│   │   ├── by-path   (硬盘分区的节点链接)
│   │   └── by-uuid   (按UUID识别的硬盘分区,常用于挂载)
│   ├── dri
│   ├── fd
│   ├── input
│   ├── net
│   ├── pts
│   ├── shm
│   └── snd
├── etc         (存放所有程序和系统的配制文件和全局变量,对所有用户生效,非常值得备份)
├── home         (这就是著名的home目录了,注意不是”家目录”,强烈建议把一个独立分区挂载到这里!)
│   ├── adagio   (这才是我真正的家!一般来说目录名就是帐号名,当然也可以不是,随便。命令行中用波浪线~代表这里)
│   ├── MNT      (这是我挂载其它硬盘分区的地方,你可以看到用硬盘品牌、容量或用途区分的目录名)
│   │   ├── MAX40NT1   (迈拓40G)
│   │   ├── ST160NT1   (希捷160G第一分区,下面两个类似)
│   │   ├── ST160NT2
│   │   ├── ST160SYS
│   │   ├── ST320G      (希捷320G)
│   │   │   ├── MOVIE
│   │   │   ├── MUSIC
│   │   │   └── P2P   (电驴、BT的缓冲区)
│   │   ├── ST80G      (希捷80G)
│   │   │   ├── PROGRAM
│   │   │   ├── ST80PE
│   │   │   └── YEAR
│   │   └── WD1000      (西数1T)
│   │       ├── WD2
│   │       ├── WD3
│   │       ├── WD5
│   │       ├── WD6.Lib
│   │       └── WD7
│   └── test   (我建立的另一个帐号的家目录,专门用于测试,一旦搞到无法收拾的地步,只需简单的
│                把里面的所有文件删除,就可以恢复默认。实际上你可以拥有无数个帐号)
├── lib         (所有程序共享的库文件)
├── lost+found   (磁盘扫描出现的丢失的数据)
├── media      (你在文件管理器里点击后自动挂载的分区就在这里,按卷标命名,没有卷标则按大小命名)
├── mnt         (同样用于挂载磁盘,这是最传统的位置,喜欢挂哪里随便)
├── opt         (某些特殊的程序喜欢把数据放在这里,比如JAVA)
├── proc         (当前系统所有的详细信息,这里的”文件”并不存在于硬盘中,而是在内存或缓存里,每次启动后都不一样)
├── root       (这是系统最高权威root用户的家!他是老大,所以不住在/home里,那里是草民住的)
├── sbin         (类似/bin,存放常用程序,但这里的程序都是要命的啊,比如格式化,所以只有root用户或sudo程序有权使用)
├── srv         (一些服务所要访问的文件)
├── sys         (系统的核心文件,类似/proc,不必管它)
├── tmp         (存放临时文件,所有用户均可使用,不过你要小心啊,这里的所有文件一旦重启就全没了,自动清空的)
├── usr         (你在X下使用的所有程序数据都在这里了,包括图标、manual等。所有用户都可以使用。也是最庞大的目录)
└── var         (variation,顾名思义就是变量,这里存放系统中经常变化的数据。和/tmp不同啊,很有用的地方)
    ├── backups
    ├── cache
    │   └── apt
    │        └── archives   (存放你安装的所有程序的deb包!重装系统时太有用了,一定要备份好,到时候放回来。
    │                     我建议把整儿/var单独挂载到一个独立分区,像/home一样。这样你重装好系统后,只
    │                      需要简单的把整儿分区挂载到/var就行了,省去了备份-还原的时间。要知道这些deb包
    │                      可不是几十M而已,而是有可能几百M、几个G,一来一回可够呛的。你也可以单独挂载
    │                      一个分区到/var/cache/apt/archives,其他的都不要。
    │                      当然,这样又增加了一点系统构造的复杂度,喜欢怎样请自己斟酌。)
    ├── crash
    ├── games
    ├── lib
    ├── local
    ├── lock
    ├── log      (呵呵,这里的文件是系统运行的完整记录,出了问题一定要来这里看看)
    ├── mail      (这里是存放所有用户email的地方)
    ├── opt
    ├── run
    ├── spool
    └── tmp
  • 命令之后的参数除了前面带有减号’-‘之外,某些特殊情况下,参数前面也会带有正号’+'的情况。比如date查询日期,后面可以加参数:date +%Y/%m/%ddate +%H:%Mdate +"%Y-%m-%d %H:%M"
  • 使用cal [[month] year]查看某年某月的日历。
  • bc进入计算器,输入scale=n来指定小数点的位数,使用quit退出。
  • 在man page中常用的一些按键:/string向下查询string字符串;?string向上查询string字符串;n Nn来继续下一个查询,N来反向查询;
  • man -f 命令名查看还有哪些说明文件和命令有关。完全匹配查询。
  • man -k 命令名查看还有哪些说明稳健和命令有关。模糊匹配查询,比如man -k date还会查出getdate等包含date的。
  • 在使用makewhatis创建了whatis数据库的情况下,whatis [命令或者是数据]相当于man -f 命令名apropos [命令或者是数据]相当于man -k 命令名
  • linux中有很多文本编辑器,比如vinano
  • 查看当前有谁在线,使用who
  • 查看网络的联机状态,使用netstat -a
  • 查看后台执行的程序,使用ps -aux
  • 使用sync将内存中尚未被更新的数据写入硬盘中。
  • 使用ls -al查看当前目录下的所有文件(包括隐藏文件,文件名第一个字符为“.”的文件)及其权限相关信息。
  • 使用chgrp [-R] 用户组名 dirname/filename来改变文件所属用户组。-R是递归,如果是目录,则目录下的所有文件都改变。用户组名必须在/etc/group文件内存在。
  • 使用chown [-R] 账户名称:组名 文件或目录来改变文件所有者。chwon也能改变用户组,chown [-R] .组名 文件或目录来单纯的改变组名。用户名称必须在/etc/passwd文件中存在。
  • 使用chmod [-R] xyz 文件或目录来改变文件的权限,r=4,w=2,x=1,参数xyz分别是用户,用户组,other的r,w,x的总和。
  • 使用符号类型改变权限,u=user,g=group,o=other,a=all,+为添加,-为删除,=为设置,比如chmod u=rwx,go=rx 文件/文件名chmod a+x 文件或文件名
  • 对文件来说,r是可读取文件的实际内容;w是可以编辑文件内容,但不能删除;x是可以被执行;对目录来说,r是可以查看该目录下的文件名数据,即可以使用ls命令;w是可以改变目录结构;x是可以进入该目录,即可以使用cd。
  • 在这里插入图片描述
  • Linux下,一个文件能不能被执行,与文件名一点关系都没有,只和权限有关。当然能不能执行成功又是另一回事。文件名的作用只是让人了解该文件可能的用途而已。
  • 使用uname -r来查看实际的内核版本。
  • 使用lsb_release -a查看linux更具体的信息。
  • 绝对路径:由根目录/写起
  • 相对路径:意指相对于目前工作目录的路径。
  • 特殊的目录:.代表此层目录;..代表上一层目录;-代表前一个工作目录;~代表“目前用户身份”所在的主文件夹;~account代表account这个用户的主文件夹。
  • cd [相对路径/绝对路径];使用cd ~account到这个用户的主文件夹;使用cd ~回到自己的主文件夹;cd也是回到自己的主文件夹;使用cd -表示回到刚才的那个目录。
  • pwd [-p]显示当前目录。
  • mkdir [-m xyz] [-p] 目录,-m是设置权限,-p是递归创建。比如mkdir -m 711 test2mkdir -p test1/test2/test3/test4会将test1等都创建出来。
  • 使用PATH="$PATH":路径将路径添加到PATH变量中。
  • 使用rmdir [-p] 目录名称删除空目录,-p参数会将上层“空的”目录一起删除。
  • ls -a->全部的文件,包括隐藏文件;ls -d->仅列出目录本身,而不是列出目录内的文件数据;ls -l列出长数据串,包含文件的属性与权限等数据;
  • cp除了单纯复制以外,还可以创建连接文件(快捷方式),对比两文件的新旧而予以更新,以及复制整个目录等。
  • cp命令的来源档和目的档的权限是不同的,目的档的拥有者通常会是指令操作本身,所以如果要完整复制文件权限,必须要加上-a或者是-p。
  • rm -f 文件/目录强制删除,-r递归,-i互动询问你是否真的删除。\rm命令前加上反斜杠,可以忽略掉指定参数。
  • 使用mv这个命令可以移动目录和文件,也可以用来重命名。
  • 使用basename /etc/sysconfig/network取得最后的文件名network,使用dirname /etc/sysconfig/network取得目录名/etc/sysconfig
  • cat,tac,nl都是一次性将数据显示到屏幕上面,moreless是可以一页一页翻动的。less最有弹性,使用方式和man page非常类似。
  • 使用head [-n number] 文件取出文件前面n行,如果参数是负数,比如-n -100,文件有141行,则只取41行,后面100行不取。
  • 使用tail [-f] [-n number] 文件来取文件后面几行。-f表示持续检测,number前面加+时,比如-n +100,则只显示100行以后的数据。
  • 使用od [-t type] 文件读取非纯文本文件。type可以是ASCII,十进制,八进制等。
  • 使用touch这个命令创建一个空的文件,也可以将某个文件日期修改为目前日期。
  • mtime为文件内容数据更改时间;ctime是文件状态修改时间,比如权限和属性;atime是文件读取时间,比如cat了这个文件。
  • 使用umask查看默认文件权限,abcd,a是特殊权限,bcd是用户用户组和其他的权限补码,比如bcd是002,则补充码是777-002=775,775就是创建目录的默认权限(r=4,w=2,x=1)。因为文件一般没有执行权限,则775-111=664为文件的默认权限。
  • 使用umask -S可以查看目录的默认权限,以字符串的方式,比如u=rwx,g=rwx,o=rx
  • 特殊权限有SUID,SGID和SBIT。前面的umask设置默认权限的abcd的a就是用来设置特殊权限的。SUID=4,SGID=2,SBIT=1。
  • SUID是让没有二进制文件(目录没有意义)的x权限的用户短暂拥有该文件文件所有者的权限。u必须有x权限才能设置SUID,比如-rwx------,使用chmod u+s 文件名来设置或者chmod 4--- 文件名来设置。设置好之后是-rws------。如果u没有x权限,则设置之后无效,显示为-rwS------,大写S表示无效。
  • SGID是让没有二进制文件/目录权限的用户短暂拥有该文件所属用户组的权限。g必须有x权限才能设置SUID,如果是目录的话还必须有r权限,比如----rwx—,使用chmod g+s 文件名来设置或者chmod 2--- 文件名来设置。设置好之后是----rws—。如果g没有x权限,则设置之后无效,显示为----rwS—,大写S表示无效。
  • SBIT是让用户只能删除目录下自己创建的文件/目录,不能删除其他用户创建的。o必须有x权限才能设置SBIT,比如-------r-x,使用chmod o+t 文件名来设置或者chmod 1--- 文件名来设置。设置好之后是-------r-t。如果o没有x权限,则设置之后无效,显示为-------r-T,大写T表示无效。
  • 使用file 文件/目录来查看文件的类型。
  • 使用which 文件指令在环境变量$PATH设置的目录里查找符合条件的文件。比如which chmod
  • 使用whereis 文件名在一些特定的目录中寻找文件文件名。主要是在bin和man中寻找。使用whereis -l查看是在哪些目录下查找的。
  • find命令直接搜寻硬盘,比较费时间。使用find [PATH] -mtime n来查找n天之前的当天的更改过内容的文件。使用find [PATH] -mtime +n来查找在n天之前不包括当天的更改过内容的文件。使用find [PATH] -mtime -n来查找在n天之内的不包括当天的更改过内容的文件。mtime也可以是atime,ctime。
  • 使用find [PATH] -newer file寻找在路径下比文件file更新的文件。
  • 使用find [PATH] -uid n来查看路径下uid为n的文件;使用find [PATH] -gid n来查看路径下gid为n的文件;使用find [PATH] -user name来查看路径下所属者名称为name的文件;使用find [PATH] -group name来查看路径下所属群组为name的文件;使用find [PATH] -nouser来查看路径下文件拥有者不存在于/etc/passwd中的文件;使用find [PATH] -nogroup来查看路径下文件所属群组不存在于/etc/group中的文件;
  • 使用find [PATH] -name filename搜寻文件名为filename的文件;使用find [PATH] -size [+-]SIZE搜寻比SIZE大(+)或小(-)的文件,SIZE的单位为c(字节),k(2014字节);使用find [PATH] -type TYPE搜寻路径下文件类型为TYPE的文件,TYPE可以为:一般正规文件 (f), 装置文件 (b, c),目录 (d), 连结档 (l), socket (s), 及 FIFO §;使用find [PATH] -perm mode在路径下搜寻权限刚好为mode的文件,比如4755;使用find [PATH] -perm -mode在路径下搜寻权限囊括mode的文件;使用find [PATH] -perm /mode在路径下搜寻权限mode以内的文件。
  • find / -perm /7000 -exec ls -l {} \;
  • /dev/sd[a-p][1-128]:为实体磁盘的磁盘文件名;/dev/vd[a-d][1-128]:为虚拟磁盘的磁盘文件名。
  • inode记录文件的权限,拥有者以及群组,文件容量,ctime,atime,mtime以及文件真实数据存放的block号,一个文件有且只有一个inode;一个文件可以放在多个block,但是一个block只能存放一个文件的数据,目录的block记录目录下文件的inode号以及文件名;superblock记录inode和block的数量以及使用情况等。
  • 使用ls -i查看inode号以及文件名。
  • df:列出文件系统的整体磁盘使用量;du:评估文件系统的磁盘使用量;
  • 使用ln创建硬链接,使用ln -s创建符号链接。
  • 关于硬链接和符号链接的介绍
  • 下面是硬链接图示硬链接
  • 下面是符号链接图示符号链接
  • 使用mount [-t 文件系统] UUID='uuid 值' 挂载点来挂载。
  • 挂载就是文件系统和目录树的结合过程。
  • 在这里插入图片描述
  • 使用gzip进行文件压缩解压时,常用的几个命令:使用gzip -v -# 文件名对文件进行压缩,并把文件的压缩比等信息输出出来,#为数字,1-9,数字越高,速度越慢,压缩比越好,默认是6,压缩之后的文件以gz结尾,原文件消失;使用gzip -d *.gz进行文件的解压;使用zcat/zmore/zless *.gz去尝试读取压缩文件的内容;使用gzip -c -# 文件名>压缩后文件名.gz来压缩文件,保留原文件;使用zgrep ‘查找内容’ *.gz,不必解压文件,查找文件内容。
  • bzip2用法几乎和gzip一模一样,但是压缩比比gzip更好。使用bzcat/bzmore/bzless *.bz2去尝试读取压缩文件的内容;
  • xz压缩比比bzip2更好,但是时间花的更久,用法几乎和gzipbzip2一样。使用xzcat/xzmore/xzless *.xz去尝试读取压缩文件的内容;
  • 上面的指令都是对文件分别进行压缩,如果要将很多数据包成一个文件,需要使用打包指令tar
  • 使用tar -[z/j/J]cv -f filename.tar.[gz/bz2/xz] 要被压缩的文件或目录名称来进行压缩;z/j/Jgz/bz2/xz对应。
  • 使用tar -[z/j/J]tv -f filename.tar.[gz/bz2/xz]来进行查询;z/j/Jgz/bz2/xz对应。
  • 使用tar -[z/j/J]xv -f filename.tar.[gz/bz2/xz] -C 欲解压缩的目录来进行解压缩;z/j/Jgz/bz2/xz对应。
  • 如果只是打包的文件,比如tar -cv -f file.tar得到的文件,称之为tarfile;如果是打包+压缩的文件,称之为tarball
  • 使用tar -cvf - 待复制文件或目录 | tar -xvf -进行复制。复制到当前目录。
  • vim有三种模式:一般模式,编辑模式,命令模式。一般模式可以通过i进入编辑模式,编辑模式通过ESC退回到一般模式;一般模式通过:wq:wq!等从命令模式退出vim。
  • 指令的历史记录存在~/.bash_history中,这里面记录的是前一次登入以前所执行过的指令,而至于这一次登入所执行的命令都被暂存在内存中,当你成功注销系统后,该次指令才会记录到~/.bash_history中。
  • 使用type 命令名来判断命令是不是内建命令,file代表为外部命令,builtin代表为内建命令,alias代表是别名。加入- p参数时,只有为file时才会显示完整路径名。
  • PATH="$PATH":/home/bin为变量追加内容。
  • export PATH使自定义变量成为环境变量。
  • 使用unset 变量名来取消变量。
  • 使用cd $HOME回到用户主目录,和cd ~cd功能一样。
  • 使用echo $$查看shell的PID。
  • 使用echo $?查看上一个命令执行的结果,0是成功执行,其他错误码各有含义。
  • 使用read -p "提示语" -t 等待的时间 变量名来从键盘输出内容存为变量值。
declare [-aixr] variable
选项与参数:
-a:将后面名为 variable 的变量定义成为数组 (array) 类型
-i:将后面名为 variable 的变量定义成为整数数字 (integer) 类型
-x:用法与 export 一样,就是将后面的 variable 变成环境变量;
-r:将变量设定成为 readonly 类型,该变量不可被更改内容,也不能 unset
  • 使用declare -a btp=("a" "b" "c" "d")声明一个名为btp的数组,使用${btp[数组下标]}来访问数据中的元素。

  • 如果要设置变量为运算式的值,不能使用变量名=1+2+3而要使用declare -i 变量名=1+2+3

  • ulimit限制建立文件大小等功能。比如ulimit -f 大小来限制用户可以建立的文件的最大。

  • linux变量替换

  • List item
    在这里插入图片描述

  • 使用alias 命令别名='命令'为命令增加一个别名,命令别名可以直接执行;通过alias查看当然有多少别名;unalias 命令别名使一个别名无效。

  • 别名可以当命令执行,而变量必须通过echo呼出。

  • 使用完linux之后,最好使用history -c清除你的命令执行记录。

  • 指令运行的顺序:1.以绝对或相对路径执行命令;2.由alias找到指令执行;3.由builtin内建指令运行;4.通过$PATH找到的第一个指令运行。

  • 使用source 配置文件将配置文件读入目前的环境当中而不用重新登录。. 配置文件也能达到相同的作用。

  • 在这里插入图片描述
    在这里插入图片描述

  • List item

  • 1>:以覆盖的方法将『正确的数据』输出到指定的文件或装置上;
    1>>:以累加的方法将『正确的数据』输出到指定的文件或装置上;
    2>:以覆盖的方法将『错误的数据』输出到指定的文件或装置上;
    2>>:以累加的方法将『错误的数据』输出到指定的文件或装置上;

  • 使用命令 >文件1 2>文件2将命令的正确输出重定向到文件1,错误信息重定向到文件2,文件1和文件2不能是同一个文件,不然会交叉输出;使用命令 >文件 2>&1命令 &> 文件将正确信息和错误信息都重定向到同一个文件,不会交叉。1>&2是将正确信息当成错误信息来输出。

  • 在这里插入图片描述

  • 管线命令只能接收正确的信息,即上一个命令的standard output,当然也可以通过2>&1将错误信息变为正确信息。管线命令必须是可以接收正确信息的命令。

  • 使用cut -d '分隔符' -f 分割后第几个值cut -c 字符区间管道命令对命令执行后的standard output进行处理。cut是以行为单位进行处理。

  • sort是管道排序,uniq是删除重复的行,wc是显示行,字数,字符数。

  • 双向重导向tee可以将命令的standard output同时导向文件和屏幕(即管道命令可以使用的)。tee [-a] filename,-a是以累加的方式。

  • 使用split -b 文件分区每个分区大小 文件 分区后文件前缀来对文件进行大小分区;使用split -l 行数 文件 文件前缀对文件按行数分区。

  • 如果需要stdin或stdout时,偏偏又没有文件,可以使用-

  • 使用grep -n -v -[ABC] 行数n '查找内容' file 来查找文件中包含查找内容的行,-A代表后n行同时显示出来,-B表示前n行同时显示出来,-C代表前后各n行都显示出来。-n代表显示行数。-v表示反向选择,即没有查找内容的显示出来。

  • 在正规表示法中,^在括号[]内和括号[]外是不一样的,在括号[]内表示反向选择,在括号[]外表示定位在行首。$表示是行尾换行。所以如果你想要找空行,可以使用grep -n '^$' file来找出空行的行数。如果不想输出空行,则可以使用反向选择。

  • 正规表达式中,.代表任意一个字符;*代表0到无穷个字符;比如1*代表0到无穷个1。所以.*代表0到无穷个任意字符。

  • sed命令很强大!

  • 使用diff [-bBi] from-file to-file比对文件,-b忽略空白字符的差异,-B忽略空行差异,-i忽略大小写。diff是以行为单位进行比对。

  • 可以把shell script看成是批处理文件,也可以说是程序语言,因为都是利用shell与相关工具指令,所以不需要编译。

  • 使用bash shell脚本或sh shell脚本执行shell脚本。

  • 使用exit n告诉系统你的shell执行结果,n可以通过echo $?获得。

  • 使用bash或者sh执行script,里面的变量是在子bash中有效,执行完在当前的bash中并不存在;如果想在当前的bash中也生效,使用source 文件名.sh
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • $#代表参数个数,$@$*都可以显示所有参数。

  • script里使用shift可以偏移参数。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • function也可以传参数,函数名 参数的形式,和shell script类似,在function内部$0代表函数名,$1代表第一个参数,$2代表第二个参数…以此类推。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • $(seq 1 100)可以产生1-100的连续数字。
    在这里插入图片描述

  • 使用groups来查看当前账号的群组,第一个群组就是有效群组,使用账号新建文件时候的所属群组。

  • 使用newgrp 新有效群组来变更有效群组,要变更的有效群组必须是groups里面的。
    在这里插入图片描述

  • 使用useradd -D查看添加用户的默认值。

  • root使用passwd 账号名来修改某个账号的密码,如果不加参数账号名,那就是修改的是自己的密码。

  • echo "abc543CC" | passwd —stdin 账号名

  • 使用passwd -l 账号名暂时锁住一个账号,使用passwd -u 账号名解除账号,其实就是在/etc/shadow里相关的账号密码前加上!!

  • 使用usermod 账户名修改账户的一些参数。

  • 使用userdel -r username删除账户,连同家目录一起删除(参数-r)。

  • groupaddgroupdelgroupmod和上面user的差不多。

  • 使用gpasswd使用群组管理员功能。

  • 使用dmesg | grep -i acl查看是否支持acl。

  • 使用setfacl设置文件的针对某个用户,某个群组的权限;使用getfacl获取文件的针对某个用户,某个群组的权限。

  • 完整的切换账号,使用su - username或者su -l username,使用su -切换到root,仅执行一次root指令可以使用su - -c "指令串"。使用su来切换到root时,必须要知道root的密码。root切换到普通用户,不需要输入密码。

  • 使用sudo以root身份执行指令时,不需要知道root的密码,只需要知道自己的密码,只要该用户是/etc/sudoers内的用户。

  • 使用visudo来修改/etc/sudoers。

  • 使用w或者who查询目前已登入系统的用户。

  • 使用lastlog查询每个账号的最近登入的时间。

  • 使用write 账号 账号所在终端接口来向在线的用户发送信息。

  • 使用mesg n来拒绝别人发送的信息。使用mesg y来重新接收。使用mesg查看当前状态。

  • 使用wall "消息"来向所有的用户发送信息。

  • 使用pwck检查账号信息是否有错。

  • 使用pwconv/etc/passwd内的账号与密码移动到/etc/shadow中。

  • at指令需要启动atd服务,at这个指令将所要运行的工作以文本文件的方式写入/var/spool/at/目录内,atd服务就可以取用和执行了,at实际运作单一工作排程。使用atq查看接下来的排成,使用atrm移除某个排程。

  • batch是在at的基础上,让排程在cpu工作负载较小时执行。

  • uptime命令显示当前时间/系统已经运行了多长时间/目前有多少登陆用户/系统在过去的一分钟,五分钟和十五分钟内的平均负载。

  • crontab指令是循环任务,需要启动crond这个服务。使用crontab -e编辑任务内容,使用crontab -l查看所有的任务,使用crontab -r删除所有的任务。任务的形式为分 时 日 月 周 指令

  • /dev/null是垃圾桶。

  • anacron配合/etc/anacrontab的设定,可以唤醒停机期间系统未进行的crontab任务!

  • PID是进程号,PPID是父进程号。

  • 常驻在内存当中的进程称之为服务。服务一般结尾都有个“d”。

  • 每个人进入 Linux 的环境设定都可以随着每个人的喜好来设定,通过 ~/.bashrc

  • 当登入环境时,我们就取得一个名为bash的PID,而在此环境下执行的指令,就是bash的子进程。

  • & 放在指令后面表示设置此进程为后台进程。不会被crtl+c中断,不用等待输入,但是可以被呼叫。

  • bash可以分为前景和背景,指令后加&就是让进程成为背景进程,使用jobs [-lrs]查看背景状态,-l列出所有背景进程的PID以及状态,-r列出正在运行的进程,-s列出暂停的进程。

  • 使用fg %jobnumber将背景中的job拿到前景处理。%可有可无。

  • 使用bg %jobnumber让背景中的进程在背景中继续运行。

  • kill -9强制删除一个工作,kill -15以正常方式终止一项工作。

  • 当脱机后,背景的指令都会被停止,如果想让指令在你脱机后继续运行,可以使用nohup让它在系统背景中运行。

  • 使用ps -l查看自己bash进程,使用ps aux查看所有系统运作的进程。

  • ps是撷取一个时间点的进程状态,top则可以持续侦测进程运作的状态。

  • 使用top [-d 数字] | top [-bnp]来动态观察进程的变化,-d后面可以接秒数,就是整个进程画面更新的秒数,预设是5秒。-b以批次的方式执行top,通常会搭配数据流重导向来将批次的结果输出成为文件。-n-b搭配,意义是需要进行几次top的输出结果。-p指定某些个PID来进行观察监测而已。在top执行过程中,按P以CPU的使用资源排序显示,按M以Memory的使用资源排序显示,按N以PID来排序。

  • 使用pstree -[AU] [-up]查看进程树,-p显示PID,-u显示所属账号名称。

  • 使用kill -l查看可以给进程发送的信号列表。比如kill -9,9就代表强制中断一个进程,15代表正常结束一个进程,1是重新启动。kill -signal PID

  • 如果要杀死某个服务的所有进程,使用killall

  • 使用nice为指令赋初始nice值,使用renice调整进程nice值。

  • 一个服务需要一个daemon进程,那些{xxx}d的程序一般就是daemon进程。

  • 使用systemctl来管理服务。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值