Linux记录一

人间多的是两条腿的恶人,多了条尾巴又怎样。

自由软件与开源软件

1.自由软件遵循CPL(General Public License)协议,通用公共许可证允许用户自由下载,分发,修改和再分发源代码公开的自由软件,并可向使用者收取一定的服务费用,但不许任何人将源代码与服务做任何形式的捆绑式销售。

2.开源软件(Open Source Software), 与自由软件不同的是:开源软件允许源代码修改后可以作为闭源的商业软件发布和销售,而自由软件要求即便是经过用户修改,源代码任然必须保持开源。

3.Linux遵循GPL协议,是自由软件。

Linux的主要特点

1.真正的多用户多任务:linux支持多个用户从相同或不同终端同时使用同一台计算机,而没有商业软件所谓许可证的限制。

2.良好的兼容性:linux兼容主流的UNIX系统(Systen V和BSD),在UNIX中可以运行的程序,几乎完全可以在linux中运行。

3.强大的可移植性:linux是目前支持最多硬件平台的操作系统。

4.高度的稳定性:可以连运行续数月,数年而无需重新启动。

5.强大的字符界面(命令行)和渐渐完善的图形用户界面。

Linux版本

1.内核版本

linux内核版本有X.Y.Z形式,其中:

  • X:表示主版本号,通常在一段时间内比较稳定。
  • Y: 次版本号,偶数便是次内核版本是正式版本,可以公开发行;奇数表示此内核版本是测试版本,还不太稳定,仅供测试。
  • Z: 表示修改次数,数值越大,表示修改的次数越多,版本相对更完善。

2.发行版本

目前,linux发行版本已达数百种之多,任何发行版本都不具有发布内核的权利,发行版本之间的差别主要在于包含的软件种类和数量不同。常见的发行版本有redhat, centos, fedora, ubuntu, debian, kali, opensuse等。

Linux系统结构

Linux系统结构

文件的属性和权限

1.Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。
2.Linux的文件权限有以下设定:

  • Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
  • Linux下权限的属组有 拥有者 、群组 、其它组 三种。每个文件都可以针对这三个属组(粒度),设置不同的rwx(读写执行)权限。
  • 通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。

文件属性

[-]:普通类型文件,Linux中最多的一种文件类型, 包括 纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件。
[d]:目录文件,可执行表示有权限进入此目录。
[b]:块设备文件:就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1等文件。
[c]:字符设备文件:即串行端口的接口设备,例如键盘、鼠标等等。
[s]:套接字文件:这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。,最常在 /var/run目录中看到这种文件类型。
[p]:管道文件:FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO是first-in-first-out(先进先出)的缩写。
[l]:链接文件:类似Windows下面的快捷方式。

权限

-rw------- (600)     只有拥有者有读写权限。
-rw-r--r-- (644)     只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700)     只有拥有者有读、写、执行权限。
-rwxr-xr-x (755)     拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711)     拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666)     所有用户都有文件读、写权限。
-rwxrwxrwx (777)     所有用户都有读、写、执行权限。

文件权限修改

1.使用chmod命令: chmod命令用来变更文件或目录的权限。

权限范围的表示法如下:

u User,即文件或目录的拥有者;
g Group,即文件或目录的所属群组;
o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
a All,即全部的用户,包含拥有者,所属群组以及其他用户;
r 读取权限,数字代号为“4”;
w 写入权限,数字代号为“2”;
x 执行或切换权限,数字代号为“1”;
- 不具任何权限,数字代号为“0”;
s 特殊功能说明:变更文件或目录的权限。

直接举几个例子

  • 设置所有用户可读取文件 a.txt 可用chmod ugo+r a.txtchmod a+r a.txt
  • 设置拥有者可以读写及执行chmod u+rwx a.txt
  • 设置文件 a.conf 与 b.xml 权限为拥有者与其所属同一个群组 可读写,其它组可读不可写chmod a+r,ug+w,o-w a.conf b.xml
  • 设置当前目录下的所有档案与子目录皆设为任何人可读写chmod -R a+rw *
  • 设置所有人可以读写及执行chmod 777 file (等价于 chmod u=rwx,g=rwx,o=rwx file 或 chmod a=rwx file)

2.使用chgrp命令:chgrp命令用来改变文件或目录所属的用户组。

-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quiet或——silent:不显示错误信息;
-h或--no-dereference:只对符号连接的文件作修改,而不是该其他任何相关文件;
-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-v或——verbose:显示指令执行过程;
--reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;

如:将/usr/ABC及其子目录下的所有文件的用户组改为abc,使用
chgrp -R abc /usr/ABC

3.使用chown命令:chown命令改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。

用户可以是用户或者是用户id,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。

参数(选项)和chgrp差不多,直接举例子

将目录/usr/ABC及其下面的所有文件、子目录的文件主改成Bob:
chown -R Bob /usr/ABC

默认权限

1.不同用户的默认权限不同
2.可通过umask:命令查看和修改。
3.umask命令用来设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉。

  • -p:输出的权限掩码可直接作为指令来执行;
  • -S:以符号方式输出权限掩码。

4.利用umask命令可以指定哪些权限将在新文件的默认权限中被删除。例如,可以使用下面的命令创建掩码,使得组用户的写权限,其他用户的读、写和执行权限都被取消:umask u=, g=w, o=rwx

5.不能直接利用umask命令创建一个可执行的文件,用户只能在其后利用chmod命令使它具有执行权限。假设执行了命令umask u=, g=w, o=rwx,虽然在命令行中,没有删去文件主和组用户的执行权限,但默认的文件权限还是640(即 rw-r-----),而不是750(rwxr-x---)。但是,如果创建的是目录或者通过编译程序创建的一个可执行文件,将不受此限制。在这种情况下,会设置文件的执行权限。

6.选项-s表示以字符形式显示当前的掩码。如果直接输入umask命令,不带任何参数,那么将以八进制形式显示当前的掩码。系统默认的掩码是0022。

绝对路径与相对路径

1.绝对路径:以/开始的路径
2.相对路径:以./../等开始的目录,如../../表示上两级目录

  • ~:当前用户的家目录
  • ../:表示当前目录
  • ..../:表示上级目录

3.可使用pwd查看当前目录

cd命令

cd    进入用户主目录;
cd ~  进入用户主目录;
cd -  返回进入此目录之前所在的目录;
cd ..  返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../..  返回上两级目录;
cd !$  把上个命令的参数作为cd参数使用。

ls命令

常用:

-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为隐藏,不会列出);
-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
-t:用文件和目录的更改时间排序;
-R:递归处理,将指定目录下的所有文件及子目录一并处理;
-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;
-A:显示除隐藏文件“.”和“..”以外的所有文件列表;
-C:多列显示输出结果,这是默认选项;
-F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;
-b:将文件中的不可输出的字符以反斜线加字符编码的方式输出;
-k:以KB(千字节)为单位显示文件大小;
-m:用“,”号区隔每个文件和目录的名称;
-n:以用户识别码和群组识别码替代其名称;
-r:以文件名反序排列并输出目录内容列表;
-s:显示文件和目录的大小,以区块为单位;
-L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;

压缩和解压缩

1.gzip: gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出.gz扩展名
2.bzip2: 用于创建和管理(包括解压缩).bz2格式的压缩包。
3.tar: 文件及目录打包命令

tar -cvf log.tar log2012.log    仅打包,不压缩! 
tar -zcvf log.tar.gz log2012.log   打包后,以 gzip 压缩 
tar -jcvf log.tar.bz2 log2012.log  打包后,以 bzip2 压缩 

在选项f之后的文件档名是自己取的,我们习惯上都用.tar来作为辨识。 如果加z选项,则以.tar.gz.tgz来代表gzip压缩过的tar包;如果加j选项,则以.tar.bz2来作为tar包名。

其他参数:

-c或--create:建立新的备份文件;
-x或--extract或--get:从备份文件中还原文件;
-f<备份文件>或--file=<备份文件>:指定备份文件;
-z或--gzip或--ungzip:通过gzip指令处理备份文件;
-j:支持bzip2解压文件;
-v或--verbose:显示指令执行过程;
-m:保留文件不被覆盖;
-t或--list:列出备份文件的内容;
-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-r:添加文件到已经压缩的文件;
-p或--same-permissions:用原来的文件权限还原文件;

-A或--catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-d:记录文件的差别;
-Z或--compress或--uncompress:通过compress指令处理备份文件;
-u:添加改变了和现有的文件到已经存在的压缩文件;
-l:文件系统边界设置;
-w:确认压缩文件的正确性;
-P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
-N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
--exclude=<范本样式>:排除符合范本样式的文件。

vim和vi

1.区别:两者都是多模式编辑器,但vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性。

1)多级撤消
    在vi的命令模式里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。
2)多操作系统支持
    vi只能运行于unix中,而vim不仅可以运行于unix,还有windows ,mac等操作系统上。
3)语法加亮
    vim可以对代码进行多颜色的语法加亮。
4)可视化操作
    因为vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows, 所以说他“可视化”。
5)对vi的完全兼容
    大多情况下,vim可以完全被当成vi来使用。

2.模式

(1)vi有3个模式:插入模式、命令模式、底行模式。

  • 文本输入模式(input mode/编辑模式):在此模式下可以输入字符,按ESC将回到命令模式。
  • 命令行模式(command mode/一般模式):在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。
  • 末行模式(last line mode/指令列命令模式):在命令模式下,用户按:键即可进入末行模式下,可以达到保存文件、退出vi、设置vi、查找等功能。

(2)vim一共有4个模式:

  • 正常模式 (Normal-mode) 启动vim后默认处于正常模式。不论位于什么模式,按下Esc键(有时需要按两下)都会进入正常模式。
  • 插入模式 (Insert-mode) 在正常模式中按下i, I, a, A等键,会进入插入模式。
  • 命令模式 (Command-mode) 在正常模式中,按下:键,会进入命令模式。
  • 可视模式 (Visual-mode) 在正常模式中按下v, V, Ctrl+v,可以进入可视模式。

3.常用命令

(1)打开与退出

vim filename  打开filename文件

# 命令模式下使用
:w               保存文件
:w filename.txt  保存至filename.txt文件
:q               退出编辑器,如果文件已修改请使用下面的命令
:q!              退出编辑器,且不保存
:wq              退出编辑器,且保存文件
:x               退出编辑器,且保存文件

(2)编辑

# 命令模式下使用
a  在当前光标位置的右边添加文本
i  在当前光标位置的左边添加文本
A  在当前行的末尾位置添加文本
I  在当前行的开始处添加文本(非空字符的行首)
O  在当前行的上面新建一行
o  在当前行的下面新建一行
R  替换(覆盖)当前光标位置及后面的若干文本
J  合并光标所在行及下一行为一行(依然在命令模式)
yy    将当前行复制到缓存区,也可以用 "ayy 复制",a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
nyy   将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
yw    复制从光标开始到词尾的字符。
nyw   复制从光标开始的n个单词。
y^    复制从光标到行首的内容。
y$    复制从光标到行尾的内容。
p     粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴。
P     粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴。
# 移动光标
上:k nk:向上移动n行 9999k或gg可以移到第一行 G移到最后一行
下:j nj:向下移动n行
左:h nh:向左移动n列
右:l nl:向右移动n列
w:光标以单词向前移动 nw:光标向前移动n个单词 光标到单词的第一个字母上
b:与w相反
e: 光标以单词向前移动 ne:光标向前移动n个单词 光标到单词的最后一个字母上
ge:与e相反
$:移动光标到行尾 n$:移动到第n行的行尾
0(Num):移动光标到行首
^:移动光标到行首第一个非空字符上去
CTRL+L     刷新屏幕
shift + <   左移一行
shift + >   右移一行
# 命令模式下使用
x     删除当前字符
nx    删除从光标开始的n个字符
dd    删除当前行
ndd   向下删除当前行在内的n行
u     撤销上一步操作
U     撤销对当前行的所有操作
.     重复上一步操作
# 命令模式下使用
:/string           输入后按回车,从光标开始处向文尾查找字符串,找到则停留,继续则按n
:?string           输入后按回车,从光标开始处向文件头查找字符串,方法同上
:n                 继续查找满足条件的字符串
:N                 改变查找方向,继续查找满足条件的字符串
:set  nu           显示行号
:set nonu          取消显示行号
:s/old/new         用new替换行中首次出现的old
:s/old/new/g       用new替换行中所有的old
:n,m s/old/new/g   用new替换从n到m行里所有的old
:%s/old/new/g      用new替换当前文件里所有的old
:n1,n2 co n3       将从n1行到n2行之间(包括n1,n2行本身)的所有文本复制到n3行之下
:n1,n2 m n3        将从n1行到n2行之间(包括n1,n2行本身)的所有文本移动到n3行之下
:n1,n2 d           删除n1行到n2行之间(包括n1,n2行本身)的所有内容

(3)更多

1.vim常用命令总结
2.vi 和vim 的区别

文件目录

Linux 系统目录结构
linux目录结构详细介绍


通配符

通配符规则:
* 代表任意字符(0或多个)
代表一个字符
[] 中间为字符组合,仅匹配其中任一一个字符

如:

通配符         含义
*          匹配零个或多个字符。
?          匹配任意单个字符。
[0-9]      匹配范围内的数字。
[abc]      匹配已给出的任意字符。
[!abc]     匹配字母不是a、b或c

用户与组群管理

1.linux中用户分为超级用户(root),系统用户和普通用户。同样,组群分为超级组群,系统组群和私人组群。

2.涉及几个命令,需要的时候直接--helpman看如何使用就好。包括:

  • useradd
  • usermod
  • userdel
  • passwd
  • groupadd
  • groupmod
  • groupdel

命令用法同命令意义。此外,除了passwd命令可以普通用户自己使用外,其他命令均需超级用户权限。

3.几个文件

  • /etc/passwd
  • /etc/shadow
  • /etc/group
  • /etc/gshadow

4.取消shadow加密,可用pwunconv: 此命令需在root账户下执行,作用是将/etc/shadow中的加密密码解密,并保存于/etc/passwd文件中,且删除/etc/shadow文件。此命令在批量穿件用户时可用。若要恢复,可用pwconv命令。

posted @ 2021-12-12 16:45  煊奕  阅读(150)  评论(0编辑  收藏  举报