当前位置: 首页 > Linux

后端程序员必备的Linux基础知识

时间:2023-04-06 05:55:48 Linux

本文同步更新在我的Github:网页链接了自己总结的Java学习的系统知识点和面试题。它目前是开源的,并将继续改进。欢迎提意见建议指导欢迎Star:https://github.com/Snailclimb/Java-Guide在学习Linux之前,先简单了解一下操作系统。一、从对操作系统的认识入手1.1操作系统简介我将通过以下四点来介绍操作系统:操作系统(OperationSystem,简称OS)是一个管理计算机硬件和软件资源的程序,是计算机系统的核心和基石;操作系统的本质上层是运行在计算机上的软件程序;为用户提供与系统交互的操作界面;操作系统分为内核和外壳(我们可以把外壳理解为围绕内核的应用程序,而内核是可以操作硬件的程序)。1.2操作系统的简单分类Windows:目前最流行的个人桌面操作系统,不用多介绍大家都知道。Unix:最早的多用户、多任务操作系统。按照操作系统的分类,属于分时操作系统。Unix多用于服务器、工作站,现在也用于个人电脑。它在创建互联网、计算机网络或客户端/服务器模型中起着非常重要的作用。Linux:Linux是一套免费使用和自由传播的类Unix操作系统。Linux有很多不同的Linux版本,但它们都使用Linux内核。Linux可以安装在各种计算机硬件设备上,例如手机、平板电脑、路由器、视频游戏机、台式计算机、大型机和超级计算机。严格来说,Linux这个词本身只是指Linux内核,但实际上人们已经习惯于用Linux来描述整个基于Linux内核的操作系统,并使用GNU工程的各种工具和数据库。二Linux初探2.1Linux简介上面我们已经介绍了Linux,这里只强调三点。类Unix系统:Linux是一个免费、开源的类Unix操作系统Linux内核:严格来说,Linux这个词本身只表示Linux内核Linux之父:编程领域的传奇人物。他是Linux内核的最早作者,随后发起了这个开源项目,担任Linux内核的首席架构师和项目协调员,是当今世界最著名的计算机程序员和黑客之一。他还发起了Git开源项目,是主要开发者。2.2Linux诞生简介1991年,芬兰业余计算机爱好者LinusTorvalds编写了一个Minix-like系统(基于微内核架构的类Unix操作系统),被ftp管理员命名为Linux,并加入了GNU项目自由软件基金会。;Linux以一只可爱的企鹅为标志,象征着勇气和对生命的热爱。2.3Linux的分类Linux根据原生化程度分为两种:内核版本:Linux不是操作系统。严格来说,Linux只是操作系统中的内核。内核是什么?内核为计算机软件和硬件之间的通信建立了一个平台。内核提供系统服务,如文件管理、虚拟内存、设备I/O等;releaseversion:一些组织或公司基于二次开发的内核版本重新发布的版本。Linux发行版有很多种(ubuntu和CentOS用的比较多,初学者推荐选择CentOS),如下图所示:3Linux文件系统概述3.1Linux文件系统介绍在Linux操作系统中,所有的资源都被管理由操作系统,例如网络接口卡、磁盘驱动器、打印机、输入和输出设备、普通文件或目录都被认为是一个文件。也就是说,LINUX系统中有一个重要的概念:一切皆文件。其实这是UNIX哲学的体现,而Linux是UNIX的改写,所以这个理念一直流传下来。在UNIX系统中,所有资源都被视为文件,包括硬件设备。UNIX系统把每一个硬件都看成一个文件,通常称为设备文件,这样用户就可以通过读写文件来访问硬件。3.2文件类型和目录结构Linux支持5种文件类型:Linux目录结构如下:Linux文件系统结构层次清晰,像一棵倒置的树,最顶层是它的根目录:常用目录说明:/bin:存放二进制可执行文件(ls、cat、mkdir等),常用的命令一般都在这里;/etc:存放系统管理和配置文件;/home:存放所有用户文件的根目录,是用户家目录的基点,比如user用户的家目录是/home/user,可以用~user表示;/usr:用于存放系统应用程序;/opt:放置额外安装的可选应用程序包的位置。一般情况下,我们可以在这里安装tomcat等;/proc:虚拟文件系统目录,是系统内存的映射。可以直接访问该目录获取系统信息;/root:超级用户(系统管理员)的家目录(特权级^o^);/sbin:存放二进制可执行文件,只有root可以访问。这里存放着系统级的管理命令和系统管理员使用的程序。如ifconfig等;/dev:用于存放设备文件;/mnt:系统管理员安装临时文件系统的安装点。系统提供这个目录是为了让用户可以临时挂载其他文件系统;/boot:存放系统启动时使用的各种文件;/lib:存放与系统运行相关的库文件;/tmp:用于存放各种临时文件,是常用的临时文件存放点;/var:用于存放运行时需要更改的数据,也是一些大文件的溢出区,比如各种服务的日志文件(系统启动日志等);/lost+found:这个目录平时是空的,系统异常关机留下“noHomecoming”文件(windows下叫.chk)就在这里。四个Linux基本命令以下只是一些比较常用的命令。推荐一个Linux命令速查网站,非常好,如果忘记了一些命令或者不理解一些命令,可以在这里找到解决办法。Linux命令大全:http://man.linuxde.net/4.1目录切换命令cdusr:切换到本目录下的usr目录cd..(或cd../):切换到上层目录cd/:切换到系统根目录cd~:切换到用户主目录cd-:切换到上一级目录4.2目录操作命令(增删改查)mkdir目录名:添加目录ls或ll(ll是ls的缩写-l,ll命令查看本目录下所有目录及文件的详细信息):查看目录信息find目录参数:查找目录(勾选)示例:列出当前目录及子目录下的所有文件及文件夹:find.inthe/homedirectory查找以.txt结尾的文件名:find/home-name"*.txt"同上,但忽略大小写:find/home-iname"*.txt"查找所有以.txt和.txt结尾的文件当前目录和子目录以pdf结尾的文件:查找.\(-name"*.txt"-o-name"*.pdf"\)或查找.-name"*.txt"-o-name"*.pdf"mvdirectorynamenewDirectoryname:修改目录的名称(change)注:mv的语法不仅可以重命名目录还可以重命名各种文件,压缩包等。mv命令用于重命名文件或目录,或将文件从一个目录移动到另一个目录。mv命令的另一种用法将在后面介绍。mv目录名目录新位置:移动目录位置---剪切(更改)注意:mv语法不仅可以剪切目录,还可以剪切文件和压缩包。另外,mv和cp的结果是不一样的。mv好像把文件“搬走了”,文件的数量并没有增加。cp复制文件的同时,文件数量增加。cp-r目录名目录复制目标位置:复制目录(更改),-r表示递归复制注意:cp命令不仅可以复制目录还可以复制文件、压缩包等,复制时不要写-rrecursive文件和压缩包rm[-rf]directory:删除目录(delete)注:rm不仅可以删除目录,还可以删除其他文件或压缩包。为了加强大家的记忆,无论是删除目录还是文件,都可以直接使用rm-rf目录/文件/压缩包4.3文件操作命令(增删改查)touchfilename:filecreation(addition)cat/more/less/tail文件名文件查看(勾选)cat:只能显示最后一屏内容more:可以显示百分比,回车可以下一行,空格可以下一页,q可以退出查看less:可以使用键盘上的PgUp和PgDn上下翻页,q结束查看tail-10:查看文件后面第10行,Ctrl+C结束注:命令tail-ffile可以动态监控一个文件,比如tomcat的日志文件,随着程序的运行,日志会发生变化,可以使用tail-fcatalina-2016-11-11.log监控文件变化vim文件:修改内容文件(change)vim编辑器是Linux中一个强大的组件,它是vi编辑器的增强版。vim编辑器的命令和快捷键有很多,这里不一一阐述,大家也不需要研究透彻。您基本上可以使用vim来编辑和修改文件。在实际开发中,使用vim编辑器的主要功能是修改配置文件。大致步骤如下:vim文件------>进入文件-->命令模式------>按i进入编辑模式-->编辑文件------->按Esc进入底线模式----->输入:wq/q!(输入wq表示写入内容并退出,即保存;输入q!表示不保存强制退出。)tar和压缩命令通常以.gz结尾。一般情况下,打包和压缩是一起进行的,打包压缩后的文件后缀一般为.tar.gz。命令:tar-zcvf待打包压缩的压缩文件名其中:z:调用gzip压缩命令进行压缩c:打包文件v:显示运行进程f:指定文件名例如:加三test目录下的文件分别是:aaa.txtbbb.txtccc.txt,如果我们要打包test目录,指定压缩包名称为test.tar.gz,可以使用命令:tar-zcvftest.tar.gzaaa.txtbbb.txtccc.txt或:tar-zcvftest.tar.gz/test/2)解压压缩包:命令:tar[-xvf]压缩文件其中:x:代表解压示例:1将/test下的test.tar.gz解压到当前目录可以使用命令:tar-xvftest.tar.gz2将/test下的test.tar.gz解压到根目录/usr:tar-xvfxxx.tar.gz-C/usr(-C代表解压指定位置)4.5Linux权限命令操作系统中的每个文件都有特定的权限,所属用户,所属组。权限是操作系统用来限制对资源的访问的机制。在Linux中,权限一般分为三组:可读、可写和可执行。分别对应文件的所有者(owner)、组(group)和其他用户(other),通过这种机制来限制哪些用户、哪些组可以对特定文件进行某些操作。通过ls-l命令,我们可以查看某个目录下的文件或目录的权限。例:在任意一个目录下,ls-l第一列的信息解释如下:下面将详细解释Linux中的文件类型和权限以及文件的属主、属组、其他属组是什么?文件的类型:d:代表目录-:代表文件l:代表链接(可以认为是窗口中的快捷方式)Linux权限分为以下几种:r:代表权限是可读的,r可以也可以用数字4来表示w:表示权限是可写的,w也可以用数字2来表示x:表示权限是可执行的,x也可以用数字1来表示文件和目录权限的区别:对于文件和目录,read、write和execute意义不同。对于文件:权限名可以执行操作r可以使用cat查看文件内容w可以修改文件内容x可以将其作为二进制文件运行对于目录:权限名可以执行操作r可以查看目录下的列表directoryw可以创建和删除目录你可以用cd进入文件x下的目录。Linux中的每个用户都必须属于一个组,不能独立于组之外。在Linux中,每个文件都有所有者、组和其他组的概念。所有者通常是文件的创建者。创建文件的人自然成为文件的所有者。您可以使用ls-ahl命令查看文件的所有者。您也可以使用chown用户名文件名来修改所有文件。经过。文件所在的组用户创建文件时,文件所在的组就是用户所在的组。使用ls-ahl命令查看文件的所有组。也可以使用chgrpgroupnamefilename来修改文件所在的组。.其他组除文件的所有者和组的用户外,系统的其他用户是文件的其他组。我们来看看如何修改文件/目录的权限。修改文件/目录权限的命令:chmod例:修改/test下aaa.txt的权限,使属主拥有所有权限,属主所在组有读写权限,其他用户只有读取权限chmodu=rwx,g=rw,o=raaa.txt上面的例子也可以用数字来表示:chmod764aaa.txt添加一个比较常用的东西:如果我们安装了zookeeper,那么如果我们要求它在每次开机时自动启动?新建一个脚本zookeeper,为新建的脚本zookeeper添加可执行权限。命令为:chmod+xzookeeper在启动项中加入zookeeper脚本。命令为:chkconfig--addzookeeper如果想查看是否添加成功,命令为:chkconfig--list4.6Linux用户管理Linux系统是一个多用户多任务的分时操作系统。任何用户要使用系统资源,必须先向系统管理员申请一个账号,然后用这个账号进入系统。一方面,用户账户可以帮助系统管理员跟踪使用系统的用户,控制他们对系统资源的访问;另一方面,它们还可以帮助用户整理文件,为用户提供安全保护。Linux用户管理相关命令:useraddoptionusername:添加用户账号userdeloptionusername:删除用户账号usermodoptionusername:修改账号passwdusername:更改或创建用户密码passwd-Susername:显示用户账号密码信息passwd-dusername:清除用户密码useradd命令用于在Linux中创建新的系统用户。useradd可用于创建用户帐户。账号建好后,使用passwd设置账号密码。而userdel可以用来删除账号。使用useradd命令创建的帐户实际上存储在/etc/passwd文本文件中。passwd命令用于设置用户认证信息,包括用户密码和密码过期时间。系统管理员可以用它来管理系统用户密码。只有管??理员可以指定用户名,普通用户只能更改自己的密码。4.7Linux系统用户组管理每个用户都有一个用户组,系统可以集中管理一个用户组中的所有用户。不同的Linux系统对用户组有不同的规定。比如Linux下的一个用户属于一个同名的用户组,这个用户组是在创建用户的同时创建的。用户组的管理涉及用户组的添加、删除和修改。组的增删改查实际上是对/etc/group文件的更新。Linux系统用户组管理相关命令:groupaddoptionusergroup:添加新用户组groupdelusergroup:删除已有用户组groupmodoptionusergroup:修改用户组属性4.8其他常用命令pwd:display当前位置grepstringtosearchedfiletosearched--color:搜索命令,--color代表高亮显示ps-ef/psaux:这两个命令是查看系统当前运行的进程,两者的区别二是不同的显示格式。如果想查看具体的进程,可以使用这样的格式:psaux|grepredis(查看进程包括redis字符串)注意:如果直接使用ps((ProcessStatus))命令,所有进程的状态会是显示,通常结合grep命令查看某个进程的状态。kill-9processpid:杀死进程(-9表示强制终止。)先用ps找到进程,然后用kill杀掉网络通信命令:查看当前系统的网卡信息:ifconfig查看与某台机器的连接:ping查看当前系统的端口使用:netstat-anshutdown:shutdown-hnow:指定现在立即关机;shutdown+5"Systemwillshutdownafter5minutes":指定5分钟后关机,同时向登录用户发送警告信息。重新启动:重新启动:重新启动。reboot-w:模拟重启(只是记录不实际重启)。如果觉得我的文章对你有帮助,请关注我的微信公众号:《Java面试通关手册》(温馨微信公众号,无广告,纯技术分享,期待与你共同进步~~~坚持原创,分享美文,分享各种Java学习资源。)