Linux总结(个人写的,可能会有错误或不全的地方,请包涵,还请大佬批改添加,谢谢,转载请注明出处)

Linux操作系统

1Linux操作系统概述

  • Linux操作系统的发展过程、创始人、GNU计划等
  • Linux操作系统的组成,内核的含义
  • 了解Linux操作系统的特点,优缺点以及Linux操作系统的发行版本

 

2shell的基本应用

1)字符界面、图像界面,以及各个终端界面之间的切换

cat /etc/inittab 查看各个系统状态(runlevel)

通常有8个系统状态 终端通常为runlevel 3 图形界面为runlevel 5

 

2)超级用户、普通用户的理解

root用户的提示符是#:root用户权利至高无上(UID为0)

普通用户的提示符是$:普通用户权利有限,切权利可以由root用户增加或减少

 

3)什么是shell,常见的shelll类型,默认的shell

什么是shellShell(壳)是一种用C语言编写的程序(命令解析器),是用户连接Unix/Linux内核的桥梁,它通过调用系统核心的大部分功能的形式向用户隐藏了系统的底层细节,它通过建立文件的形式并行的运行多个程序,来帮助用户完成很多工作。

常见的shelll类型:Bourne Again Shell (简称bash)、Bourne Shell(简称sh)、C-Shell(简称csh)、Korn Shell(简称ksh)

 cat /ect/shells 查看主机内都包含哪些shell

默认的shell/bin/bash

echo $SHELL 查看当前shell类型

4Linux树形目录的含义(安装树: yum -y install tree)

Linux文件系统继承了UNIX的特点,它采用了树型目录结构,通过目录将系统中所有的文件分级、分层的组织在一起,以根目录为起点,所有目录都从根目录里派生而来,

把设备视为文件,设备与文件使用统一的接口进行处理

树型结构的最上层是根目录,用/表示

系统在运行中可以通过使用命令或系统调用进入任何一层目录

  1. shell常用基本命令的使用,以及常见的基本参数
  1. ls:用于查看某个目录下的目录与文件

最常用的三个参数 -a(显示所有文件包括隐藏文件) -l(显示更详细的文件信息) -F()

  1. cd:用于切换用户当前工作目录
  2. pwd:用于显示用户当前目录
  3. mkdir & rmdir:建立和删除目录
  4. cp:复制命令
  5. mv:移动命令
  6. rm:删除命令
  7. du df:du命令可以显示目前的目录所占用的磁盘空间,df命令可以显示目前磁盘剩余空间

du -hs 指定目录 查看指定目录的总大小 du -hs ./* 查看当前目录下的所有文件夹和文件的大小

这两个命令都支持-k,-m和-h参数,-k和-m类似,都表示显示单位,一个是k字节一个是兆字节,-h则表示human-readable,即友好可读的显示方式。

  1. cat:cat命令的功能是显示或连结一般的ascii文本文件
  2. echo:将输入的字符串送往标准输出,输出的字符串间以空白字符隔开并在最后加上换行符

语法:echo [-ne][字符串]

参数:-n 显示字串时在最后自动换行-e 支持以下格式的转义字符, -E 不支持以下格式的转义字符

  1. more,less,clear:more指令可以使超过一页的文件内容分页暂停显示,用户按键后才继续显示下一页。而less除了有more的功能以外,还可以用方向键往上或往下的滚动文件,更方便浏览阅读clear命令是用来清除当前屏幕显示的,不需任何参数

less的常用动作命令:

回车键 向下移动一行;

y 向上移动一行;

空格键 向下滚动一屏;

b 向上滚动一屏;

d 向下滚动半屏;

h less的帮助;

u 向上洋动半屏;

w 可以指定显示哪行开始显示,是从指定数字的下一行显示;比如指定的是6,那就从第7行显示;

g 跳到第一行;

G 跳到最后一行;

p n% 跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示;

/word 搜索word ,/word表示在文件中搜索word单词;

v 调用vi编辑器;

q 退出less

  1. head & tail:

head显示文件的头n行,tail显示文件的尾n行,缺省情况n都为10行。可以通过-n方式指定行数

n tail -f命令 可以实时查看文件新增内容

  1. wc命令:

wc用于统计指定文件中的字节数、字数、行数

-l 统计行数 -w 统计字数 -c 统计字节数

缺省参数为-lcwwc file1 file2命令的执行结果一样

  1. find命令:用于查找目录和目录下的文件:

find命令用法:

./abc 会列出当前目录(abc)及子目录下的所有文件(前提是有该目录,只写’.’就不需要了)

find .  find . -print 一样 多个目录查找用空格隔开即可

-type 根据类型查找(+f查找文件 +d 查找目录) -name 用于查找指定名称的目录或文件

-not 反向查找 -i 忽略大小写 -maxdepth n 限制查找深度(n为数字,深度层数)

! 多条件查找时使用表示非(不包含) -o 多条件查找时使用表示或(前后都查找)

示例:

$ find ./test -type f

查找文件

$ find ./test -type d

查找目录

$ find ./test -not -name “abc”

查找除 ./test 下名为abc以外的其他目录和文件

$ find ./test -maxdepth 2 -iname “abc”

忽略大小写查找 ./test 下两个目录深度的名为abc的文件 输出如:./test/test1/abc

  1. grep命令:

grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作

-n 可以显示行号

示例:

$ ls -l | grep '^a'

通过管道过滤ls -l输出的内容,只显示以a开头的行。

$ grep 'test' d*

显示所有以d开头的文件中包含test的行。

$ grep 'test' aa bb cc

显示在aa,bb,cc文件中匹配test的行。

$ grep '[a-z]/{5/}' aa

显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

$ grep 'w/(es/)t.*/1' aa

如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(/1),找到就显示该行。如果用egrep或grep -E,就不用"/"号进行转义,直接写成'w(es)t.*/1'就可以了。

  1. man & logout命令:

man命令  man是manual的缩写,相当于Unix/Linux的联机Help,每个系统命令和调用都有非常详细的说明,绝大多数都是英文。如:man ls即是查看ls命令的使用说明,一般还有另一种方法用来查看帮助,如:ls –help,这种方式绝大多数命令都支持。

logout命令  该命令用于退出系统,与login命令对应。

  1. 管道| & xargs:

管道:利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。注意:管道左边命令的输入作为管道右边命令的输入(命令的输入是一定的),不是参数,并不是所有命令都支持管道

例子:ls | grep a 查看当前目录下名称包含a的文件或文件夹

xargs:大多数 Linux 命令都会产生输出:文件列表、字符串列表等。但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?例如,file 命令显示文件类型(可执行文件、ascii 文本等);你能处理输出,使其仅显示文件名,目前你希望将这些名称传递给 ls -l命令以查看时间戳记。xargs 命令就是用来完成此项工作的。注意:find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去

例子:1、在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中:$ find / -name "core" -print | xargs echo "" >/tmp/core.log

2、当一个目录下文件太多时,直接用rm * 命令会包参数过长,用如下方法可以全部删除

$ls | xargs rm

  1. basename & dirname:basename

用于查看文件不含路径的名字,dirname则用于查看文件路径

  1. 不带任何参数的shell将显示shell的全部变量

以课件讲解为主,不一一列举了

6)管道、别名、重定向的使用

1、管道

管道符 |   :  可以将多条命令连接在一起使用,把一个命令的标准输出作为另一个命令的标准输入

示例:ifconfig  eth0  |   grep  “inet  addr”   过滤含IP地址的行ss

echo   “pass”  |   passwd  --stdin   root   设置root密码为pass

  1. 别名

alias: 查看系统中所有的命令别名

设定别名: alias 别名='原命令'

删除别名: unalias 别名

使别名永久生效:  vi  ~/.bashrc  写入这个文件中即可永久生效 

编辑完之后记得使环境变量生效: source .bashrc

 

  1. 重定向

重定向(<、>、<<、>>):

>  将正确输出覆盖至文件     >>  将正确输出追加至文件 2>或2>>  将错误输出副高或追加至文件

&>  将正确输出和错误输出导入到文件里 2>&1  将正确输入和错误输出导入到文件

3vi的使用

1vi的三种工作模式以及之间的切换

vi有三种基本的工作模式:指令行模式、文本输入模式、行末模式

指令模式(Command Mode) 下输入 a、i、o 进入文本输入模式(Input Mode)
文本输入模式(Input Mode) 下按 ESC 进入指令模式(Command Mode)
指令模式(Command Mode)下输入 : 进入末行模式(Last line Mode)
末行模式(Last line Mode)下指令错误则返回指令模式(Command Mode)

  1. 常用的保存、删除、复制等常见指令

保存:wq! 保存并退出 q! 退出不保存

单行删除:n(待删除行)d

多行删除:1,10(删除1到10行)d

单行复制:1 co 12 复制第6行到第9行之间的内容到第12行后面

多行复制:6,9 co 12复制第6行到第9行之间的内容到第12行后面

单行剪切:1 co 12 剪切第6行到第9行之间的内容到第12行后面

多行剪切:6,9 co 12剪切第6行到第9行之间的内容到第12行后面

  1. vi常见的查找、替换等

查找: :/abc 向下查找abc :?abc向上查找abc

替换: :s/abc/cba 替换当前行第一个abc为cba :s/abc/cba/g 替换当前行所有abc为cba

n,$s/abc/cba 替换第n行第一个abc为cba n,$s/abc/cba/g 替换第n行所有abc为cba

%s/abc/cba 替换所有行第一个abc为cba %s/abc/cba/g 替换所有行所有abc为cba

4、用户和组的管理

1/etc/passwd /etc/shadow  /etc/group  /etc/gshadow四个文件,理解用户、组的概念,各个字段的含义等。

# cat /etc/passwd

root:x:0:0:root:/root:/bin/bash  

  1    2 3  4   5       6         7  

  |    | |  |   |       |         |  

  |    | |  |   |       |         |--用户默认使用的SHELL  

 |    | |  |   |       |--用户家目录  

 |    | |  |   |--用户finger信息(注释信息)  

 |    | |  |--用户组ID(GID)  

 |    | |--用户ID(UID)  

 |    |--密码占位符(密码保存在/etc/shadow文件内)  

 |--用户名  

# cat /etc/shadow

root:一大串乱码:17599:0:99999:7:空白:空白:空白  

 1              2              3    4     5      7      8     9  

 |              |              |    |     |    |   |      |     |--保留字段,目前为空  

 |              |              |    |     |      |      |--用户过期日期(单位/天)此字段指定了用户作废的天数 

(从1970年的1月1日至今天数) 

 |              |              |    |     |    |   |--在口令过期之后多少天禁用此用户  

 |              |              |    |     |    |--提前多少天警告用户口令将过期  

 |              |              |    |     |--两次修改口令间隔最多的天数  

 |              |              |    |--两次修改口令间隔最少的天数  

 |              |             |--上次修改密码的时间(单位/天),自1970年01月01日至今天数  

 |             |--用户密码(对应/etc/passwd文件内的密码占位符)如果密码添加“!!”表示禁用该用户 

 |--用户名(对应/etc/passwd文件内的用户名)  

 注:其中字段4、5、6、7、8的值为空时,账号可永久使用  

# cat /etc/group  

root:x:0:root  

 |     | |   |--额外组(可以多个用“,”隔开)  

 |     | |--组ID(GID)  

 |     |--组密码占位符  

 |--组名  

# cat /etc/gshadow  

root:空白:空白:root  

 |      |      |      |--以逗号分隔的小组成员  

 |      |      |--以逗号分隔的组管理员  

 |      |--加密的密码  

 |--组名  

  1. 如何创建删除用户、设置密码等,掌握常见参数的使用

创建用户:

adduser:会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码

# adduser usr1

useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本

常用命令行选项:

-d:指定用户的主目录,-m和-d一块使用。

-m:如果存在不再创建,但是此目录并不属于新创建用户;如果主目录不存在,则强制创建;

-s:指定用户登录时的shell版本

-M:不创建主目录

示例:#  useradd  -d  "/home/tt"   -m   -s "/bin/bash"   tt

解释:-d   “/home/tt" :就是指定/home/tt为主目录

 -m   就是如果/home/tt不存在就强制创建

 -s    就是指定shell版本

删除用户:

userdel: 

userdel   用户名 只删除用户

userdel   -r   用户名 连同用户主目录一同删除

设置密码:

passwd usr1 useradd用户usr1后可以设置密码

 echo password | passwd --stdin usr1

  1. 文件目录的权限和归属   数子法、字符法等

chmod: 用于改变文件或目录的访问权限

数字法:# chmod nnn n为1、2、4、6、7中的一个(读权限4,写权限2,执行权限4)

  -R 表示以递归方式将整个目录与其中的文件和子目录设置成相同权限

字符法:权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是

+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限

r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行

示例:chmod ug+w,o-w file1.txt file2.txt

将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的
人则不可写入

  1. 修改文件的权限、归属

Chgrp: 改变文件或目录所属的组

# chgrp - R group /root/abc /abc

改变/root/abc  /abc及其子目录下的所有文件的属组为book

Chown: 更改某个文件或目录的属主和属组

# chown usr1 usr2 把usr2的所有者改为usr1

chown -R usr1.group /dir 把dir目录下的所有文件和目录属主改为usr1,属组改为group

5)特殊权限不考

5shell编程

1shell脚本的执行和基本组成

vi shell.sh 编辑shell.sh

#!/bin/bash   <--必不可少

echo "hello world"  

:wq!

chmod +x shell.sh 赋予执行权限

sh shell.sh  ./shell.sh 运行shell脚本

  1. shell脚本中特殊符号的含义

1、{} 大括号:

通配符扩展:ls my_{finger,toe}s 意思与ls my_fingers my_toes

语句块的构造if等使用多条语句时使用

参数扩展${name:=default} 使用指定值来代替空的或者没有赋值的变量name

2、[] 中括号: 

通配符扩展:ls /[eh][to][cm]* 相当于执行ls /etc/home(若有/eom目录,就相当于会执行ls /etc /home/eom)

用于条件判断符号:if [ "$?" != 0 ] 等价于 if test “$?” != 0

3、`command` 反引号:`command`与$(command)的含义相同

4'string' 单引号 和 “string” 双引号 单、双引号的区别在于双引号转义特殊字符而单引号不转义特殊字符

5、$+

$n n为数字两位数以上用大括号{10}

$# 它的作用是告诉你引用变量的总数量是多少 
$* 以一个单字符串显示所有的脚本传递的参数。等价于$1 $2 $3…….
$@ 与$*基本类似(参见序号7),但在数组赋值时有些不同

$$ 它的作用是告诉你shell脚本的进程号
$? 前一个命令的退出码
$- 显示shell使用的当前选项
$! 最后一个后台运行的进程ID号

  1. $((…))语法:对括号内的表达式求值 
  2. shell中几种特殊的参数变量的引用 $1、$2、$3……${10}、${11}、${12}……:表示脚本传入的的各个参数,注意当需表示两位数以后的参数时数字要用花括号括起。
    $@ 列出所有的参数,各参数用空格隔开
    $* 列出所有的参数,各参数用环境变量IFS的第一个字符隔开
  3. 命令列表: 
    AND列表 statement1 && statement2 && statement3 && …:只有在前面所有的命令都执行成功的情况下才执行后一条命令
    OR列表 statement1 || statement2 || statement3 || …:允许执行一系列命令直到有一条命令成功为止,其后所有命令将不再被执行
  4. : 冒号

写代码注释(单行注释)

格式:: your comment here

格式:# your comment here

写多行注释

格式:: 'comment line1

comment line2

more comments'

清空文件file的内容

格式:: >file

格式:>file

#: ${VAR:=DEFAULT}

当变量VAR没有声明或者为NULL时,将VAR设置为默认值DEFAULT。如果不在前面加上:命令,那么就会把${VAR:=DEFAULT}本身当做一个命令来执行,报错是肯定的

while: (该语句结构可实现一个无限循环)

10、; 分号: 在 shell 中,担任”连续指令”功能的符号就是”分号”

cd ~/dir; mkdir abc; 在root下的dir目录下创建abc目录

11、# 井号: 表示符号后面的是注解文字,不会被执行;
#* 匹配文件名中的任何字符,包括字符串;
#匹配文件名中的任何单个字符。
#~ 代表使用者的 home 目录

12、\ 倒斜线:放在指令前,有取消 aliases(别名) 的作用;放在特殊符号前,则该特殊符号的作用消失;放在指令的最末端,表示指令连接下一行(使得回车符无效,只起换行作用)

13、! 感叹号:通常它代表反逻辑的作用,譬如条件侦测中,用 != 来代表”不等于”

14、** 次方运算:两个星号在运算时代表 “次方” 的意思

  1. shell脚本中的位置参数

参见上一题序号5

4)能够理解简单脚本的含义,分析shell脚本程序

自己看吧

5)能够编写简单的shell脚本

自己写吧

6、文件系统与磁盘管理

1)磁盘以及各个分区的表示含义

主磁盘分区一个硬盘允许4个主分区

扩展磁盘分区:一个硬盘允许3个主分区,一个扩展分区

逻辑分区:在扩展分区上创建,逻辑分区的编号始终从5开始,1~4已经预留给主分区和扩展分区使用硬盘的容量=主分区的容量+扩展分区的容量
扩展分区的容量=各个逻辑分区的容量之和
Linux对分区的编号:
/dev/sda1 第一个主分区
/dev/sda2 第二个主分区
/dev/sda3 第三个主分区
/dev/sda4 扩展分区
/dev/sda5 第一个逻辑分区
/dev/sda6 第二个逻辑分区

 

  1. 常见文件系统

Linux中默认使用的文件系统类型

EXT4,第4代扩展(Extended)文件系统

SWAP,交换文件系统

Linux支持的其它文件系统类型

FAT16、FAT32、NTFS

XFS(高性能的日志文件系统,RHEL7默认使用的文件系统类型)、JFS(集群文件系统)

VFAT(虚拟文件分配表)

  1. 理解文件分区、格式化、磁盘挂载

文件分区:

fdisk /dev/sdb

命令(输入 m 获取帮助):n 增加一个新的分区

Partition type: 
p primary (0 primary, 0 extended, 4 free) 
e extended 
Select (default p): e  输入e表示创建扩展分区
起始 扇区 (2048-83886079,默认为 2048):<Enter> 
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):<Enter>

命令(输入 m 获取帮助):w 保存并退出

格式化:

mkfs -t ext4 /dev/sdb

磁盘挂载:

mount /dev/sdb /mnt 挂载一次

vi  /etc/fstab 编辑/etc/fstab文件

/dev/sdb /mnt ext3 defaults 1 1 添加一行代码退出

  1. 理解一次性挂载和永久性挂载

理解吧,上个题都写了,理解吧

  1. 了解逻辑卷,知道逻辑卷的创建和删除顺序

卷组创建:

    格式:vgcreate    –s 块大小 卷组名 物理卷设备名

-s 指定扩展块的大小,默认是4MB

示例:创建一个8M的逻辑卷组

vgcreate -s 8M vg0 /dev/sdb5

逻辑卷创建:

格式:lvcreate  -n 【逻辑卷名】  –L  【逻辑卷大小】 【已存在卷组名】

–n 指定逻辑卷卷名,从卷组中划分一块空间作为逻辑卷

-L 指定逻辑卷的大小(如果指定逻辑卷的时候使用参数l,表示设置的逻辑卷的大小是以PE的块数为单位的)

示例:建立一个200MB的名字叫做lv0的逻辑空间

Lvcreate -L 200MB -n lv0 vg0

  1. 软件管理和进程管理

软件管理:

yum 软件仓库配置文件

[rhel-source]

//软件源的名称,会被yum识别

name=Red Hat Enterprise Linux

//定义了软件仓库的名称

baseurl=ftp://ftp.redhat.com/pub/…. 没有网可以修改成本地源

//指定RPM软件包来源,支持的协议有http://(HTTP网站)、ftp://(FTP网站)、file://(本地源)

enable=1

gpcheck=0

将yum源配置为本地光盘

mkdir  /root/rhel7 创建光盘挂载点

vi /etc/yum.repos.d/dvd.repo 创建软件仓库配置文件

文件名dvd.repo任意,只要以repo为后缀即可

[dvd](与文件名一致)

name=dvd(任意)

baseurl=file:///root/rhel7

gpgcheck=0

yum clean all  清空缓存

yum list    列出软件包

yum install 软件包名

基本 yum 命令

1.yum help 显示使用信息

2.yum list   列出软件包

3.yum search keyword   搜索关键字

4.yum info packagename  列出软件包详细信息

5.yum install packagename  安装软件包

6.yum remove packagename 删除软件包

7.yum update packagename   升级软件包

进程管理:

 在 Linux 内核内,进程是由相当大的一个称为 task_struct 的结构表示的。此结构包含所有表示此进程所必需的数据,此外,还包含了大量的其他数据用来统计(accounting)和维护与其他进程的关系(如父和子)

1)理解红帽使用的软件包为rpm

需要你自己理解

2yum  install   软件包   yum  remove  软件包

照着题目打就行,分别是安装和删除软件

3rpm  -ivh  *.rpm

4)理解Linux的进程的概念,理解跟程序的区别

程序:保存在硬盘、光盘等介质中的可执行代码和数据,是静态保存的代码

进程:在CPU及内存中运行的程序代码,是动态执行的代码,父、子进程:每个进程可以创建一个或多个进程

  1. 理解Linux进程的状态

ps -l 查看当前环境下与bash相关的的进程信息

 

S 进程状态,R表示进行状态;S表示休眠状态;T表示暂停或终止状态机;Z表示僵死状态。

UID:进程启动者的用户ID

C:进程最近使用CPU的估算

PRI:进程的优先级

TIME:进程启动以后占用CPU的总时间

CMD:启动该进程的命令名称

TTY:进程所在终端的终端号

  1. 前台进程、后台进程的启动、切换

&

例:ls  -a  >text &

 shell 检测到命令后面有一个&,就生成一个子shell在后台运行这个程序,并立即显示提示符等待用户输入下一个命令

Ctrl+Z 组合键

将当前进程挂起,即调入后台并停止执行

jobs命令

查看处于后台的任务列表

bg命令

将前台作业切换到后台运行,若没有指定作业号,则将当前作业切换到后台

fg命令

将处于后台的进程恢复到前台运行,需指定任务序号

Ctrl+C组合键

中断正在执行的命令

  1. 进程的常见命令ps  top  kill 等的使用

ps aux 查看进程

a:显示当前终端下的所有进程信息

  u:使用以用户为主的格式输出进程信息

  x:显示当前用户在所有终端下的进程信息

kill、killall命令:

kill用于终止指定PID号的进程

killall用于终止指定名称的所有进程

-9 选项用于强制终止

pkill命令:

# w | grep -v "root"

14:10:10 up  6:08,  4 users,  load average: 0.00, 0.01, 0.00

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

teacher  tty1     -                14:04    5:34   0.16s  0.16s -bash

hackli   pts/1    173.17.17.174    14:05    4:32   0.17s  0.17s -bash <--需要删除的用户

# pkill -9 -t pts/1 根据用户的TTY干掉用户

top命令:查看动态的进程排名信息

  1. 了解简单的计划任务

at命令:

在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务

服务脚本名称:/etc/init.d/atd

设置格式:at  [HH:MM]  [yyyy-mm-dd]

# service atd start

启动 atd:                                               [确定]

at 23:45 设置任务时间

at> shutdown -h now 设置任务需求

at> <EOT> ctrl + D 提交任务

# atq 查看任务

1       2009-09-14 23:45 a root

管理cron计划任务

编辑计划任务:crontab  -e  [-u  用户名]

查看计划任务:crontab  -l  [-u  用户名]

删除计划任务:crontab  -r  [-u  用户名]

时间数值的特殊表示方法

* 表示该范围内的任意时间

,     表示间隔的多个不连续时间点

- 表示一个连续的时间范围

/ 指定间隔的时间频率

  1. 简单的网络接口的命令  nmcli  ip  addr   ifconfig  ping  等的基本使用

nmcli: nmcli强大之处在于

①使用一条命令实现ifconfig、route、ip 等其他的功能

②做的修改可以自动同步到配置文件之中长期有效,不需手工修改配置文件

nmcli device show 显示设备所有网络参数

nmcli device (status) 显示设备状态

nmcli device show 显示全部网络接口属性

nmcli device show en*** 显示en***网络接口属性

nmcli device connect(disconnect) en*** 激活(停用)网卡

nmcli –t –f IP4.ADDRESS dev show eno*** 只显示指定的参数信息

nmcli connection add 增加连接

nmcli connection delete 删除连接

nmcli connection down ens33 down掉ens33设备

nmcli connection up ens33 启用ens33设备

nmcli con reload 重新加载网卡

nmcli con add help 可以查看帮助

nmcli connection modify static ipv4.gateway xxx.xxx.xxx.xxx 修改网关地址

nmcli connection modify static ipv4.dns 8.8.8.8  修改DNS

nmcli conTAB show 连接名TAB |grep IP4

nmcli connection modify static +ipv4.dns 8.8.8.8 添加DNS

nmcli connection modify static -ipv4.dns 8.8.8.8 删除DNS

ifconfig:用于显示或配置网络设备(网络接口卡)的命令

参数说明:

-a 显示所有可用的接口信息,包括未连接的接口

-s 显示短列表

-v 在发生错误的情况下显示更多的错误信息

操作说明:

IP地址 设置IP网络地址信息

up 激活指定接口

down 关闭指定接口

[-]arp 开启/关闭ARP协议使能

netmask 地址 设置掩码

add 地址/掩码 添加IPv6网络地址信息

del 地址/掩码 删除IPv6网络地址信息

#ifconfig -a 查看所有的网络接口配置。

#ifconfig eth0 查看指定的网络接口的配置。

#ifconfig eth0 up 激活设备。

#ifconfig eth0 down 禁用设备。

#ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up  配置eth0的IP地址, 同时激活该设备。

配置eth0别名设备eth0:1的IP地址,并添加路由。

#ifconfig eth0:1   192.168.1.3

#route add –host 192.168.1.3 dev eth0:1

ip: 一个强大的工具,代替传统的ifconfig、route等来实现功能,它对应了三个对象(object),分别是addr、link、route

显示网络设备的运行状态 ip link

显示更详细的设备信息 ip -s link

查看网卡信息:(addr的用处)

ip addr (可简写为 ip a )

ip addr show eno0

给网卡手动添加一个地址:

ip addr add IP地址 设备名称

删除一个地址:

ip addr del IP地址 设备名称

ip link show dev eth0 仅显示eth0的信息

ip link show up 仅显示处于激活状态的设备

ip link set en*** down down掉eth0

ip link set dev eth1 address 00:00:00:AA:BB:CC      改变 MAC 地址

ip link set dev eth1 name myeth  接口名变更

ip link set en*** up 激活eth

ip route   查看网关路由

ip route add IP地址 via 网关地址 dev 设备名

ip route add default via GWIP  添加默认网关

ip route del IP地址   删除路由

ip route show|list   显示路由表

ip route flush       清空路由表

ip route flush dev ens33 清空路由

ping:通过发送ICMP的ECHO_REQUEST报文,探测网络连通状态。默认情况将无限次的重复发送

-b 目标地址允许是广播地址

-c N 设置发送的次数

-i 间隔 设置发送报文间的间隔,默认值为1秒

-n 仅适用数字输出

-q 不输出每次发送报文的结构,仅显示综合信息

-v 输出更多的信息

9Linux下的C编程

1gcc的使用,编译过程

自学c++,给你个helloworld

hello.c

#include <stdio.h>

int main(void)

{

  print (“hello world!\n”);

  return 0;

}

编译运行这段程序:

gcc hello.c –o hello

./hello

输出:hello world!

  1. 理解gcc的四个步骤

源程序--预处理-->编译-->汇编-->链接-->可执行文件

.c  |      .i  |  .s  |  .o  |

 |           |      |      |

预处理器  编译器 汇编器 链接器

cpp egcs   as      ld

注:箭头-->表示系统调用

  1. 分析四个步骤

Gcc的编译流程分为了四个步骤:

1.预处理,生成预编译文件(.文件):

Gcc –E hello.c –o hello.i
2.编译,生成汇编代码(.s文件):

        Gcc –S hello.i –o hello.s
    3.汇编,生成目标文件(.o文件):
         Gcc –c hello.s –o hello.o
     4.链接,生成可执行文件:
        Gcc hello.o –o hello

  1. 理解孤儿进程、僵尸进程等概念

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作

僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值