后端程序员要会linux吗,后端程序员必备的Linux基础知识
一.从认识操作系统开始
1.1操作系统简介
操作系统是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石;
操作系统本质上是运行在计算机上的软件程序;
为用户提供一个与系统交互的操作界面;
操作系统分内核与外壳(我们可以把外壳理解成围绕着内核的应用程序,而内核就是能操作硬件的程序)
1.2操作系统简单分类
Windows:目前最流行的个人桌面操作系统
Unix:最早的多用户、多任务操作系统,按照操作系统的分类,属于分时操作系统。Unix大多被用在服务器、工作站,现在也有用在个人计算机上,它在创建互联网、计算机网络或客户端/服务器端模型方面发挥着非常重要的作用。
Linux:Linux是一套免费使用和自由传播的类Unix操作系统。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统
二 Linux文件系统概览
Linux文件系统介绍
在Linux操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看做是一个文件。
也就是说在Linux系统中有一重要概念:一切都是文件。其实这是Unix哲学的一个体现,而Linux是重写Unix而来,所以这个概念也就传承下来。在Unix系统中,把一切资源都看做是文件,包括硬件设备。Unix系统把每个硬件都看成是一个文件,通常称为设备文件。这样用户就可以用读写文件的方式实现对硬件的访问。
文件类型与目录结构
文件类型
描述
示例
普通文件
用来在辅存设备(如磁盘)上存储信息和数据
包含程序源代码、可执行程序、图片、声音、图像等
目录文件
用于表示和管理系统中的文件,目录文件中包含一些文件名和子目录名
/root、/home
链接文件
用于不同目录下文件的共享
当创建一个已存在文件的符号链接时,系统就创建一个链接文件,这个链接文件指向已存在的文件
设备文件
用来访问硬件设备
包括键盘、硬盘、光驱、打印机等
命名管道
是一种特殊类型的文件,Linux系统下,进程之间通信可以通过该文件完成
Linux目录结构如下:
Linux文件系统的结构层次鲜明,就像一颗倒立的树,最顶层是其根目录
常见目录说明:
/bin:存放二进制可执行文件(ls、cat、mkdir),常用命令一般都在这里
/etc:存放系统管理和配置文件
/home:存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/usr:存放系统应用程序
/opt:额外安装的可选应用程序包所放置的位置,一般情况下,我们可以把tomcat等都安装到这里
/proc:虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息
/root:超级用户(系统管理员)的主目录(特权阶级)
/sbin:存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序,如ifconfig等
/dev:存放设备文件
/mnt:系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统
/boot:存放用于系统引导时使用的各种文件
/lib:存放着和系统运行相关的库文件
/tmp:存放各种临时文件,是公用的临时文件存储点
/var:存放运行时需要改变数据的文件,也是某些大文件的溢出区,比如说各种服务的日志文件(系统启动日志等)
/lost+found:这个目录平时时空的,系统非正常关机而留下”无家可归“,就在这里。
三 Linux基本命令
下面只是给出了一些比较常用的命令。推荐一个Linux命令快查网站,非常不错,大家如果遗忘某些命令或者对某些命令不理解都可以在这里得到解决。
目录切换命令
cd usr:切换到该目录下usr目录
cd..(或 cd../):切换到上一层目录
cd /:切换到系统根目录
cd ~:切换到用户主目录
cd -:切换到上一个所在的目录
目录的操作命令(增删改查)
mkdir 目录名称:增加目录
ls或者ll:ll是ls -l的缩写,ll命令可以看到该目录下的所有目录和文件的详细信息;查看目录信息
find 目录 参数:寻找目录
列出当前目录及子目录下所有文件和文件夹: find .
在/home目录下查找以.txt结尾的文件名:find /home -name "*.txt"
同上,但忽略大小写: find /home -iname "*.txt"
当前目录及子目录下查找所有以.txt和.pdf结尾的文件:find . \( -name "*.txt" -o -name "*.pdf" \)或find . -name "*.txt" -o -name "*.pdf"
mv 目录名称 新目录名称:修改目录的名称
注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作。mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。后面会介绍到mv命令的另一个用法。
mv 目录名称 目录的新位置:移动目录的位置---剪切
注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作。另外mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。
cp -r 目录名称 目录拷贝的目标位置:拷贝目录,-r代表递归拷贝
rm [-rf] 目录:删除目录
注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了增强大家的记忆,无论删除任何文件。都直接使用rm -rf 目录/文件/压缩包
文件的操作命令
touch 文件名称:文件的创建
cat/more/less/tail 文件名称:文件的查看
cat:只能显示最后一屏内容
more:可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看
less:可以使用键盘上的PgUp和PgDn向上向下翻页,q结束查看
tail-10:查看文件的后10行,Ctrl + C结束
vim 文件:修改文件的内容
rm -rf 文件:删除文件(同目录删除,记住rm -rf 文件 即可)
压缩文件的操作命令
打包并压缩文件
后端程序员要会linux吗,后端程序员必备的Linux基础知识相关推荐
- Linux中文件描述符1,linux内核中的文件描述符(一)--基础知识简介
原标题:linux内核中的文件描述符(一)--基础知识简介 Kernel version:2.6.14 CPU architecture:ARM920T Author:ce123(http://blo ...
- linux内核中的文件描述符(一)--基础知识简介
linux内核中的文件描述符(一)--基础知识简介 Kernel version:2.6.14 CPU architecture:ARM920T Author:ce123(http://blog.cs ...
- 嵌入式Linux开发环境搭建-4-嵌入式编程基础知识
嵌入式Linux开发环境搭建-4-嵌入式编程基础知识 1.安装代码编辑器 2.交叉编译工作使用 1.安装代码编辑器 参考文档 ubuntu几款好用的代码编辑器_百度经验 安装sublime text ...
- Linux平台gcc和动态共享库的基础知识
http://www.javaeye.com/topic/261176 对大多数不从事Linux平台C语言开发的人来说,GNU gcc的一套工具和Linux平台的共享库的使用还是十分陌生的,其实我也不 ...
- python的知识点运用_程序猿在Python编程中不得不使用的十二种基础知识
Python编程中常用的12种基础知识,其中肯定有你不会的! 人生苦短,我用Python 1.正则表达式替换 目标: 将字符串line中的 overview.gif 替换成其他字符串. 人生苦短,我用 ...
- 程序员软考刷题笔记——软件开发和运行维护基础知识
1. 系统切换费用属于(系统运行维护费用) 2. 文档设计的要点不包括(采用文档模板以减少以后随软件版本的升级而更新文档的工作量) 文档设计的要点包括: 1.编写文档前应先做规划 2.要选择最合适表达 ...
- class会不会回收?用不到的class怎么回收_牛X的java程序员必备的GC基础知识, 面试肯定用的到...
1. GC回收哪些内存区域呢? 堆内存 对象 数组 方法区 该类所有的额实例都已经被回收, 也就是java堆中不存在该类的任何实例 加载该类的ClassLoader已经被回收 该类对应的java.la ...
- 【linux】服务器运维必备之linux常用命令合集
目录 1 常用系统查看命令:磁盘/内存/CPU 2 常用操作命令 3 系统/硬件时间操作 4 文件编辑器 5 防火墙 6 网卡 7 root用户远程ssh登录 1 常用系统查看命令:磁 ...
- 程序必备区块链基础知识
区块链(BlockChain),是区块(Block)和链(Chain)的直译,其数据结构如图1所示,即每个区块保存规定时间段内的数据记录,并通过密码学的方式,构建一条安全可信的链条,形成一个不可篡改. ...
- linux c语言变量地址类型,C语言基础知识:访问内存地址的方法
汇编语言寄存器间接寻址方法 #define GPJ0CON0xE0200240 ldr r0, =GPJ0CON //把地址值赋给寄存器r0,从后面的=可以看出用的是ldr伪指令,因为需要编译器来判断 ...
最新文章
- Android开发--Matrix(二)--实现图片的旋转
- 浅谈产品的用户画像:它并不是万能的
- 【Python日志输出】控制台输出INFO和WARNING级别,文件只记录WARNING级别
- 【Python科学计算系列】矩阵
- 姓名和学号 c语言,急啊!!!求救了 C语言编一个链表,输出姓名和学号就好
- [渝粤教育] 湘潭大学 土力学 参考 资料
- class-dump获取iOS私有api
- 深入理解C++中的RVO
- c语言过程化程序设计方法,程序的设计基础(C语言入门及编程环境)(修改).ppt
- 三维平面叠加图_无人机倾斜摄影技术在三维实景GIS的应用
- Gaussian 安装
- MOOC-首都师范-博弈论-焦宝聪-第六章-动态博弈学习笔记(五)
- C++——最长公共子串
- 使用pandas来根据出生日期判断星座
- 备战Java后端【Day6】
- 2022021第二届青少年计算机知识竞赛
- as的断点调试与高级断点调试
- Java程序在结构上的特点_下面关于JavaApplication程序结构特点描述中,错误的是()...
- 矩阵分析与应用(二)——矩阵微分
- 解决Client.Timeout exceeded while awaiting headers报错