Linux-基础快速入门
这是本人新手菜鸟在学习Linux中的一些总结,有不对的地方请指出来。谢谢。(学习视频来源于尚硅谷,白嫖yyds哈哈)
1. Linux的目录结构
1.1 目录基本介绍
在Linux的文件系统采用了层级式的树状目录结构,在最上层的是根目录"/".
![在这里插入图片描述](https://img-blog.csdnimg.cn/cba81390be2d4544a03cf885ad14733f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6buE6buE6buE6buE6buE5r2H5ZGA,size_13,color_FFFFFF,t_70,g_se,x_16#pic_center)
1.2 常用目录用途
在这对于所有目录不做详细介绍,反正大家伙应该也跟我一样记不下来。在这一些重要目录进行介绍。
- /home: home目录作为普通用户的主目录,每一个用户在此目录下都有一个子目录。
- /root: 该目录为系统管理员,也称作超级权限者的用户主目录。
- /etc: 所有系统管理所需要的配置文件和软件配置文件存放于此目录。
- /usr/local:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
- /opt:这是给主机额外安装软件所摆放的目录,如安装ORACLE数据库就可放到该目录下。于/usr/local的区别在于 前者存放需配置环境变量的软件。
- /var:这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件。
2. Linux的常用指令
2.1 关机 重启
关机和重启主要有三个指令,分别为 shutdown ,halt,reboot。
shutdown -h now : 立即关机
shutdown -h 1 : 一分钟后关机
shutdown -r now : 立即重启,同上
halt : 关机
reboot : 重启系统
2.2 用户管理
2.2.1 基本用户管理
2.2.1.1 用户管理介绍
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个唯一的用户名和各自的口令
2.2.1.2 用户管理基本指令(root权限)
查看当前用户:
who is am
注销用户:
logout
新增用户:
useradd [参数] 用户名
* -c : commoent 指定一段注释行描述
* -d : 指定用户主目录,如果此目录不存在,则可以-m创建主目录
* -g : 指定用户所属的用户组
* -f :[缓冲天数] 指定用户密码过期后在多少天关闭该账号
* -e : 指定账号的有效期限
删除用户:
userdel [参数] 用户名
* -r :同时删除用户主目录
修改用户信息:
usermod [参数] 用户名
参数同新增用户相同
用户口令管理:
passwd [参数] 用户名
* -l 锁定口令,即禁用账号。
* -u 口令解锁。
* -d 使账号无口令。
* -f 强迫用户下次登录时修改口令。
2.2.2 组管理
2.2.2.1 组管理介绍
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
2.2.2.2 组管理基本指令
新增用户组:
groupadd [参数] 组名
* -g GID 指定新用户组的组标识号(GID)。
* -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
删除用户组:
groupdel [参数] 组名
* -g GID 为用户组指定新的组标识号。
* -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
* -n新用户组 将用户组的名字改为新名字
2.4 组管理和权限管理
2.4.1 Linux组介绍
Linux中每一个用户都属于一个组,不能独立于组以外。所以在Linux中每一个文件都存在着文件/目录所有者和组的概念。一般文件的所有者都是文件的创建者,而当用户创建文件/目录时,默认文件所在组就是该用户。
2.4.2 文件属性介绍
- ls -l中显示的内容如图所示
1. 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。
- 当为[ d ]则是目录
- 当为[ - ]则是文件;
- 若是[ l ]则表示为链接文档(link file);
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
2. 接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
2.4.2 文件属性
2.4.2.1 rwx权限详解
- rwx作用到文件:
- r: read 可读,能进行查看读取
- w:write 可写,可以修改文件。不代表可以删除文件,删除一个文件意味着该用户对目录据有写的权限。
- x:excute 可执行,该文件能被执行。
- rwx作用到目录:
- r: read 可读,可ls查看目录内容
- w:write 可写,目录内创建+删除+重命名目录
- x:excute 可执行,可以进入该目录。
2.4.2.2 修改权限指令
更改文件属组:
chgrp [参数] 属组名 文件名
* -R: 递归更改
更改文件属主,也可以同时修改属组:
shown[参数] 属主名:属组名 文件名
* -R: 递归更改
更改文件9个属性:
在Linux中有两种修改文件属性的方法。一种是数字法,一个种是符号。文件的基础权限只有九个,分别对应者read/write/execute权限。
数字法:我们可以通过数字来代表各个权限。通过chmod -R 777 方式修改文件/目录的权限,这种情况是给read/write/execute加上读写执行的权限。可以灵活配置,记住下面的数值对应即可。
- r:4
- w:2
- x:1
符号法: 使用符号法的话,是通过 u(user), g(group), o(others) 来代表三种身份的权限!在此之前可以通过 a(all)来代表所有分钟。通过 +(加入) -(除去) =(设定) 来设置权限。
例如: chmod u+rwx 文件/目录
2.5 常用指令
2.5.1 vi和vim
1. vi 或vim 编辑文件
2. i 编辑模式 / : 命令行模式
3. yy: 拷贝当前行 5yy:拷贝当前5行
4. dd: 删除当前行 5dd:删除当前行
5. 在文件中查询某个单词: 命令行输入 / (查询内容) 按n 查找下一个
6. 设置行号:set nu 取消行号:set nonu
7. 正常模式到末行:shift + g 到首行:gg
8. 撤销输入:正常模式输入u
2.5.2 文件剪贴删除复制重名等
- pwd:Print Working Directory,显示当前工作目录的绝对路径。
- ls:-a:显示当前目录所有的文件和目录,包括隐藏的;
- -l:以列表的方式显示信息。
- cd:cd ~:回到自己的家目录;cd …:回到当前目录的上一级目录。
- mkdir:创建目录;-p:创建多级目录。
- rmdir:删除空目录。rmdir不能删除非空的目录。如果需要删除非空的目录,需要使用rm -rf。
- cp:拷贝文件到指定目录;
- -r:递归复制整个文件夹。强制覆盖不提示的方法:
- cp命令改为\cp
- rm:移除文件或目录;
- -r:递归删除整个文件夹;
- -f:强制删除不提示。
- mv:移动文件与目录或重命名,两种功能!
- touch:创建空文件。可以一次性创建多个文件
- ln 给文件创建一个软连接
- 用法:ln -s源文件或目录
2.5.3 文件查看
- cat:查看文件内容。只能浏览文件,而不能修改文件。
- -n:显示行号。
- 结尾加上 | more:分页显示,不会全部一下显示完。
- more:是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more还内置了很多快捷键:
- 空白键(Space):向下翻一页
- Enter:向下翻一行
- q:立刻离开more,不再显示该文件内容
- Ctrl + F:向下滚动一屏
- Ctrl + B:返回上一屏
- = :输出当前行的行号
- :f 输出文件名和当前行的行号
- head:显示文件的开头部分。-n 5:看前面5行内容。
- tail:输出文件中尾部的内容。
- -n 5:看后面5行内容。
- -f:时事追踪该文档的所有更新
- echo:输出内容到控制台。
- history:查看历史指令
- ”!行数 “ 执行历史指令
2.5.4 文件查看
- find:从指定目录向下递归的遍历其各个子目录,将满足条件的文件或者目录显示在终端。
- find (搜索范围) -name (文件名):按照指定的文件名查找模式查找文件。
- find (搜索范围) -user (用户名):按照指定的用户名查找模式查找文件。
- find (搜索范围) -size (+多少/-多少/多少):按照指定的文件大小查找模式查找文件(大于多少/小于多少/等于多少)
- 查询 /目录下所有.txt的文件:find / -name *.txt
- locate:locate (搜索文件)
- 可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。
- locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
- 在第一次运行之前,必须使用updatedb指令创建locate数据库。
- grep:过滤查找,表示将前一个命令的处理结果输出传递给后面的命令处理。经常跟管道一起使用。
- grep [选项] 查找内容 源文件
- -n:显示匹配行及行号。
- -i:忽略大小写字母。
- cat hello.txt | grep yes
2.5.5 压缩和解压类
- gzip/gunzip:压缩文件/解压
- gzip (文件):压缩为.gz文件,原来文件不保留。
- gunzip (文件):解压缩,同样也不保留源文件。
- zip/unzip:压缩文件/解压
- zip [选项] (压缩后文件xxx.zip) (将要压缩的文件)
- unzip [选项] (要解压的文件xxx.zip)
- zip -r:递归压缩,即压缩目录
- unzip -d (目录):指定解压后的文件的存放目录
- tar:打包指令,最后打包后的文件是.tar.gz的文件
- tar [选项] xxx.tar.gz (打包的内容)
- -c:产生.tar打包文件
- -v:显示详细信息
- -f:指定压缩后的文件名
- -z:打包同时压缩
- -x:解压.tar文件
- 压缩:tar -zcvf (压缩后文件名) (要压缩的文件)
- 解压:tar -zxvf (要解压的文件)
- 解压到指定目录:tar -zxvf (要解压的文件) -C (指定目录),指定解压到的目录要存在。
2.6 定时任务调度
**任务调度原理图:**
任务调度常用指令
例如:
使用方法:
crontab [参数]
* -e:编辑crontab定时任务
* -i:查询crontab任务
* -r:删除当前用户所有的crontab任务
* -l:列出当前有哪些任务调度
* service crond restart:重启任务调度
* 当保存退出后就生效了
执行时间
项目 | 含义 | 范围 |
---|---|---|
第一个“*” | 一小时当中的第几分钟 | 0-59 |
第二个“*” | 一天当中的第几小时 | 0-23 |
第三个“*” | 一个月当中的第几天 | 1-31 |
第四个“*” | 一年当中的第几月 | 1-12 |
第五个“*” | 一周当中的星期几 | 0-7(0和7都代表星期日) |
2.7 磁盘查看
磁盘情况查询:df -h 或者 df -l
查询指定目录:du -h /目录,默认为当前目录
- -s:指定目录占用大小汇总
- -h:带计量单位
- -a:含文件
- –max-depth=1:子目录深度
- -c:列出明细的同时,增加汇总值
2.8 进程管理
2.8.1 进程管理基础
- 在Linux中,每一个执行的程序都称为一个进程。每一个进程都分配一个ID号。
- 每一个进程,都会对于一个父进程,而这个父进程可以复制多个子进程。
- 每个进程都可能以两种方式存在。前台和后台。
- 前台进程是用户目前屏幕上可以进行操作的。
- 后台进程是实际在操作的,由于屏幕上无法看到的进程,通常在后台方式执行。
*一般系统的服务器都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
2.8.2 进程操作指令
查看进程:
ps [选项]:查看目前系统中,有哪些正在执行,以及它们执行的状况
* ps -a:显示当前终端的所有进程信息。
* ps -u:以用户的格式显示进程信息。
* ps -x:显示后台进程运行的参数。
* ps -axu | grep xxx:过滤得到xxx的信息。
* ps -ef:以全格式显示当前所有的进程,查看进程的父进程。
* -e:显示所有进程。
* -f:全格式。
中止进程:
- kill [选项] 进程号:通过进程号杀死进程
- -9:表示强迫进程立刻停止
- killall 进程名称:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
2.9 包管理工具(npm和yum)
2.9.1 npm
RPM:RedHat Package Manager,红帽软件包管理工具。
Linuxd分发版本都有采用(suse,redhat,centos等)
常用指令
- 查询指令:
- RPM查询已安装的rpm列表:rpm -qa | grep xx
- 卸载指令:
- 卸载rpm包:rpm -e 软件包名称
- 强制卸载(可能会导致软件无法运行): npm -e --nodeps 软件包名称
安装指令:
- 安装rpm包:rpm -ivh 软件包全路径名称
- i=install:安装
- v=verbose:提示
- h=hash:进度条
2.9.2 yum
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
- yum list | grep xx:查询yum服务器是否有需要安装的软件
- yum install xx:安装指定的yum包
- yum -y remove xx:卸载指定的yum包
2.9.3 rpm和yum的区别
npm是软件包管理器,核心功能是制作软件包.rpm ,安装,卸载,升级,查询,校验。而yum封装了npm ,拥有其所有功能。能通过网络对软件进行下载和安装。