(1)linux系统的安装
- 双系统---不推荐
- 虚拟机+centos镜像(可以使用)
- 云服务器/轻量级云服务器(强烈推荐)
①云服务器(用xshell连接)
ssh root@公网IP 然后输入password
①添加用户:
· adduser user_111
· passwd user_111
②用户登录:
· ssh user@公网IP password
③修改用户:
· userdel -r user_111
②虚拟机
(2)Linux应用场景及版本
1.企业后台最常用----服务器(centos居多,Ubuntu)
2.手机--安卓手机/平板--Linux
3.嵌入式领域
4.智能家居领域,汽车领域
商业化版本:
技术版本:主版本号.次版本号.修正次数(偶数:稳定版本,奇数:开发版本)
(3)操作系统是什么?为什么要有操作系统?
操作系统是一款进行软件资源管理的软件,Linux是一款具体的擦偶做系统的品类,centos7是一款具体的linux操作系统
1.对下提供基本的管理工作,让各种硬件工作在一个稳定的、高效的、安全的状态当中(手段)
2.对上要提供一个高效的、稳定的安全运行环境里(用户的,目的)
(4)指令
1.基础指令
命令 | 功能 |
pwd | 查看当前文件所在位置 |
ls | 罗列出当前路径下的文件名 |
cd | 进入指定的文件夹 |
cd - | 跳转到最近一次所处的路径下 |
cd ~ | 进入用户家目录 |
clear- | 清屏 |
touch file.txt | 用于修改文件的访问时间和修改时间,或者创建新的空文件,在当前目录下,快速创建一个新的普通文件 |
whoami | 查看当前正在使用的人是谁 |
which | 要求系统打印出我所指定的命令名称在系统所在的路径 |
alias | 给其他命令起一个别名(别名只在当前会话中有效) (创建一个名为 ll 的别名,将其映射为 ls -l 命令:alias ll='ls -l') |
tree | 以树的形式显示目录结构 (tree example) |
(sudo) yum -y install tree | 安装 |
madir | 在当前路径下,创建一个新的文件夹 |
rmdir | 删除空目录 |
rm | 删除文件或目录 |
man | Linux帮助手册 |
cp | 在不同的位置创建文件的副本 (创建一个名为 "file2.txt" 的副本,其内容与 "file1.txt" 相同:cp file1.txt file2.txt) |
mv | 移动文件或目录的,也可以用来重命名文件或目录 (将文件 "file1.txt" 移动到指定目录中:mv file1.txt /path/to/directory/) (将文件重命名为 "newname.txt":mv oldname.txt newname.txt) |
cat tac是逆向输出查看 | 查看较小的文件,会将整个文件的内容一次性输出到屏幕上 |
more | more 命令比较适合查看大文件,是分页器,它会将文件内容逐页显示在终端上,并在显示完一页后停止,等待用户按键继续查看下一页。 |
less | 允许用户在文件的内容中进行前后翻页、搜索、跳转等操作,并且在查看文件时,不会像 more 那样一次性加载整个文件内容(推荐) |
head | 显示开头或结尾某个数量的文字区块 (查看开头二十行:head -20 big.txt 默认10行) |
tail | 显示指定文件末尾内容(查看结尾二十行:tail -20 big.txt 默认10行) |
| 级联多条指令 (查看文件中间内容(8790~8800行):head -8800 big.txt | tail -10) |
wc | 统计文本行数 |
date | 指定格式显示时间: date +%Y:%m:%d %H : 小时(00..23) %M : 分钟(00..59) %S : 秒(00..61) %X : 相当于 %H:%M:%S %d : 日 (01..31) %m : 月份 (01..12) %Y : 完整年份 (0000..9999) %F : 相当于 %Y-%m-%d |
cal | 显示公历(阳历)日历
(显示2018年的日历:Cal –y 2018) |
find | find命令在目录结构中搜索文件 |
grep | 在文件中搜索字符串,将找到的行打印出来 |
zip/unzip | 将目录或文件压缩成zip格式 -r 递归处理,将指定目录下的所有文件和子目录一并处理 |
tar | |
sz/rz | 把云服务器上的文件传输到本地/本地文件上传到云服务器 |
scp | scp xxx.tgz root(用户名)@IP:/root(拷贝到对方的位置) |
bc | 浮点运算 |
uname –r | 来获取电脑和操作系统的相关信息 |
[Tab]按键 | 『命令补全』和『档案补齐』的功能 |
[Ctrl]-c按键 | 让当前的程序『停掉』 |
[Ctrl]-d按键 | 『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可 以用来取代exit |
shutdown | 关机 |
2.详细的谈论课件中的所有的指令 -- 附加Linux周边的配套知识
① 文件 = 文件属性 + 文件内容
② 在linux中, .
开头的文件是隐藏项目
- 在任何目录下,都会默认具有两个隐藏目录,
.
和..
. ->
用它来表示当前路径.. ->
用它来表示上级目录
③家目录
任何一个用户,首次登录所处路径都是自己的家目录
家目录:root---超级管理员账户--- /root
XXX用户 --- 普通用户 --- /home/XXX
④ 重定向
输出重定向:
echo
(把本来应该显示在显示器上的数据,显示在文件中):
- echo “hello”>file
- 创建一个空文件:>file
- 清空一个文件:>file
追加重定向:
- 从结尾处写入(不会清空):
echo “hello”>>file
(两个>)
输入重定向:
cat < code.c
(从文件code.c中读取并重定向到显示器中)
构建一个大文件的方法
i=1;while [ $i -le 10000 ]; do echo "hello Linux $i"; let i++; done > big.txt
当 i < 10000 时,往文件big.txt中写入i = 1,并执行 i++(注意空格)
(5)shell命令以及运行原理
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel,而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。
如何理解?为什么不能直接使用kernel?
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)
主要包含: 将使用者的命令翻译给核心(kernel)处理。 同时,将核心的处理结果翻译给使用者。
对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的 操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
(6)Linux权限的概念
Linux下有两种用户:超级用户(root)、普通用户。
- 超级用户:可以再linux系统下做任何事情,不受限制
- 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
用户切换:
- 从root用户切换到普通用户user,则使用
su user
- 从普通用户user切换到root用户则使用
su root
(root可以省略),此时系统会提示输入root用户的口令。
(7)Linux权限管理
①文件访问者的分类(人)
u---User 文件和文件目录的所有者
g---Group 文件和文件目录的所有者所在的组的用户
o---Others 其它用户
②文件类型和访问权限(事物属性)
a) 文件类型
- | 普通文件 |
d | 文件夹 |
i | 软链接(类似Windows的快捷方式) |
b | 块设备文件(例如硬盘、光驱等) |
p | 管道文件 |
c | 字符设备文件(例如屏幕等串口设备) |
s | 套接口文件 |
b) 基本权限
读(r/4) | Read对文件而言,具有读取文件内容的权限 对目录来说,具有浏览该目录信息的权限 |
写(w/2) | Write对文件而言,具有修改文件内容的权限 对目录来说具有删除移动目录内文件的权限 |
执行(x/1) | execute对文件而言,具有执行文件的权限 对目录来说,具有进入目录的权限 iv.“-”表示不具有该项权限 |
③文件权限值的表示方法
a) 字符表示方法
b) 8进制数值表示方法
④文件访问权限的相关设置方法
a) chmod
- 功能:设置文件的访问权限
- 格式:chmod [参数] 权限文件名
- 常用选项:R -> 递归修改目录文件的权限
- 说明:只有文件的拥有者和root才可以改变文件的权限
chmod命令权限值的格式
①用户表示符+/-=权限字符
例: chmod u+w /home/abc.txt
chmod o-x /home/abc.txt
chmod a=x /home/abc.txt
+ | 向权限范围增加权限代号所表示的权限 |
- | 向权限范围取消权限代号所表示的权限 |
= | 向权限范围赋予权限代号所表示的权限 |
用户符号 | u:拥有者 |
g:拥有者同组用 | |
o:其它用户 | |
a:所有用户 |
②三位8进制数字
例: chmod 664 /home/abc.txt
chmod 640 /home/abc.txt
b) chown
- 功能:修改文件的拥有者
- 格式:chown [参数] 用户名文件名
- 实例:
- chown user1 f1
- chown -R user1 filegroup1
c) chgrp
- 功能:修改文件或目录的所属组
- 格式:chgrp [参数] 用户组名文件名
- 常用选项:-R 递归修改文件或目录的所属组
- 实例:
- chgrp users /abc/f2
d) umask
- 功能:
- 查看或修改文件掩码
- 新建文件夹默认权限=0666
- 新建目录默认权限=0777
- 但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
- 格式:umask 权限值
- 说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用 户默认为0002。
- 实例
- umask 755
- umask //查看
- umask 044//设置
(8)file指令
- 功能说明:辨识文件类型。
- 语法:file [选项] 文件或目录...
- 常用选项:
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容。
- 使用 sudo分配权限
(1)修改/etc/sudoers 文件分配文件
chmod 740 /etc/sudoers
vi /etc/sudoer
格式:接受权限的用户登陆的主机 =(执行命令的用户)命令
(2)使用 sudo 调用授权的命令
格式:$ sudo –u 用户名命令
实例:$sudo -u root /usr/sbin/useradd u2
(9)目录的权限(粘滞位)
可执行权限(x) | 如果目录没有可执行权限, 则无法cd到目录中 |
可读权限(r) | 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容 |
可写权限(w) | 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件 |
换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限. 这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉? 我们用下面的过程印证一下.
[root@localhost ~]# chmod 0777 /home/
[root@localhost ~]# ls /home/ -ld
drwxrwxrwx. 3 root root 4096 9月 19 15:58 /home/
[root@localhost ~]# touch /home/root.c
[root@localhost ~]# ls -l /home/
总用量 4
-rw-r--r--. 1 root root 0 9月 19 15:58 abc.c
drwxr-xr-x. 27 litao litao 4096 9月 19 15:53 litao
-rw-r--r--. 1 root root 0 9月 19 15:59 root.c[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/root.c #litao可以删除root创建的文件
rm:是否删除有写保护的普通空文件 "/home/root.c"?y[litao@localhost ~]$ exit
logout
为了解决这个不科学的问题, Linux引入了粘滞位的概念
[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
- 超级管理员删除
- 该目录的所有者删除
- 该文件的所有者删除
(10)关于权限的总结
- 目录的可执行权限是表示你可否在目录下执行命令。
- 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
- 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
- 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。