Linux考前知识点整理

第二章整理

终止程序命令

DELETE CTL-c可以立即终止程序

Who

-H 打印每列的内容名字

Example: List all users of using the system

​ who

echo

-n: 输出之后不换行

date

-s:通过字符串设定时间

-d:通过字符串显示时间

通过clock -w命令把系统时间同步到硬件时间,重启后修改不会失效

cal

  • cal 8 2008

    展示2008年8月的日历

  • cal -j 8 2008

    按照每年的第多少天展示2008月的日历(不是从1开始,而是从8.1是2008年的第214天开始)

cat

  • cat m1.c

    展示m1.c的文件内容

  • cat m1.c m2.c

    展示两个文件内容

  • cat m1.c m2.c>ma.c

    将m1.c m2.c的文件内容合并,然后输入到文件ma.c中

more

一页一页显示文件内容

  • more m1.c

    一页页显示m1.c的文件内容

  • head -5 aaa

    显示aaa文件的前五行

tail

  • tail +15 aaa

    显示文件aaa前15行

  • tail 15 aaa

    出错

  • tail -15 aaa

    显示文件aaa后15行内容

touch

  • touch aaa

    在当前目录下新建一个空文件aaa

利用学过的命令给出公元2000年的元旦是星期几?

$ cal 1 2000

grep

  • grep -F aaa /etc/password

    在口令文武兼/etc/password中查找包含aaa的所有行

  • grep -r ‘print’ mengqc

    在/mengqc目录和子目录下的所有文件查找字符串’print’出现的行

find

  • find -maxdepth 1 -name ‘main*’ -exec cat {} ;

    查找当前目录中所有以“main”开头的文件并显示这些文件的内容

  • find -maxdepth 1 -name ‘m?.c*’ -ok cat {} ;

    查找当前中所有以”m”开头的.c文件并交互式的显示这些文件的内容

  • find -name’*.txt” -ctime+10 -ls

    列出当前文件名以txt结尾、10天前被修改过的文件

cp

  • cp aaa /usr/linshi/exam1

    将文件aaa拷贝到目录/usr/linshi下,并且命名为eaxm1

  • cp -r /usr/linshi1 /usr/linshi2

    将目录/usr/linshi1中的所有文件和文件夹拷贝到/usr/linshi2的目录下

  • cp -i /usr/linshi1/m*.c /usr/linshi2 交互式将目录/usr/linshi1中所有以m开头的.c文件拷贝到目录/usr/linshi2中

  • Practice

  • copy the ordinary file aaa and directory files ccc from /home/liw to the directory / home / sunjob

    cp -r /home/liw/aaa /home/liw/ccc /home/sunjob

rm

  • rm -i test example

    交互式删除当前目录下的文件text和example

  • rm -r *

    删除当前目录下除了隐含文件外所有的文件和子目录

mv

  • mv ex3 new1

    将ex3改名为new1

  • mv /usr/lishi/*

    将目录/usr/lishi中所有文件移到当前目录中

Compare the command of cp and mv, given their similarities and differences ?

  • mv可以将文件重命名、移动到别的目录下
  • cp将文件从一个目录拷贝到另一个目录下

wc

  • -c 按照字节展示文件
  • -w 按照单词数展示文件
  • -l 展示文件行数
  • wc aaa bbb

????

输入重定向

  • cat aaa>temp

    展示aaa的文件内容,并将aaa文件内容写入到temp里面(覆盖)

  • cat aaa>>temp

    展示aaa的文件内容,并将aaa的内容追加到temp中(追加)

|管道命令

  • 将前一个命令的结果作为后面命令的输入

tee

  • 读入标准输入流,然后写入到指定文件中

  • cat bbb|head -5|tee myfile

    将bbb文件的前5行写入到myfile中

目录

  • /bin 二进制缩写
  • /boot 存放系统启动程序
  • /dev 所有linux系统中使用的外部设备
  • /etc 存放了系统管理要用到的各种配置文件
  • /home 如果建立了一个用户名adr的用户,在这个目录下就有一个/home/adr的路径,用来存放用户主目录
  • /lib library缩写 用来存放系统动态链接库的
  • /root 超级用户主目录

ln

  • ln /usr/liw/l1/bbb /usr/sunjob/b1

    将/usr/liw/l1下的bbb文件链接到/use/sunjob下的b1文件

  • ln -s /usr/liw/l1 /usr/sunjob/ccc

    将/usr/liw/l1所代表的路径保存到目录/usr/sunjob下的文件ccc中

  • Please create a hard link file and soft link file and compare the difference between them

    • 硬链接是按照索引节点来进行连接。多个文件名指向同一索引节点就是硬链接。作用是允许一个文件有多个有效路径名,这样用户就可以建立硬链接到重要文件,以防止“误删”的功能。
    • 软连接也叫作符号连接。类似Windows的快捷方式。实际上是一个特殊的文件,在符号连接中,文件实际上是一个文本文件,其包含的有另一文件的位置信息。

      mkdir

  • mkdir -m 700 /home/test

    在/home下建立子目录test,且本文件只有文件主可以读、写、执行(rwx),其他用户没有访问权限。

    注意-m是为新的目录设置权限

  • mkdir -p -m 750 bin/test

    在当前目录中建立bin和bin下面的子目录test,权限为文件主可以读、写、执行,群组可以读、执行。

    注意-p选项是创建多个目录

rmdir

  • cd /usr/liw

    rmdir -p l1/test

    递归删除子目录test和父目录l1

  • Gives the functions of following command

    $ rm –r /usr/liw/l1

    cd /usr/liw

    rmdir -r /l1

chmod

  • +:添加权限 -:取消权限 =:给予特定权限(覆盖之前的权限)

  • u:当前用户 g:群组用户 o:其他人 a:所有人

  • chmod a+x,ex1

    更改ex1的文件权限为所有人可以执行

  • chmod u=r,ug=x ex1

    将文件ex1权限改为文件主可以读,文件主和群组用户可以执行

  • chmod 664 ex1

    将文件ex1的权限改为文件主、群组用户可写、可读,其他人可读

  • after executing the command of “ chmod 540 test ”, please give the permission of the file

    将test文件改为文件主可读、可执行,群组用户可读,其他人没有访问权限。

umask

  • umask u=,g=w,o=rwx

    对于以后创建的文件,文件主的权限不改变,组用户的写权限,其他用户的读写执行权限都被取消

  • 对于新创建的文件,系统不会给予执行权限,所以文件的最高权限是666,而文件夹的最高权限是777

gzip

  • cd /home/sunjob

    gzip * (将/home/sunjob目录下的所有文件都压缩成.gz文件)

    ls

    gzip -l * (列出上面每个文件的详细信息)

    gzip -dv *(把所有压缩文件进行解压缩并且列出详细信息)

  • -l 展示压缩文件详细信息

  • -d 解压文件

  • -v 显示指令执行过程

ctrl+z

将后台进程挂起

Classwork

  • After executing the command of “ chmod 754 test ”, please give the permission of the file

    将test文件的权限改为文件主可以读、写、执行,群组可以读、执行,其他人可以读

  • Given the types of following file :

    • drwxr-xr-x

      是一个目录文件,文件主可以读、写、执行,群组可以读、执行,其他人可以读、执行

    • /etc/passwd

      密码文件存放在这个文件夹中

    • /dev/fd0

      存放外部设备的文件,这里存放的应该是软驱动程序

    • –rwx–x–x

      普通文件,文件主可以读、写、执行,群组可以读、执行,其他人可以读、执行

  • 解释下列shell命令的功能

    • date

      展示当天的日期

    • cal

      显示日历(cal -j 按照当年的第多少天展现日历)

    • pwd

      显示当前目录

    • rm

      删除文件

      -i:交互式删除(询问)

      -r:递归式删除(删除子目录文件)

      -f:不询问

    • wc

      默认展示行数、字数、字节数

    • more

      分页显示文件内容

    • uniq??

      展示所有不重复的行

      -d 只展示重复的行

      -u 只展示不重复的行

    • chgrp

      改变文件所属群组

      chgrp bin 123.c

      将123.c的所属群组改为bin

    • chown

      改变文件所有者

      chown root /var/run/http.pid

      将/var/run/http.pid的所有者设置为root

    • kill

      杀死进程

第三章vim编辑器

普通命令

  • 0:移动到所在行的最前面

  • $:移动到所在行的最后

  • nG移动到第n行

  • n|移动到第n列

  • w,W:移动到下一个词的开头

  • b,B:移动到上一个词的开头

Text Delete Command

  • d0

    删除从光标开始到行首的所有字符

  • d3l

    从光标开始向右删除3个字符(因为l是向右)

  • d$

    从光标删除至行尾,与D相同

  • d5G

    从光标所在行删除至第五行

  • dw

    删除从光标所在位置到该词末尾(包括词尾空白符)

  • d3B

    从光标位置向前删除3个词(包括光标所在词)

  • dM

    删除从光标所在行至屏幕中间行的所有行

替换

  • cW

    将光标当前指向的单词进行替换

    dw+i

  • c$

    将光标到行末尾的删除然后进行替换

    (dd+i)

  • c6G

    删除光标所在行到第 6行,然后输入

    d6G+i

  • C

    删除当前行,然后输入(替换)

    dd+o(O是在光标行下插入 因为dd删除之后这一行就没了)

  • 原字符串为1234567890

  • 3rA

    结果是:

    AAA4567890

  • RABC:

    结果应该是:

    ABC4567890

    如果要做到PPT上的效果(ABC234567890),可以用sABC

屏幕显示(z)

  • 10z+Enter

    将第十行作为显示的行首(+是在首行显示)

  • 10z.

    将第十行作为屏幕的中间行,显示一行(.是在屏幕中间显示)

  • 10z-

    将第十行作为屏幕的底行,显示1行(-是在底显示)

  • 10z5-

    将第十行作为屏幕的底行,显示5行

查找

  • /8+Enter

    向下查找8所在的行,并且让光标停留在该行行首

  • /8/-2+Enter

    向下查找8所在的行,并且让光标停留在该行上面两行的行首

  • ?8?+2+Enter

    向上查找8所在的行,并且让光标停留在该行下面两行的行首

查找和替换

  • g/this/p+Enter

    在屏幕上显示所有包含this的字符串

  • g/IF/s//if/

    将所有的IF都替换成if(一行中包括多个IF时只替换该行的第一个)

  • g/IF/s//if/g

    将所有的IF都替换成if(如果一行中有多个,也替换)

  • g/print/s/n1/value/g

    对所有包含print的行,如果里面有n1就进行替换成value

  • g!/print/s/n1/value/g

    对所有不包含print的行,如果其中有n1就替换成value

    复制和粘贴命令

  • yw

    复制光标位置到单字结束的字符

  • nyw

    复制光标位置到单词结束以及向后n-1个单字

  • nyy

    复制第二行内容到文档第一行

:2+Enter

yy

:$+Enter

p+Enter

现在正编辑文件ex1.c文件,需要将另一个文件mm1.c中的若干行插入到ex1.c指定位置中。

:w (保存但是不退出)

:e mm1.c

“a y 4+ 将光标所在行及其后面3行全部放到缓冲区a中

:e# 回到原来的文件中

“a p把缓冲区a的内容插入到当前行后,光标 停留在刚插入文本的第一行的行首

作业

  • 20G

    光标移动到第20行的行首

  • 18|

    将光标移到当前行的第18列上

  • dM

    删除光标所在行到屏幕中间行

  • x

    删除光标所在的字符

  • cw

    删除光标所在的单词,然后输入

  • 10cc

    删除光标所在行以及下面9行,然后输入新文本

  • 3rk

    将光标所在的字符和向后两个字符替换成k

  • 5s

    将光标所在的字符和光标后面4个字符被新的输入代替

  • 7S

    将光标所在行和下面6行删除,被新的输入代替

  • >8M

    将当前行和屏幕中间行之间的各行向右移动8个字符

  • /this

    从光标所在行向下查找this,并停留在其所在行的行首

  • ?abc?-5

    从光标所在行向前查找abc,并停留在abc所在行的向上5行

  • mg

    在光标所在位置上做标记

  • g/int/p

    在屏幕上显示当前所编辑的文件中所有包含字符串”int”的行

  • “a p

    将缓冲区a中的内容插入到当前行之后,把光标停留在插入的文本的第一行行首

  • 6H

    将光标移到距离屏幕顶部5行的行首

  • d4B

    从光标位置开始反向删除4个词(包括光标所在词)

利用linux下的VI文本编辑器对文件ex1.c和ex2.c进行如下操作:将文件ex2.c中前10行内容插入到文件ex1.c的第15行和第16行之间,给出实现该功能的V命令组。

vi ex1.c

:w

:e ex2.c

:1

10yy

:w

:e ex1.c

:15

p

:wq

作业2

(1)进入用户主目录,建立一个新文件。

(2)录入VI means visual interface

(3)使用h,j,k,l移动光标到单词interface的子母”i”。

(4)删除光标右侧单词interface。

(5)输入文本”Interface”

(6)将文档内容重复10遍,分10行显示。

(7)保存后退出。

cd ~

touch temp

vi temp

VI means visual interface

dw

Interface

yy

10p

:wq

第七章

/etc/password文件格式

username:password(用x代替):UID:GID:identity:decription:home directory:logins shell

/etc/shadow文件格式

因为所有用户都有权限查看passwd文件,所以将真正的密码加密放在shadow文件中

登陆用户名:加密的登陆密码:上次修改密码距1970.1.1的天数:

“登录名”是与/etc/passwd文件中的登录名相一致的用户账号

“口令”字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登录。`

”最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是197011日。`

“最小时间间隔”指的是两次修改口令之间所需的最小天数。`

”最大时间间隔”指的是口令保持有效的最大天数。`

“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。`

”不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。`

“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。`

保留条目,目前没用

添加用户

useradd adr 建立用户账号

tail -l /etc/passwd 查看password中添加的用户账号信息

tail -l etc/shadow

ls /home 查看所建立账号的主目录

修改用户属性

usermod -l adr2 adr 把用户adr改名为adr2(注意是后面的替换前面的)

usermod -L adr2 锁定adr2用户,不让登陆

usermod -U adr2 解锁adr2用户,可以登陆

删除用户

grep adr /etc/passwd 查询用户adr是否存在

userdel adr 删除用户adr

grep adr /etc/passwd 再次查询用户账号adr是否存在

ls -d /home 查询用户adr的主目录是否还存在

userdel -r adr 删除用户的同时删除其工作主目录(-r)

添加和删除群组

groupadd lbgroup 建立组账号 lbgroup

grep lbgroup /etc/group 查询group文件中lbgroup是否建立

groupadd -r syslbgroup 建立系统组账号(-r)

grep syslbgroup /etc/group 查询group文件中sysgroup是否建立

更改群组id

grep lbgroup /etc/group 查询group文件中的lbgroup组属性

groupmod -g 503 lbgroup 改变lbgroup组的gid为503

grep lbgroup /etc/group 查询操作结果

groupmod -n ydgroup lbgroup 改变lbgroup组名为ydgroup

grep 503 /etc/group 查询操作结果是否正确

第八章

iptables -L 列出iptables规则

iptables -F 清除iptables内置规则

iptables -X清除iptables自定义规则

练习

  • iptables -D INPUT 3

    删除filter表INPUT链中的第三条规则(不管他的内容是什么)

  • iptables -D INPUT -s 192.168.0.1 -j DROP

    删除filter表INPUT链中“-s 192.168.0.1 -j DROP”规则

  • iptables -R INPUT 3 -j ACCEPT

    将原来编号为3的规则内容替换为”-j ACCEPT”

  • iptables -P INPUT DROP

    设置filt表(-P默认是filter表吗?)INPUT链的默认规则是DROP,即数据包没有被规则表里的规则匹配的时候,按照这个默认规则进行处理

  • iptables -t nat -F PREROUTING

    清空nat表PREROUTING链中的所有规则

  • iptables -t nat -vnL

    用详细方式列出nat表所有链的所有规则,只显示IP地址和端口号
    (-t默认是修改filter表)

  • -i eth0

    匹配是否从网络接口eth0进来

  • -o eth1

    从eth1上发送的流量

  • -s’!’ 192.168.1.0/24

    除了192.168.1.0/24 之外的所有网段

  • –sport 1000

    匹配源端口是1000的数据包

  • –dport 80

    匹配目的端口是80的数据包

classwork1

#!/bin/bash case “$1” in

start)

echo -n “Starting to write your Iptables:…”

/sbin/iptables –F

  • 清楚内置规则

/sbin/iptables –X

  • 删除用户自定义规则

/sbin/iptables –Z

  • 清零计数器

/sbin/iptables -A INPUT -i lo -j ACCEPT

  • 在INPUT链末尾增加一条规则“-i lo -j ACCEPT”
  • -i 匹配输入名为lo的端口,设置为接受

/sbin/iptables -A INPUT -p input -p tcp –dport 22 -j ACCEPT

  • 在INPUT链添加一条规则,默认添加到最后
  • 规则是接受所有tcp协议的目的端口是22的数据包

/sbin/iptables -A INPUT -p input -p tcp –dport 80 -j ACCEPT

  • 在INPUT链添加一条规则,默认添加到最后
  • 规则是接受所有tcp协议的目的端口是80的数据包

/sbin/iptables -A INPUT -p input -p tcp –dport 21 -j ACCEPT

  • 在INPUT链添加一条规则,默认添加到最后
  • 规则是接受所有tcp协议的目的端口是21的数据包

/sbin/iptables -P INPUT DROP

  • 在INPUT链上添加默认规则,丢弃所有数据包

echo “OK”

;;

stop)

echo -n “Stop iptables….”

/sbin/iptables -P INPUT ACCEPT

  • 设置默认规则是接受数据包

/sbin/iptables –F

  • 删除内置规则

/sbin/iptables –X

  • 删除用户自定义规则

/sbin/iptables –Z

  • 清零计数器

echo “OK”

;;

*)

echo “Usage: $0 {start|stop}”

  • 输出脚本名

;;

esac

classwork2 -i interrface name ([+] for wildcard)

(1)The firewall prohibits customers with IP address 192.168.1.150 from accessing the Internet.

  • iptables -A OUTPUT -s 192.168.1.150 -j DROP

(2) The firewall prohibits all clients of subnet 192.168.2.0 from accessing the web service of this machine.

  • iptables -A INPUT -s 192.168.2.0/24 -p tcp –dport 80 -j DROP

(3)The firewall prohibits clients with IP address 192.168.3.8 from accessing the FTP service of this machine.

  • iptables -A INPUT -s 192.168.3.8 -p tcp –dport 21 -j DROP

第四章

ps

  • ps -uax
  • 显示用户名和其他信息,列出所有进程(包括在其他终端上进行的进程)

nice

  • nice -5 locate lib>file.list
  • 这里的-5不是负号,是选项。nice选项的数越小,优先级越高
  • nice –10 locate lib>fie.lsit
  • 这里是负10
  • ps -l Enter
  • 查看进程的优先权

renice

  • 改变进程的优先级
  • [-p] 特定的PID
  • -u user 特定的用户
  • -g p grp 特定的群组

kill

  • kill PID
  • kill 1022 Enter
  • 终止进程1022
  • kill -9 1022 Enter
  • 有些进程无法用kill强行终止,因为kill默认送出信号15,但是有些进程会忽略这个信号,所以用信号9,因为信号9最强有力,无法被阻止

top

  • top -d 秒数
  • 动态显示进程(每过几秒)
  • top -q 随时更新进程

第一章

  • How many disk partition formats are there in the linux system? Please compare them.
    linux分区方式:ext3,swap
  • swap交换分区 来实现内存的交换 分区大小最好是内存的两倍
  • ext3 linux分区的格式,日志文件系统,安全可靠(从ext2上发展而来)
  • ext2 非日志文件系统

U盘挂载

  • 终端挂载命令
  • mount /mnt/ADRIN
  • 终端卸载命令
  • umount /mnt/ADRIN

第六章

gcc编译程序分为4个阶段 预处理 编译 汇编 连接
编译命令:gcc

  • gcc f1.c f2.c
    生成可执行文件a.out
    gcc f1.c -o mygame
    通过参数指定生成的可执行文件名称为mygame
    通过./mygame运行可执行文件

喜欢的话,给博主赏一杯冰阔乐吧


  转载请注明: Maserhe Linux考前知识点整理

 上一篇
leetcode 868. 二进制间距 leetcode 868. 二进制间距
题目运行效率 题解lowbit(x) 是x二进制表达式中最低位1所代表的数值。即x & -x就是lowbit函数。例如当x=22时二进制表示10110则 22&-22既可以得到二进制数值10。为啥呢?因为我们计算机中负数采用
2020-11-12
下一篇 
leetcode 99. 恢复二叉搜索树 leetcode 99. 恢复二叉搜索树
leetcode 99. 恢复二叉搜索树原题传送门 思路 既然是二叉搜索树,那肯定中序遍历了。当然还有Morris遍历算法(我还没学~)中序遍历的话,对于二叉搜素树来说就是从小到大进行排序。那么在遍历的过程中我们可以记录出现逆序的情况。
2020-10-30
  目录