Linux知识点
1 c语言以及Unix由来
1970年,美国⻉尔实验室的 Ken Thompson,以 BCPL语⾔ 为基础,设计出很简单且很接近硬件的 B语⾔(取BCPL的⾸字⺟),并且他⽤B语⾔写了第⼀个UNIX操作系统。因为B语⾔的跨平台性较差,为了能够在其他的电脑上也能够运⾏这个⾮常棒的Unix操作系统,Dennis Ritchie和Ken Thompson 从B语⾔的基础上准备研究⼀个更好的语⾔。
1972年,美国⻉尔实验室的 Dennis Ritchie在B语⾔的基础上最终设计出了⼀种新的语⾔,他取了BCPL的第⼆个字⺟作为这种语⾔的名字,这就是C语⾔。1973年初,C语⾔的主体完成。Thompson和Ritchie迫不及待地开始⽤它完全重写了现在
⼤名鼎鼎的Unix操作系统。
2 Linux内核
3 Linux作用
4 文件和目录
bin和程序有关,boot和启动有关,
和光盘有关,
和设备有关。
所有的程序和配置的地方。
库。
除了home剩下的 都不要动。
/:根⽬录,⼀般根⽬录下只存放⽬录,在Linux下有且只有⼀个根⽬录。所有的东⻄都是从这⾥开始。当你在终端⾥输⼊“/home”,你其实是在告诉电脑,先从/(根⽬录)开始,再进⼊到home⽬录。
/bin、/usr/bin: 可执⾏⼆进制⽂件的⽬录,如常⽤的命令ls、tar、mv、cat等。
/boot:放置linux系统启动时⽤到的⼀些⽂件,如Linux的内核⽂件:/boot/vmlinuz 系统引导管理器:/boot/grub。
/dev:存放linux系统下的设备⽂件,访问该⽬录下某个⽂件,相当于访问某个设备,常⽤的是挂载光驱 mount /dev/cdrom /mnt。
5 路径
绝对路径
从/⽬录开始描述的路径为绝对路径,如:
cd /home
ls /usr
相对路径
从当前位置开始描述的路径为相对路径,如:
cd ../../
ls abc/def
.和..
每个⽬录下都有.和..
. 表示当前⽬录
.. 表示上⼀级⽬录,即⽗⽬录
根⽬录下的.和..都表示当前⽬录
回到桌面
6 ⽂件权限
创建文件
没有后缀之分
创建文件夹
⽂件权限就是⽂件的访问控制权限,即哪些⽤户和组群可以访问⽂件以及可以执⾏什么样的操作。
Unix/Linux系统是⼀个典型的多⽤户系统,不同的⽤户处于不同的地位,对⽂件和⽬录有不同的访问权限。为了保护系统的安全性,Unix/Linux系统除了对⽤户权限作了严格的界定外,还在⽤户身份认证、访问控制、传输安全、⽂件读写权限等⽅⾯作了周密的控制。在 Unix/Linux中的每⼀个⽂件或⽬录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些⽂件和⽬录。
访问⽤户
通过设定权限可以从以下三种访问⽅式限制访问权限:
只允许⽤户⾃⼰访问(所有者) 所有者就是创建⽂件的⽤户,⽤户是所有⽤户所创建⽂件的所有者,⽤户可以允许所在的⽤户组能访问⽤户的⽂件。
允许⼀个预先指定的⽤户组中的⽤户访问(⽤户组) ⽤户都组合成⽤户组,例如,某⼀类或某⼀项⽬中的所有⽤户都能够被系统管理员归为⼀个⽤户组,⼀个⽤户能够授予所在⽤户组的其他成员的⽂件访问权限。
允许系统中的任何⽤户访问(其他⽤户) ⽤户也将⾃⼰的⽂件向系统内的所有⽤户开放,在这种情况下,系统内的所有⽤户都能够访问⽤户的⽬录或⽂件。在这种意义上,系统内的其他所有⽤户就是 other ⽤户类
这个 QQ 空间是属于我的,我相当于管理者(也就是“所有者”),我想怎么访问就怎么访问。
同时,我可以设置允许 QQ 好友访问,⽽这些 QQ 好友则类似于“⽤户组”。
当然,我可以允许所有⼈访问,这⾥的所有⼈则类似于“其他⽤户”。
访问权限
⽤户能够控制⼀个给定的⽂件或⽬录的访问程度,⼀个⽂件或⽬录可能有读、写及执⾏权限:
读权限(r) 对⽂件⽽⾔,具有读取⽂件内容的权限;对⽬录来说,具有浏览⽬录的权限。
写权限(w) 对⽂件⽽⾔,具有新增、修改⽂件内容的权限;对⽬录来说,具有删除、移动⽬录内⽂件的权限。
可执⾏权限(x) 对⽂件⽽⾔,具有执⾏⽂件的权限;对⽬录了来说该⽤户具有进⼊⽬录的权限。
注意:通常,Unix/Linux系统只允许⽂件的属主(所有者)或超级⽤户改变⽂件的读写权限。
第1个字⺟代表⽂件的类型:“d” 代表⽂件夹、“-” 代表普通⽂件、“c” 代表硬件字符设备、“b” 代表硬件块设备、“s”表示管道⽂件、“l” 代表软链接⽂件。 后 9 个字⺟分别代表三组权限:⽂件所有者、⽤户者、其他⽤户拥有的权限。
每⼀个⽤户都有它⾃身的读、写和执⾏权限。
第⼀组权限控制访问⾃⼰的⽂件权限,即所有者权限。
第⼆组权限控制⽤户组访问其中⼀个⽤户的⽂件的权限。
第三组权限控制其他所有⽤户访问⼀个⽤户的⽂件的权限。
这三组权限赋予⽤户不同类型(即所有者、⽤户组和其他⽤户)的读、写及执⾏权限就构成了⼀个有9种类型的权限组。
7 命令格式
说明:
command: 命令名,相应功能的英⽂单词或单词的缩写 [-options]:选项,可⽤来对命令进⾏控制,也可以省略, []代表可选 parameter1 …:传给命令的参数:可以是零个⼀个或多个
查询帮助
1方式1
2方式2
命令 --help
自动补全
在敲出命令的前⼏个字⺟的同时,按下tab键,系统会⾃动帮我们补全命令
历史命令
当系统执⾏过⼀些命令后,可按上下键翻看以前的命令,history将执⾏过的命令列举出
删除
编辑 查看
删除⽬录:rmdir
可使⽤rmdir命令删除⼀个⽬录。必须离开⽬录,并且⽬录必须为空⽬录,不然提示删除失败。
删除⽂件:rm
可通过rm删除⽂件或⽬录。使⽤rm命令要⼩⼼,因为⽂件删除后不能恢复。为了防⽌⽂件误删,可以在rm后使⽤-i参数以逐个确认要删除的⽂件。
常⽤参数及含义如下表所示:
8 Linux⽂件管理
1 查看⽂件信息
ls
显示隐藏文件
以列表的形式显示
显示单位
显示全部 参数先后顺序没有关系
含义
2 通配符
3 重定向
先删除,再写 不小心,不可逆。
4 分屏显示:more
查看内容时,在信息过⻓⽆法在⼀屏上显示时,会出现快速滚屏,使得⽤户⽆法看清⽂件的内容,此时可以使⽤more命令,每次只显示⼀⻚,按下空格键可以显示下⼀⻚,按下q键退出显示,按下h键可以获取帮助。
5 管道:|
管道:⼀个命令的输出可以通过管道做为另⼀个命令的输⼊。
管道我们可以理解现实⽣活中的管⼦,管⼦的⼀头塞东⻄进去,另⼀头取出来,这⾥“ |”的左右分为两端,左端塞东⻄(写),右端取东⻄(读)。
6 清屏:clear
clear作⽤为清除终端上的显示(类似于DOS的cls清屏功能),也可使⽤快捷键:Ctrl + l ( “l”为字⺟ )。
7 切换⼯作⽬录: cd
在使⽤Unix/Linux的时候,经常需要更换⼯作⽬录。cd命令可以帮助⽤户切换⼯作⽬录。 Linux所有的⽬录和⽂件名⼤⼩写敏感
cd后⾯可跟绝对路径,也可以跟相对路径。如果省略⽬录,则默认切换到当前⽤户的主⽬录。
如果路径是从根路径开始的,则路径的前⾯需要加上 “ / ”,如 “ /mnt ”,通常进⼊某个⽬录⾥的⽂件夹,前⾯不⽤加 “ / ”。
8 查看或者合并⽂件内容:cat
9 ⽂本搜索:grep
Linux系统中grep命令是⼀种强⼤的⽂本搜索⼯具,grep允许对⽂本⽂件进⾏模式查找。如果找到匹配模式, grep打印包含模式的所有⾏。
rep搜索内容串可以是正则表达式。
10 查找⽂件:find
find命令功能⾮常强⼤,通常⽤来在特定的⽬录下搜索符合条件的⽂件,也可以⽤来搜索特定⽤户属主的⽂件。
11 拷⻉⽂件:cp
12 Tree
13 移动⽂件:mv
⽤户可以使⽤mv命令来移动⽂件或⽬录,也可以给⽂件或⽬录重命名。
14 归档管理:tar
计算机中的数据经常需要备份,tar是Unix/Linux中最常⽤的备份⼯具,此命令可以把⼀系列⽂件归档到⼀个⼤⽂件中,也可以把档案⽂件解开以恢复数据。
tar使⽤格式 tar [参数] 打包⽂件名 ⽂件
tar命令很特殊,其参数前⾯可以使⽤“-”,也可以不使⽤。
常⽤参数:
15 which
16 cal
17 ⽂件压缩解压:gzip
tar与gzip命令结合使⽤实现⽂件打包、压缩。 tar只负责打包⽂件,但不压缩,⽤gzip压缩tar打包后的⽂件,其扩展名⼀般⽤xxxx.tar.gz。
ar这个命令并没有压缩的功能,它只是⼀个打包的命令,但是在tar命令中增加⼀个选项(-z)可以调⽤gzip实现了⼀个压缩的功能,实⾏⼀个先打包后压缩的过程。
压缩⽤法:tar cvzf 压缩包包名 ⽂件1 ⽂件2 ...
-z :指定压缩包的格式为:file.tar.gz
解压⽤法: tar zxvf 压缩包包名
-z:指定压缩包的格式为:file.tar.gz
解压到指定⽬录:-C (⼤写字⺟“C”)
18 ⽂件压缩解压:bzip2
tar与bzip2命令结合使⽤实现⽂件打包、压缩(⽤法和gzip⼀样)。
tar只负责打包⽂件,但不压缩,⽤bzip2压缩tar打包后的⽂件,其扩展名⼀般⽤xxxx.tar.gz2。
在tar命令中增加⼀个选项(-j)可以调⽤bzip2实现了⼀个压缩的功能,实⾏⼀个先打包后压缩的过程。
压缩⽤法:tar -jcvf 压缩包包名 ⽂件...(tar jcvf bk.tar.bz2 *.c)
解压⽤法:tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)
19 ⽂件压缩解压:zip、unzip
通过zip压缩⽂件的⽬标⽂件不需要指定扩展名,默认扩展名为zip。
压缩⽂件:zip [-r] ⽬标⽂件(没有扩展名) 源⽂件
解压⽂件:unzip -d 解压后⽬录⽂件 压缩⽂件
20 查看进程信息:ps
动态显示进程:top
21 终⽌进程:kill
kill命令指定进程号的进程,需要配合 ps 使⽤。
使⽤格式:
22 关机重启:reboot、shutdown、init
23 检测磁盘空间:df
df命令⽤于检测⽂件系统的磁盘空间占⽤和空余情况,可以显示所有⽂件系统对节点和磁盘块的使⽤情况。
检测⽬录所占磁盘空间:du
du命令⽤于统计⽬录或⽂件所占磁盘空间的⼤⼩,该命令的执⾏结果与df类似,du更侧重于磁盘的使⽤状况。
du命令的使⽤格式如下: du [选项] ⽬录或⽂件名
24 查看或配置⽹卡信息:ifconfig
9 Linux命令-⽤户、权限管理
⽤户是Unix/Linux系统⼯作中重要的⼀环,⽤户管理包括⽤户与组账号的管理。
在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有⼀个账号,并且对于不同的系统资源拥有不同的使⽤权限。
Unix/Linux系统中的root账号通常⽤于系统的维护和管理,它对Unix/Linux操作系统的所有部分具有不受限制的访问权限。
在Unix/Linux安装的过程中,系统会⾃动创建许多⽤户账号,⽽这些默认的⽤户就称为“标准⽤户”。
在⼤多数版本的Unix/Linux中,都不推荐直接使⽤root账号登录系统。
1查看当前⽤户:whoami
whoami该命令⽤户查看当前系统当前账号的⽤户名。可通过cat /etc/passwd查看系统⽤户信息。
由于系统管理员通常需要使⽤多种身份登录系统,例如通常使⽤普通⽤户登录系统,然后再以su命令切换到root身份对传统进⾏管理。这时候就可以使⽤whoami来查看当前⽤户的身份。
2 查看登录⽤户:who
who命令⽤于查看当前所有登录系统的⽤户信息
3 退出登录账户: exit
如果是图形界⾯,退出当前终端;
如果是使⽤ssh远程登录,退出登陆账户;
如果是切换后的登陆⽤户,退出则返回上⼀个登陆账号
4 添加⽤户账号:useradd
在Unix/Linux中添加⽤户账号可以使⽤adduser或useradd命令,因为adduser命令是指向useradd命令的⼀个链接,因此,这两个命令的使⽤格式完全⼀样。
useradd命令的使⽤格式如下: useradd [参数] 新建⽤户账号
5 设置⽤户密码:passwd
在Unix/Linux中,超级⽤户可以使⽤passwd命令为普通⽤户设置或修改⽤户⼝令。⽤户也可以直接使⽤该命令来修改⾃⼰的⼝令,⽽⽆需在命令后⾯使⽤⽤户名。
6 删除⽤户:userdel
7 切换⽤户:su
可以通过su命令切换⽤户,su后⾯可以加“-”。su和su –命令不同之处在于,su -切换到对应的⽤户时会将当前的⼯作⽬录⾃动转换到切换后的⽤户主⽬录:
注意:如果是ubuntu平台,需要在命令前加“sudo”,如果在某些操作需要管理员才能操作,ubuntu⽆需切换到root⽤户即可操作,只需加“sudo”即可。sudo是ubuntu平台下允许系统管理员让普通⽤户执⾏⼀些或者全部的root命令的⼀个⼯具,减少了root ⽤户的登陆和管理时间,提⾼了安全性。
Ubuntu下切换到root的简单命令:
8 查看有哪些⽤户组
⽅法⼀:
cat /etc/group
⽅法⼆:
groupmod +三次tab键
9 添加、删除组账号:groupadd、groupdel
10 修改⽤户所在组:usermod
使⽤⽅法:usermod -g ⽤户组 ⽤户名
usermod -g 与 -G的区别
-g ⽤来制定这个⽤户默认的⽤户组
-G ⼀般配合'-a'来完成向其它组添加
11 查看⽤户在哪些组
12 为创建的普通⽤户添加sudo权限
13 修改⽂件权限:chmod
chmod 修改⽂件权限有两种使⽤格式:字⺟法与数字法。
字⺟法:chmod u/g/o/a +/-/= rwx ⽂件
如果需要同时进⾏设定拥有者、同组者以及其他⼈的权限,参考如下:
14 修改⽂件所有者:chown
15 修改⽂件所属组:chgrp
10 编辑器之神-vim
vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上⼀样。它可以执⾏输出、删除、查找、替换、块操作等众多⽂本操作,⽽且⽤户可以根据⾃⼰的需要对其进⾏定制。Vi不是⼀个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进⾏编排,它只是⼀个⽂本编辑程序。 vi没有菜单,只有命令,且命令繁多。
Vi有三种基本⼯作模式:
+ 命令模式
+ ⽂本输⼊模式
+ 末⾏模式。
命令⾏模式
任何时候,不管⽤户处于何种模式,只要按⼀下ESC键,即可使Vi进⼊命令模式;我们在shell环境(提示符为$)下输⼊启动Vi命令,进⼊编辑器时,也是处于该模式下。在该模式下,⽤户可以输⼊各种合法的Vi命令,⽤于管理⾃⼰的⽂档。此时从键盘上输⼊的任何字符都被当做编辑命令来解释,若输⼊的字符是合法的Vi命令,则Vi在接受⽤户命令之后完成相应的动作。但需注意的是,所输⼊的命令并不在屏幕上显示出来。若输⼊的字符不是Vi的合法命令,Vi会响铃报警.
⽂本输⼊模式
在命令模式下输⼊插⼊命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进⼊⽂本输⼊模式。在该模式下,⽤户输⼊的任何字符都被Vi当做⽂件内容保存起来,并将其显示在屏幕上。在⽂本输⼊过程中,若想回到命令模式下,按键ESC即可。
末⾏模式
末⾏模式也称ex转义模式。在命令模式下,⽤户按“:”键即可进⼊末⾏模式下,此时Vi会在显示窗⼝的最后⼀⾏(通常也是屏幕的最后⼀⾏)显示⼀个“:”作为末⾏模式的提示符,等待⽤户输⼊命令。多数⽂件管理命令都是在此模式下执⾏的(如把编辑缓冲区的内容写到⽂件中等)。末⾏命令执⾏完后,Vi⾃动回到命令模式。例如:
:sp newfile
则分出⼀个窗⼝编辑newfile⽂件。如果要从命令模式转换到编辑模式,可以键⼊命令a或者i;如果需要从⽂本模式返回,则按Esc键即可。在命令模式下输⼊“:”即可切换到末⾏模式,然后输⼊命令。
vim基础操作
vim是从 vi 发展出来的⼀个⽂本编辑器 。代码补完、编译及错误跳转等⽅便编程的功能特
别丰富
1 进⼊插⼊模式:
2 进⼊命令模式:
ESC:从插⼊模式或末⾏模式进⼊命令模式
3 删除命令
4 撤销命令:
5 重复命令:
6 ⽂本⾏移动:
7 复制粘贴:
8 可视模式:
9 替换操作
10 查找命令:
11 替换命令:
12 vim⾥执⾏ shell 下命令:
末⾏模式⾥输⼊!,后⾯跟命令
11 Linux常⽤服务器构建-ftp服务器
FTP 是File Transfer Protocol(⽂件传输协议)的英⽂简称,⽽中⽂简称为“⽂传协议”。⽤于Internet上的控制⽂件的双向传输。
同时,它也是⼀个应⽤程序(Application)。基于不同的操作系统有不同的FTP应⽤程序,⽽所有这些应⽤程序都遵守同⼀种协议以传输⽂件。
在FTP的使⽤当中,⽤户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。
"下载"⽂件就是从远程主机拷⻉⽂件⾄⾃⼰的计算机上;
"上传"⽂件就是将⽂件从⾃⼰的计算机中拷⻉⾄远程主机上。⽤Internet语⾔来说,⽤户可通过客户机程序向(从)远程主机上传(下载)⽂件。
1 安装vsftpd服务器
sudo apt-get install vsftpd
2 配置vsftpd.conf⽂件
sudo vi /etc/vsftpd.conf
3.测试上传功能,登陆ftp服务器
ftp I
4.上传命令,可以把⽂件上传到ftp服务器
put somefile
5.下载命令,可以把ftp服务器上的⽂件下载到本地
get somefile