linux 复习

Posted 你可以当我没名字

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 复习相关的知识,希望对你有一定的参考价值。

可能需要注意

硬链接软连接

基本

自由软件基金会

自由软件基金会(Free Software Foundation,FSF)是一个致力于推广自由软件、促进计算机用户自由的美国民间非盈利性组织。。其主要工作是执行GNU计划,开发更多的自由软件,完善自由软件理念。

Linux基金会

Linux基金会是一个非盈利性的联盟,其目的在于协调和推动Linux系统的发展,以及宣传、保护和规范Linux

开源

•自由软件赋予使用者以下的四种自由:

  • 使用的自由:可以不受任何限制地使用软件。

  • 研究的自由:可以研究软件运作方式、并使其适合个人 需要。

  • 散布的自由:可以自由地复制此软件并传播给他人。

  • 改良的自由:可以自行改良软件并传播改良后的版本。

优点

•Linux is Free

•可移植性

•多用户

•多任务

•多级文件系统

•与设备独立的输入输出操作

•强大的交互界面shell

•系统工具

•系统服务

登录,退出

ctrl+alt+F1到ctrl+alt+F7可以在6个字符虚拟终端和一个图形终端之间进行切换

logout
exit
ctrl+d
#退出用户

双系统

swap在内存小于2G的情况下,交换分区应为内存的2倍,超过2G的话,交换分区为物理内存加上2G

/根目录所有目录都会放到这个挂载点下面

/home主目录,自己创建的文件有时候会放在这里

/boot启动目录,启动文件在这个目录下

Linux根目录下有哪些文件?

/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。(不要动)
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/srv:该目录存放一些服务启动之后需要提取的数据。
/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
/tmp:这个目录是用来存放一些临时文件的。 用完即丢的文件可以放在这个目录下
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin: 系统用户使用的应用程序。
/usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。s代表super
/usr/src: 内核源代码默认的放置目录。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
/www:存放服务器网站相关的资源,环境,网站的项目

最多有多少个逻辑分区?

主分区是一定最多有四个,但是逻辑分区要看计算机硬盘接口,SCSI 最多 16 个,IDE 最多 63 个,但是好像又有其他说法,按老师说的从英文字母排序来看 26个字母-2(a/b)-1(c 一个主分区)=23个
在实际操作中我发现不止16也不止23个,说明我这边使用的是IDE类型的硬盘接口

文件系统

传统的磁盘与文件系统应用中,一个分区被格式化成一个文件系统,由于新技术的运用,像LVM,这些技术可以将一个分区格式化成多个分区,也可以将多个分区合成一个文件系统

文件除了文件内容外还有很多属性,例如权限(rwx),文件属性(拥有者,用户组,时间参数等),文件系统将这些系统,分到不同的区块里面,权限和属性放到inode里面,实际数据放到数据区块里面,此外,还有一个超级区块,记录整个文件系统的整体信息,包括inode和数据区块的总量,使用量,剩余量等

挂载

挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。

命令

ls

不多说了

颜色可以区分文件类型
蓝色显示表示是目录
黑色显示表示是普通文件或者硬链接文件
绿色显示表示是可执行文件
淡蓝色表示是软链接文件
红色闪烁(红色背景)表示出错的软链接文件
红色表示压缩文件

man帮助

man who
获得who命令的帮助信息
man 5 passwd
给出的是/etc/passwd配置文件的格式说明
man 1 passwd
给出的是passwd命令的使用说明

who

[root@Cai ~]# who
root     pts/0        2021-06-15 19:55 (59.38.32.9)
root     pts/2        2021-06-15 20:08 (59.38.32.9)

who -q (–count )

当时登录的有几个用户

[root@Cai ~]# who -q
root root
# users=2

who -H (–heading )

[root@Cai ~]# who -H
NAME     LINE         TIME             COMMENT
root     pts/0        2021-06-15 19:55 (59.38.32.9)
root     pts/2        2021-06-15 20:08 (59.38.32.9)

who -b

指出最近系统启动的时间和日期。

[root@Cai ~]# who -b
         system boot  2021-06-08 22:07

who am i

显示当前用户的信息

date

[root@Cai ~]# date
Tue Jun 15 20:17:24 CST 2021

cal

查看当月日期

[root@Cai ~]# cal
      June 2021
Su Mo Tu We Th Fr Sa
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

cal 2005 显示2005年的日历
cal 1 2005 显示2005年1月份的日历

useradd

添加一般用户r

useradd tt

为添加的用户指定相应的用户组

useradd -g root tt

创建一个系统用户

useradd -r tt

为新添加的用户指定home目录

useradd -d /home/myd tt

建立用户且制定ID

useradd caojh -u 544

练习

usermod -G admin test #把test添加到admin里面

查看组和附属组 id username

创建一个用户tom1,家目录是/tom1

useradd -d /home/tom1 tom1或者默认也是

创建一个用户tom2,所属组为student组

useradd -g student tom2

创建一个用户tom3,附属组为student03

useradd tom3
usermod -G student03 tom3

创建一个用户tom4,所属组为student03,附属组为student

useradd tom4
usermod -G student03 tom4

创建一个用户tom5,家目录为/student/tom5,所属组为student03,附属组为movie和music

useradd -d /student/tom5 -g student03
usermod -G movie
usermod -G music

passwd

设置密码

usermod

改变用户mary的家目录为/usr/mary

usermod  -d  /usr/mary  -m mary

改变用户mary的所属组为teacher

usermod  -g  teacher  mary

改变用户mary的附属组为movie和music

usermod  -G  movie , music  mary

练习

修改用户tom的家目录为/movie/tom,附属组为movie和music

usermod -d /movie/tom -m tom
usermod -G movie,music tom
# usermod -d /home/test/t -m t -G test1,mary 也行

修改用户tom的所属组为teacher,附属组为movie和music

usermod -g teacher -G movie,music tom

注意:更改用户的信息后,用户要重新登陆才能使更改的内容生效

userdel

删除用户

userdel -r

删除用户家目录

groupadd

groupmod

groupdel

cd

cd -a

ll -a

mkdir

创建目录

rm

rm 文件名

rm -r 文件夹名(删除文件及其子文件夹名)

软件包管理

rpm

安装rpm格式的软件包
红帽包资源管理器,用于管理rpm格式的程序

rpm   -qa |  grep  ***

查询系统是否安装***的rpm包

rpm  -e  ***    

删除***程序

rpm  -ivh   ***.rpm

安装 ***程序

rpm  -Uvh   ***.rpm

升级***程序

安装源码包程序

根据压缩格式,先解压、解包

tar  -zxvf   *.tar.gz
tar  -jxvf   *.tar.bz2
cd   解压后的文件夹名
./configure    --prefix=安装目录     
make   
make  install

绿色文件名即可运行,即./绿色文件名

免安装的软件包,直接./绿色文件名,或者查看帮助文件

举例namp程序的具体安装步骤如下

tar  -jxvf  nmap-3.93.tar.bz2
cd  nmap-3.93
./configure  - -prefix=/usr/local/namp3.93
make
make  install
cd   /usr/local/nmap3.93/bin
./nmap  localhost

mount

mount -o 选项 设备名 挂载点

具体步骤
建立挂载点,通常是在/mnt目录下建立多个目录,用于挂载多个设备

fdisk -l #查看可用设备

用mount命令挂载

例如

mount   /dev/cdrom   /mnt/cdrom
mount   /dev/sda1      /mnt/Udisk
mount   /dev/hda5      /mnt/D    (限真实双OS)

切换目录到挂载点目录
cd /mnt/C
ls查看目录下的文件

取消挂载点umount

shell重定向

https://blog.csdn.net/Dueser/article/details/115530797

wc

默认输出行数,单词数,字节数4 4 66 1.txt

  • -c或–bytes或–chars 只显示Bytes数。
  • -l或–lines 显示行数。
  • -w或–words 只显示字数。
  • –help 在线帮助。
  • –version 显示版本信息。

head

head 只看头几行
head -n 20

head -3 file1 file2 file3

head -c 只看头几个字节

tail

tail 只看尾巴几行
tail -n 20

tail -c 只看尾几个字节

df

-h 使用人类可读的格式

-i 列出 inode 资讯

-T 显示文件系统的形式

du

du 会显示指定的目录或文件所占用的磁盘空间

所占用的磁盘空间并不是文件大小

-h 以K,M,G为单位

-s 仅显示总计

cp

复制

-R 递归复制

-i 在覆盖目标文件之前给出提示,要求用户确认是否覆盖

-v 解释

-f 覆盖不提示

mv

移动

-f 覆盖不提示
-i 在覆盖目标文件之前给出提示,要求用户确认是否覆盖
-v 解释
-u 只在SOURCE文件比目标文件新或者目标文件丢失时才移动

ln

ln 硬链接

ln -s 软链接

https://blog.csdn.net/Dueser/article/details/115531389

more

查看文件,可以跳转行

空格下一页,b上一页

less

比more功能略强一点,都是查看文件

cut

paste

合并文件

find

找出硬链接并删除

find  /  -inum   134  -exec  rm {}  \\;

zip

zip	-r	src.zip    /root/test 

zip -unzip

gzip-gunzip

还有tar啥的,太多了,肯定不考

grub

引导加载程序

ps

类似windows的任务管理器,看进程状态的

ps	-l		与当前shell有关的进程
ps   aux 		显示系统所有进程的情况

pstree

进程树

kill

kill -9

kill -15

一般kill进程之后,需要释放资源再结束,但是我们可以手动改

write

write 用户名

发送消息

mesg

设置终端机的写入权限

wall

广播

mesg设置为n的用户会收到广播吗?

不会

普通用户也可以发送广播吗?

可以

写好的广播稿,如何发送?

重定向

内容长短有限制吗?

mail

[halo@Cai ~]$ mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/halo": 2 messages 2 new
>N  1 root                  Fri Jun 25 13:45  19/564   "asdf"
 N  2 root                  Fri Jun 25 13:46  20/567   "asdf"
& 1
Message  1:
From root@Cai.localdomain  Fri Jun 25 13:45:44 2021
Return-Path: <root@Cai.localdomain>
X-Original-To: halo
Delivered-To: halo@Cai.localdomain
Date: Fri, 25 Jun 2021 13:45:44 +0800
To: halo@Cai.localdomain
Subject: asdf
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@Cai.localdomain (root)
Status: R

jhhh
fdshfh

& 2
Message  2:
From root@Cai.localdomain  Fri Jun 25 13:46:00 2021
Return-Path: <root@Cai.localdomain>
X-Original-To: halo
Delivered-To: halo@Cai.localdomain
Date: Fri, 25 Jun 2021 13:46:00 +0800
To: halo@Cai.localdomain
Subject: asdf
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@Cai.localdomain (root)
Status: R

asdf
asdf
asdf

& mail
To: root
Subject: asdf
ffff
fff
EOT
&
  • h 显示消息头
  • q 退出
  • R 回复R 3
  • d 删除
mail   user@域名

vim

可以同时打开两个文件,输入命令:n切换

:r ! cat filename2

将filename2的内容读入,插入到当前文件的光标位置后的一行

命令模式

hjkl移动光标

  • w、b 切换到下一个单词、切换到上一个单词首
  • e 切换到下一个单词尾
  • 0 行首
  • $ 行末
  • kG 第k行
  • x 向后删除
  • X 向前删除
  • dd 整行删除
  • u 撤销
  • ctrl+r 撤销

复制,粘贴修改替换等省略

末行模式

搜索

/向下?向上n和N可以切换

可以使用shell命令

例如::! ls

输入模式

正常输入

自定义vim

set all显示参数

显示行号

set nu

缩进5个字符

set tabstop=5

类似宏定义(用5来代替5dd)

map 5 5dd #unmap 5

永久更改(全局,需要root和用户个人的配置)

自己家目录下的.vimrc

全局的/etc/.vimrc

如何修改?

例如:在文件结尾加set nu

如果冲突则用户个人生效

用户管理

https://blog.csdn.net/Dueser/article/details/114239433

shell

echo $(ls -a)

命令序列

;

分组

(date; whoami; pwd; ls ) > result.txt

export

export -p

所有变量

alias

命令别名设置

alias ll='ls -l'

unalias

grep

grep test filename

输出的是在filename里所有出现过test这个字符串的行

grep -n java book.txt|cut -d ":" -f 1
sed -i 'kd' book.txt #k是行数

read

读入

echo “please input a long sentence:"
read  a  b  c
echo  \\$a=$a
echo  \\$b=$b
echo  \\$c=$c
echo
echo  -e "input a  file name in the current directory:\\c"
read  FILE
cp  $FILE   ${FILE}_bak
vi   $FILE
echo   -e  "input a file name in the current directory:\\c"
read   FILE
echo  ${FILE:?"you must input a file name,please try again"}
cp  $FILE    ${FILE}_bak  
vi   $FILE

问题

1

所将文件夹“teacher”下的文件“试卷A.doc”复制到文件夹“student”下,如何实现?
GUI下:
同时显示源目录和目标目录窗口
用鼠标拖拽
Shell下:

cp   teacher/试卷A.doc    student/

输入 一条命令后回车即可

2

如果想复制所有以project开头和以.c结尾的文件怎么办?
GUI下:
分类显示,睁大眼睛选,拖拽
Shell下:

cp   teacher/project*.*   *.c      student/

3

useradd无法找到命令和权限不够是什么情况

无法找到命令是指环境变量没有添加

权限不够是因为用户不是root

4

motd,登录时候的字符

5

book.txt

java:sun
html:w3c
SqlServer:Microsoft

搜索java这本书的记录

gerp java book.txt

删除java这本书的记录

grep -n java book.txt|cut -d ":" -f 1
sed -i 'kd' book.txt 

6

一个文件file 用"作分割符,想取出文件中的第一个域,如何实现?

grep file|cut -d """ -f 1

课堂记录

题型

单选15*2=30

5道多选5*3=15

判断10*1=10

应用5*5=25

大题10*2=20

考试

人物…

Ken Thompson
Unix之父

国产OS…

哪些不是国产OS

分区

linux的分区问题,

主分区拓展分区逻辑分区

严格区分大小写

配置文件的man在第几页

useradd用户无权限和pash没有加命令

/etc/motd

/etc/inittab,init 0-6 5

更改运行级别

邮箱目录?/etc/…

/var/spool/mail/用户名/

重定向 合并

wc

文件名出一个小题,文件头文件尾,代替

du 文件大小,磁盘空间大小

软硬链接

vim判断选择,5分题都有

定制vim 行号 写到配置文件里 home生效

隔多久改密码

cut 5分

find

邮件write mesg wall

su登录的不认为是在线用户

-+=?参数

以上是关于linux 复习的主要内容,如果未能解决你的问题,请参考以下文章

安卓复习8

安卓复习8

[linux][c/c++]代码片段01

[linux][c/c++]代码片段02

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段