Linux基础知识
Linux全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain
Linux系统结构
内核
1.管理进程
2.管理内存
3.管理驱动
4.管理文件和网络
Shell
接收用户的命令,经过转换交给内核去完成。
比如 打开文件:SHELL操作指令 cat ,就等于open()read()
1.简单操作
2.安全
常用的Shell工具:bourne Shell、C Shell 、K Shell、Bourne Again Shell、Z Shell
![Shell和Terminal](https://img-blog.csdnimg.cn/47334f02c8204318acacc610ea3788d3.png)
Shell还可以进行编程,比如.sh文件
文件系统
查看文件 | 作用 |
---|
lsof /bin/bash | 查找某个文件相关的进程 |
lsof -u root | 列出某个用户打开的文件信息 |
lsof -c redis | 列出某个程序进程所打开的文件信息 |
lsof -i tcp | 列出所有tcp网络连接信息 |
Linux目录
- 蓝色表示目录;
- 绿色表示可执行的文件;
- 红色表示亚索文件;
- 浅蓝色表示链接文件;
- 白色表示其他文件;
- xxx是设备文件,包括block,插入,FIFO。
![](https://i-blog.csdnimg.cn/blog_migrate/2ca782fe0f1f225a162c81886e98626e.png)
根目录文件
目录 | 作用 |
---|
bin | 存放普通用户可执行文件 |
boot | 开机引导目录 |
etc | 各种配置文件目录 |
dev | 设备目录 |
lib | 库文件存放地,bin和sbin需要的库文件 |
run | 系统运行时所需文件 |
tmp | 存放程序放置目录 |
用户主目录
主目录 home directory
root用户的主目录时 /root
其他用户的主目录是/home/用户名
cd 加空格 或者 cd ~进入
pwd 查看
su + 用户名 切换用户
工作目录:working directory
![root主目录](https://i-blog.csdnimg.cn/blog_migrate/1d8667f7cf5ecdfd093b0a83f29448b1.png#pic_center)
![其他用户主目录查看](https://i-blog.csdnimg.cn/blog_migrate/c253432a952ae835fe2c42bbe2c4988b.png#pic_center)
目录指代
符号 | 指代 |
---|
绝对路径 | 由 根目录/ 开始写起 |
相对路径 | 从当前所在工作目录开始写起 |
/ | 根目录 |
. | 代表当前目录 |
~ | 代表用户工作目录 |
…/ | 代表上一级目录 |
…/…/ | 上上一级目录 |
Linux常用操作
帮助命令
man command——具体参数和使用方法
whatis command——命令的简要说明
info command——详细介绍
help command ——Linux内置命令
关机:poweroff 或者 shutdown -h now 或者 halt -p
重启:reboot
快捷键
设置别名:alias
设置别名: vim ~/.bashrc
格式:alias short="xxx;xxx"
生效:sorce ~/.bashrc
操作 | 作用 |
---|
Tab | 补全命令和目录 |
方向键 | 上一条命令:↑;下一条命令:↓ |
Ctrl + r | 搜索历史命令,回车执行 |
!cd: | 重复执行最后一次,以cd开头的历史命令 |
Citl + Insert | 复制 |
Shift + Insert | 粘贴 |
Alt+ Insert | 复制并粘贴 |
通配符 | 指代 |
---|
* | 任意字符 |
? | 单个字符 |
[] | 匹配范围中的,比如[0-9][a-z] |
{} | 多个 {.log,.txt.*.doc} |
^ | 取反 *[^txt] * 查找不是.txt结尾的 |
系统环境变量
查看全部变量:env
查看单个变量:echo $xxx
用户变量:~/.bashrc
系统变量:/etc/profile
Linux文件描述符和重定向
文件描述符 File Descriptor
ID | 描述 | 设备 |
---|
0 | 标准输入(stdin) | 键盘 |
1 | 标准输出(stdout) | 显示器 |
2 | 标准错误输出(stderr) | 显示器 |
重定向
重定向:改变输入输出的方向。
符号 | 类别 |
---|
>和>> | 输出重定向 |
&> | 表示将一个流重定向到另一个文件描述符(file descriptor) |
<和<< | 输入重定向 |
输出重定向
标准输出重定向 command > file 示例 ls / 1> test.txt 输出到test.txt里面
command >> file 示例 ls / 1>>test.txt 叠加输出到test.txt中 (1可以省略)
![标准输出重定向](https://i-blog.csdnimg.cn/blog_migrate/cf1ca73e282684c44907d69953874cf1.png#pic_center)
标准错误输出重定向 command 2>file 示例find / -name “aaa” 2>err.txt
command 2>>file 示例find / -name “aaa” 2>>err.txt
输出和错误重定向 command > file 2>&1 示例 find / -name “aaa” >test.txt 2>&1
意思是将根目录下的文件符合“aaa" 的文件标准输出到test.txt,并且将错误输出重定向合并到test.txt
输入重定向
序号 | 命令格式 | 示例 |
---|
1 | command <file | 将file文件中的内容作为command的输入(省略了0) |
2 | command<END | 从标准输入(键盘)中读取数据,知道遇见分界符END才停止 |
3 | command < file1 >file2 | 将file1最为command的输入,并将command的处理结果输出到file2 |
4 | wc -l < test.txt | 统计test.txt文件中由多少行文本 |
5 | wc -l <<END | 统计用户在终端输入的文本的行数 |