文章目录
- linux的简单介绍
- Linux的系统目录结构介绍
- linux文件类型与文件权限
- Linux常用命令
- 1. 基础命令
- 1.1 ls( 查看路径下文件)
- 1.2 cd (切换路径)
- 1.3 clear(清屏)
- 1.4 pwd(查看当前路径)
- 1.5 . mkdir(创建目录)
- 1.6 rmdir (删除目录(空目录))
- 1.7 rm(删除文件)
- 1.8 touch(创建普通文件)
- 1.9 man(帮助手册)
- 1.10 cp(拷贝文件)
- 1.11 mv(文件剪贴,移动,重命名)
- 1.12 wc(统计文件中单词个数(-w)、字符个数(-c)、行数(-l) )
- 1.13 关机与重启
- 1.14 find (在目录树中搜索指定的文件,也可以指定开始的搜索位置)
- 1.15 grep(在文件中过滤出包含指定字符串的行)
- 1.16 管道 | (将前一个命令的输出结果作为后一个命令的输入)
- 1.17 su(切换用户)
- 1.18 runleve(查看系统运行级别 可以用 init 动态切换)
- 2. 文件查看命令
- 3. 文件编辑命令(vi/vim)
- 4. 文件压缩与解压命令
- 5. 进程管理命令
- 6. 用户管理命令
linux的简单介绍
1.Linux一切皆文件
Linux 就是一组软件,而软件分为操作系统软件和应用软件,当然 Linux 属于操作系统软件。
计算机是由一堆硬件组成的,为了有效的控制这些硬件资源,于是乎就有了操作系统的产生,操作系统除了有效的控制这些硬件资源的分配,并提供计算机运作所需要的功能(如网络功能)之外,为了要提供程序设计师更容易开发软件的环境,所以操作系统也会提供一组系统调用的接口。操作系统就是控制硬件的内核程序以及提供程序员使用的系统调用,而Linux 也就是拥有这两个模块的一组软件。
2.linux与windows的区别
- Linux:命令行操作系统
Windows :图形化界面 - Linux 主要应用于服务器(服务器端开发,手机和嵌入式设备(智能家具,遥控器…))
Windows 是个人操作系统(个人电脑) - Linux: 开源项目 (免费获取Linux操作系统的源码),内核源码,免费
Windows :不开源项目,收费 - Linux: 是多用户系统
Windows: 是单用户系统
3.linux的内核版本与发行版本
3.1 内核版本的发展历史
Linux 最早是由芬兰人 Linus Torvalds 设计的。当时由于 UNⅨ的商业化,Andrew Tannebaum 教授开发了 Minix 操作系统以便于不受 AT&T 许可协议的约束,为教学科研提供一个操作系统。Linus Torvalds 借鉴了 Minix 操作系统,自己动手写了一个“类 Minix”的操作系统,即就是 Linux 系统的雏形。1991 年 11 月,Linux0.10 版本推出,0.11 版本随后在1991 年 12 月推出,当时将它发布在 Internet 上,免费供人们使用。当 Linux 非常接近于一种可靠的并且稳定的系统时,Linus 决定将 0.13 版本称为 0.95 版本。1994 年 3 月,正式的Linux 1.0 出现了,这差不多是一种正式的独立宣言。截至那时为止,它的用户基数已经发展得很大,而且 Linux 的核心开发队伍也建立起来了。
3.2 内核官网与发行版本
3.2.1 内核官网
www.kernel.org/
看版本号:
版本号:5: 主版本号, 15:次版本号, 0: 修正版本号, 50: 修正版本第几次微调
版本是否稳定取决于修正版本号 奇数:不稳定 偶数:稳定版本
3.2.2 发行版本
- 红帽系统:大型开源技术厂商,稳定性极强的Linux套件, 服务价格太贵。
- CentOs::社区企业操作系统 , 基于红帽系统
- Debain:提供超过 37500 种不同的自由软件且拥有很高的认可度,对于各类内核架构支持性良好,稳定性、安全性强更有免费的技术支持。
- Ubuntu: 基于Debian 桌面版。图形化界面,稳定。
4.终端介绍
打开终端:ubuntu上右键 打开终端
快捷键:ctrl shift + 三键组合->放大字体
ctrl - 两键组合 ->缩小字体
Linux的系统目录结构介绍
1. 目录结构
如图:Linux 系统的目录结构是一颗倒状树
2. 常见目录介绍
/bin : 存放命令
/etc: 配置文件
/home: 普通用户的家目录 (普通用户活动范围,具有权限)
/root : 管理员家目录
/proc: 虚拟文件系统目录,以进程为单位存储内存映射关系。(进程:程序代码 + 运行起来)
/dev: 设备文件
/mnt : 临时挂载点
/lib : 库文件
/boot: 系统内核和启动所需要的文件
/tmp: 临时文件
/var : 系统日志 存放随时修改的一些文件。
/usr : 存放系统应用程序及文档 : include 目录里存在 stdio.h …
3. 绝对路径与相对路径
windows目录: C: D:// E: F: /
查找某个文件:绝对路径 C:/dir/1.txt
Linux目录: 根目录 /
查找一个文件:
- 绝对路径: 是从系统根目录(“/”)开始到指定位置的路径
例如:以绝对路径表示 main.c 的位置 /home/stu/main.c
以绝对路径表示桌面的位置 /home/stu/Desktop
~/stu/main.c <=> /home/stu/main.c - 相对路径: 是从当前目录开始到指定位置的相对路径
例如: “.” 代表当前位置 “…” 代表当前位置的上一层目录
“./main.c” 表示当前位置下的 main.c 文件
4. 家目录
所有普通用户都在”/home”下以该用户的用户名创建了一个目录,该目录就是此用户的家目录。 例如:
student 用户的家目录就是 : /home/student
teacher 用户的家目录就是 : /home/teacher
每个用户只能在自己的家目录下创建文件、修改文件等,不能访问其他用户的家目录, 更不能修改其他用户家目录中的文件。
linux文件类型与文件权限
1. 文件类型介绍
1.Linux 下所有的东西都可以看做文件,Linux 将文件分为以下几种类型:
- 普通文件 ‘-’
- 目录文件 ‘d’
- 管道文件 ‘p’
- 链接文件 ‘l’
- 设备文件 (块设备 ’b’ 、字符设备 ‘c’)
- 套接字文件 ‘s’
2.Linux 上不以文件的扩展名区别文件类型,而是在文件属性中有一列专门记录文件类型。这五种文件在 Linux 上的呈现如下图所示:
3.上图中列出的文件信息分别为:
2. 文件权限
2.1 文件权限介绍
- r 读权限值: 4
- w 写权限值: 2
- x 执行权限值: 1
- 无权限值: 0
- u : 表示文件属主的访问权限
- g : 表示文件同组用户的访问权限
- o : 表示其他用户的访问权限
2.2 文件权限修改(利用chmod修改)
2.2.1 文字修改法
u:表属主 g:同组人 o: 其他人 a :所有人 “ + ”表示增加权限 “ - ”表示去掉权限
例如:
2.2.2 数字修改法
采用数字设定法时,权限通常由三位数字组成,每一位数字代表一种角色的权限。每个角色的数值由其所具有的权限对应的数值之和构成,如下图:
r w 权限值和为6
r w x 权限值和为7
Linux常用命令
1. 基础命令
1.1 ls( 查看路径下文件)
tab键 补全 文件信息
-
ls 查看当前路径下所存在的文件。
-
ls -l 查看当前路径下所存在的文件 的 详细信息。 权限问题,创建日期,大小 …
-
ls -a 显示该路径下所有文件(包含隐藏文件)
-
ls -i: 显示文件 的 inode 节点号
-
ls + 路径 : 查看指定路径下的文件
1.2 cd (切换路径)
- cd + 路径
路径:
绝对路径
相对路径
- cd ~ 切换到普通用户的家目录里
cd /home/stu 切换到普通用户的家目录 跟上述相同
-
cd . . 切换到上一级目录
-
cd . 切换到当前路径
cd ny <=> cd ./ny*
1.3 clear(清屏)
1.4 pwd(查看当前路径)
1.5 . mkdir(创建目录)
mkdir +目录名 在当前路径下创建目录文件
1.6 rmdir (删除目录(空目录))
1.7 rm(删除文件)
- rm + 普通文件名 删除当前路径下的普通文件
- rm -r 强制删除文件(目录是否是空都可以)
- rm -rf 强制删除不展示警告信息
1.8 touch(创建普通文件)
可以指定一次创建多个文件
* 模糊匹配:
rm * .c -> 删除当前目录下的以.c 结尾的所有普通文件
rm * -> 删除当前目录下的所有普通文件
1.9 man(帮助手册)
帮助手册,用来查看命令、系统调用,库函数等帮助信息
示例如下:
1.10 cp(拷贝文件)
拷贝文件, 拷贝目录文件时,需要加上“-r” ,
示例如下:
也可修改名字只需在对应路径下重命名 (上图在 …/ 后加上想要修改的名字)
1.11 mv(文件剪贴,移动,重命名)
剪切(移动)文件,示例如下:
文件重命名,示例如下:
也可重命名到其他路径下,只需在重命名的文件名前加上相对应的路径
1.12 wc(统计文件中单词个数(-w)、字符个数(-c)、行数(-l) )
1.13 关机与重启
shutdown -h now 立刻关机 halt 关机 init 0 关机
shutdown -r now 立刻重启 reboot 重启 init 6 重启
1.14 find (在目录树中搜索指定的文件,也可以指定开始的搜索位置)
find 路径 - name 文件名
1.15 grep(在文件中过滤出包含指定字符串的行)
1.16 管道 | (将前一个命令的输出结果作为后一个命令的输入)
与 grep 搭配使用
1.17 su(切换用户)
su username 切换用户,没有指定用户名,则默认切换到管理员用户
1.18 runleve(查看系统运行级别 可以用 init 动态切换)
0-6 共 7 个级别
◼ 0 关机
◼ 1 单用户模式
◼ 2 多用户无网络服务
◼ 3 完全的多用户 文本界面
◼ 4 未定义或 自定义
◼ 5 图形化界面
◼ 6 重启
2. 文件查看命令
2.1 cat
2.1.1 查看文件内容
2.1.2 合并文件
合并文件 cat a.c > b.c 将a.c 拷贝一份到当前目录下b.c中 。 >重定向 >> 追加 (类似c语言:a)
a.c
b.c
2.1.3 往文件中写入数据, Ctrl+d 是结束输入
2.2 more
分屏显示文件内容
当一个文件的内容超过一个屏幕能显示的行数,使用more可以分屏显示文件内容。(文件内容会显示到界面上,可上下滚动查看)
2.3 less
文本内容查看器
文本内容查看器,查看文件内容,但是文件内容不会显示到界面上(可上下滚动查看)
2.4 head
显示文件前 n 行的内容(head -n 文件名)
2.5 tail
2.5.1 显示文件后 n 行的内容(tail -n 文件名)
2.5.2 tail -f 文件名 : 实时跟踪文件内容信息
(tail -f 文件名) 跟踪 一般用来跟踪日志文件,实时 边写边展示 cat >> 文件
(> 重定向 >> 追加)
3. 文件编辑命令(vi/vim)
3.1 命令模式
vi/vim 常用命令
使用前提:在Linux中安装vim 以及 gcc
命令使用:apt install vim (切换至管理员权限)
3.2 插入模式(编辑模式)
3.3 末行模式
:set number 或 :set nu //显示行号
:set nonumber 或 :set nonu //取消显示行号
3.4 三种模式的转换
- 命令模式切换到插入模式:
- 命令模式切换到末行模式:
/ string 向下查找一圈
? string 向上查找一圈
4. 文件压缩与解压命令
tar(将文件打包或者解包)
◼ c 创建包文件
◼ f 指定目标为文件而不是设备
◼ v 显示详细过程
◼ t 显示包中的内容而不释放
◼ x 释放包中的内容
◼ z GNU 版本新加的,使得 tar 有压缩和解压的功能
gzip(对文件进行压缩或者解压)
利用 tar gzip 命令分步压缩和解压
分布压缩:
分布解压:
只利用 tar 进行一步压缩和解压
5. 进程管理命令
5.1 ps(显示与当前终端有关的进程信息)
ps 显示与当前终端有关的进程信息
ps -e 显示系统中所有的进程信息
ps -f 显示更多的进程属性信息(全格式)
ps -L 显示进程中的线程 ID
ps -ef 显示系统上所有进程的详细信息
5.2 pstree(以树状图形式显示进程之间的关系)
pstree -p
5.3 kill(结束或者挂起一个进程)
kill 进程号(结束进程)
5.3.1 kill -9 (强制结束进程)
5.3.2 kill -stop (挂起进程)
5.4 pkill(结束一组同名的进程)
5.5 &(后台运行程序)
5.6 jobs(显示当前终端的任务)
5.7 bg %任务号 (将挂起的进程唤醒到后台执行)
5.8 fg %任务号 (将后台运行的或挂起的进程挪到前台执行)
5.9 top(查看系统资源使用情况以及进程信息)
按 q 退出
6. 用户管理命令
6.1 系统存储用户信息的文件
/etc/passwd (存储用户基本信息)
/etc/group (存储用户组的信息)
/etc/shadow (存储用户的密码)
6.2 添加新用户
useradd 用户名 (添加一个新的用户)
useradd -g (执行新用户的主组)
useradd -G(将新用户添加到副组)
useradd -s(指定新用户默认使用的 shell 终端)
useradd -d(指定新用户登录默认进入的目录)
创建新用户需要管理员身份,创建新用户成功后,会在/home 下生成该用户的家目录。
6.3 修改用户密码
一步修改:
sudo passwd 用户名
分步修改:
su root
passwd 用户名
6.4 删除用户
userdel 删除用户时,首先确保该用户没有登录。userdel 默认仅删除用户,不会删除家目录及家目录中的文件,若想删除用户的同时移除家目录, 那么使用 userdel -r username。