Linux教程

Linux概述及命令总结

本文主要是介绍Linux概述及命令总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、什么是linux

Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。使用者不仅可以直观地获取该操作系统的实现机

制,而且可以根据自身的需要来修改完善Linux,使其最大化地适应用户的需要。Linux 系统主要是应⽤于服务器 和⼤型计算机领域。我们⽣活中的⼤部分的⽹⻚和 APP,其实都是基于 Linux 系

统运⾏的,这其中就包括我们经常 会使⽤的淘宝和微信。Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。Linux具有开放源码、没有版

权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。

2、Linux概述及命令

(1)bin:存放可执行的文件;

(2)dev:相当于磁盘;

(3)home:用户的主目录,在 Linux 中,每个用户都有⼀个自己的目录,⼀般该目录名是以用户的账号命名的,相当于windows的user文件夹;

(4)root:该目录为系统管理员,也称作超级权限者的用户主目录。

Linux登录账号 :

ssh 账户@服务器地址(ssh **@101.43.158.84 password: ******)

查询账户是否登录成功:

who am i

延时等待防止退出账户:

top 保证账户不退出,再次使用时输入q

查看命令:

(1)查看当前账户目录:pwd

(2)查看根目录:ls / ( / 表示根目录)

(3)查看所有文件,包括隐藏文件(.config .开头的):ls -a

(4)查看列表详细信息(只能查看非隐藏文件):ls -l

(5)仅查看文件目录(只能查看非隐藏文件, .表示当前目录):ls -d

(6)查看所有文件的详细信息(包含文件大小):ls -lh

(7)查看所有文件的详细信息(包含了隐藏文件):ls -la

(8)查看所有文件的详细信息以及文件大小和隐藏文件:ls -lah

别名alias

(1)查看别名:alias

(2)设置别名(把已有的命令ls -lah设置为a)alias a ="ls -lah"

(3)取消别名(取消别名a)unalias a

查看当前时间:date

创建文件:

(1)创建文件,如创建一个ww.txt的记事本:touch yl.txt

(2)树型目录,当你输入一个命令时如果出现以下命令提示,则表示需要安装:

[root@centos-mater ~]# tree

-bash:/user/bin/tree/:No such file or directory

那么如何安装呢?安装命令为:

安装树型目录:yum install tree

卸载树型目录:yum remove tree

img

img

(3)创建可视化的多层级的文件夹,如创建一个 a/b/c/d的多层级文件夹:mkdir -pv a/b/c/d,

其中-p:创建多层级的文件夹、-v:创建的过程可以可视化的看到。

(4)查看文件夹的目录层级,如查看a文件夹的目录层级:tree a(表示看a文件夹的所有目录层级)

(5)查看a文件夹的前n层目录层级,如查看前2个:tree -L 2 a

切换目录:

/ 代表根目录

. 代表当前目录

.. 进入当前目录的上一级目录

cd 返回到用户的根目录

(1)进入某个文件夹(如进入a文件夹):cd a

(2)进入当前文件夹,如当前文件夹为a:cd .

(3)进入当前目录的上一级目录,如当前在a文件夹:cd ..

(4)返回用户的根目录:cd

删除文件

(1)强制删除文件(如删除 ww.txt文件):rm -rf ww.txt

(2)询问确认删除文件,(如删除 we,txt文件): rm -i we.txt

(3)删除文件(可视化的只展示),如删除 a.py文件:rm -v a.py

(4)询问确认后再删除文件+可视化展示(如删除index.py文件):rm -iv index.py

删除目录:

(1)直接删除文件夹,(如删除a文件夹):rm -r a

(2)强制删除文件夹,强制删除,若目录不存在,此命令依旧可以执行,不报错,(如删除a文件夹):rm -rf a

(3)可视化的强制删除文件夹,(如删除a文件夹):rm -rv rm

(4)删除空的目录,(如删除e目录,首先进入e的上一级目录):rmdir e

复制

(1)复制文件:cp 文件名(源文件)文件名(定义复制后的文件名)

如:将index.txt 文件进行复制,复制后的文件命名为index.csv 命令如下:cp index.txt index.csv

(2)复制目录:就是把目录下的文件复制到另一个目录下

如:wrd文件夹下的目录的wr.txt文件复制到aa文件夹中,命令如下:cp wrd/c/b/wr.txt aa

剪切(移动):

(1)把一个文件剪切到一个文件夹下(移动后源文件不存在),mv 文件名(源文件)存放位置

如:把wr.txt 文件复制到wrd文件夹下的a目录中,命令为:mv wr.txt wrd/a

(2)把一个目录下的文件剪切到另一个文件夹下,mv文件储存位置/文件名 存放位置

如:把wrd文件下a目录的wr.txt文件移动到bb文件夹下的b目录下,命令如下:mv wrd/a/wr.txt bb/a/b

(3)修改文件(文件夹)名称,命令为:mv 文件位置/文件(文件夹)原名称 文件位置/文件(文件夹)修改后名称

如;将bb目录下的wr.txt修改为wr.csv命令为;mv bb/a/b/wr.txt bb/a/b/wr.csv

查看文件内容:

(1)正序查看文件所有内容:cat

具体命令为:cat -n/-A 文件名 (-n显示文件的所有内容并显示行数;-A显示文件所有内容但不显示行数)

(2)查看文件内容倒叙显示:tac,命令如下:tac 文件名

(3)一屏一屏的查看文件内容:more,按enter查看下一行或者空格键查看下一页,按q退出。具体命令为:more 文件名

(4)查看文件内容与more相似:less支持上下左右查看文件内容,具体命令为:less 文件名

(5)head是查看文件的前几行,具体命令为:head -n N(要看前几行)文件名

如:查看login.json 文件的前5行,命令如下:head -n 5 login.json

(6)tail 是查看文件的后几行,具体命令为:tail -n N(要看后几行)文件名

如:查看login.json 文件的后5行,命令如下:tail -n 5 login.json

(7)Linux中查看实时日志文件,具体命令为:tail -f 文件名

linux权限

文件权限

(1)r:表示读得权限(读的权限用数字4代表)

(2)w:表示写的权限(写的权限用数字2代表)

(3)x:表示执行的权限(执行的权限用数字1代表)

我们赋予权限都会用数字代替,比如要赋予 读写和执行的权力,我们就用7代替,读写的权限就用6代替,我们一般说的IO权限指的就是“读写权限”,我们赋予文件权限的命令为:chmod nnn 文件名(n表示权限的数字)

如:要赋予wr.txt 文件读写和执行的权限,命令为:chmod 777 wr.txt

文件权限详解:一个文件的基本权限就是3种用户身份(所有者、所属组、和其他人)其中u表示所有者(蓝色框),g表示所属组(绿色框),o表示其他人(红色框)a代表三种身份即a+g+o

(1)增加某一个用户的权限命令为:chmod 用户身份+用户权限字母 文件名

如增加所有者的写和执行的权限,命令为:chmod u+wx 文件名

(2)移除一个用户的权限命令为:chmod 用户身份-用户权限字母 文件名

如移除所有者的写和执行的权限,命令为:chmod u-wx 文件名

(3)设定文件的权限命令为:chmod=用户权限字母 文件名

如设定所属组的权限为读写和执行,命令为:chmod g-rwx 文件名

(4)默认权限umask

Linux 是注重安全性的操作系统,⽽安全的基础在于对权限的设定,不仅所有已存在的⽂件和⽬录要设定必要的访问权限,创建新的⽂件和目录时,也要设定必要的初始权限。umask默认权限是

由4位数组成,其中第一位数代表的是⽂件所具有的特殊权限(SetUID、SetGID、 Sticky BIT)。后面三位数则表示所有者(u)、所属组(g)和其他人(o)的权限,将其转变为linux显示的字⺟形式为-----w--w-。

在 Linux 系统 中,⽂件和目录的最⼤默认权限是不⼀样的,文件的最大权限时666,也就是读写;而目录的最大权限是777,也就是读写和执行。

资源产看

查看内存 free

(1)free命令默认是以KB为单位显示的,命令free -m/g表示单位以MB/GB显示;

(2)Mem行 : total = used + free 其中used为真实已占内存,free为真实可用内存,buffers和cached虽然计算在used内, 但其实为可用内存。

(3)Swap:内存交换区的使用情况。

在内存方面,我们着重需要注意的是total即总内存,used已占用内存和available即可用内存三部分。

ps auxw | head -1;ps auxw|sort -rn -k4|head -5 查看内存占用前五的进程

ps auxw|head -1;ps auxw|sort -rn -k3|head -3 查看cpu占用前三的进程

(1)top行:系统时间+系统运行时间+用户数+1/5/15分钟系统的平均负载(Load everage)。top行中我们需要着重关注的就是平均负载,那么什么是平均负载?平均负载是系统处于可运行状态和

不可中断状态的平均进程数,可以简单理解为平均活跃进程数。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。如系统只有一个CPU的时候,平均负载是2 ,那

么在理想状态下,就会有百分之50的进程抢占不到cpu。

(2)Taska行:进程总数(total)+正在运行的进程数(running)+睡眠的进程数(sleeping)+已经停止的进程数(stopped)+僵尸进程数(zombie)。

(3)%Cpu行:用户空间CPU占比(us)+内核空间CPU占比(sy)+CPU空置率(id)。

TOP详解

PID:进程ID

USER:用户名

PR:优先级

NI:负值表示⾼优先级,正值表示低优先级

VIRS:虚拟内存

RES:共享内存

SHR:真是内存

S:进程状态 D表示不可中断的睡眠状态; R表示运⾏; S表示睡眠 ;T表示跟踪/停止; Z表示僵尸进程

查询端口

计算机常用端口ssh:22、http:80、https:443、emial:25、mySQL:3306。在计算机中,运行中的服务,其端口就是被监听或者被占用,就会显示LISTEN。如果服务没有运行,就是没有被占用。

lsof命令

查询命令为:lsof -i:端口号

如查询80的端口

查询端口

查询命令为:

netstat -tunlp 查询所有端口

netstat -tunlp|grep 端口号 查询某一个端口

其中,-tunlp的含义如下:

t(tcp):仅显示tcp相关选项;

u(udp):仅显示udp相关选项;

n:拒绝显示别名,能显示数字的全部转化为数字;

l:仅列出在Listen(监听)的服务状态;

p 显示建立相关链接的程序名。

如:我们查询80端口,得到的结果我们需要关注信息如下:

(1)80的端口被监听(占用)

(2)80的端口被nginx应用程序占用

进程查看ps

进程是操作系统最基本的运行单位,线程是进程的最小运行单位。

进程的状态:

(1)开始启动

(2)启动中

(3)运行中:端口被占用(LISTEN)

(4)休眠/假死

(5)停止:端口未被占用

1、-aux 进程查看具体命令:ps -aux| grep 进程名称

如查看nginx的状态

(1)USER:启动该进程的用户账号名称;

(2) PID:该进程在系统中的数字 ID 号,在当前系统中是唯一的;

(3)%CPU:CPU占用的百分比;

(4) %MEM:内存的占用百分比;

(5) VSZ:占用虚拟内存(swap 空间)的大小;

(6) RSS:占用常驻内存(物理内存)的大小;

(7) TTY:表明该进程在哪个终端上运行:“ ?” 表示未知或不需要终端;

(8) STAT:显示进程当前的状态:S(休眠)、R(运行)、Z(僵死)、<(高优先级)、N(低优先级)、s(父进程)、+(前台进程);

(9) START:启动该进程的时间;

(10) TIME:该进程占用的CPU时间;

(11)该进程储存的位置。

我们一般关注的信息主要是进程的ID(PID)。

2、-elf 进程查看命令为:ps -elf |grep 进程名称

如查看nginx的状态:

结束进程

杀死某一个进程的命令:kill 9 PID

如杀死python3的进程:

img

编辑器vim

1、windows中创建记事本文件的方式:

(1)先创建文件,然后编写内容,最后保存;

(2)win+r,输入notepad,然后输入内容,最后保存。

2、linux中创建记事本文件的方式:

(1)先创建文件,然后vim 文件名称打开编写文件内容,最后保存。该方法需要提前创建文件,才可进行编辑。

(2)vim 文件名称。该方式不用提前创建文件,直接输入命令就会自行创建文件,点击代表edit的字母即可进行编辑。

3.1vim编辑文件

vim编辑文件的操作步骤:

1、打开通知台,连接linux,输入命令:vim 文件名称,打开要操作的文件或者创建文件

2、进入vim的编辑器后,输入a或者i

3、在最下栏就会显示insert/插入,那么就说明可以编写内容了

4、开始编写内容,编写完成后,开始保存步骤

5、先按下esc键,再按下shift+:

6、最后点击wq就是保存;如果不保存,那么输入的是q!

-vim快速修改文件

vim修改文件的操作步骤:

(1)vim 文件名称,进入文件编辑界面,输入命令:/修改的内容

(2)点击enter搜索需要修改的内容,然后点击a进行修改;

(3)修改结束后按照编辑文件的步骤进行保存和退出即可。

vim编辑器快捷键:

(1)enter:回车键换行;

(2)Del:删除光标所在的字符;删除键删除光标前一个字符。

(3)方向键:前后左右移动光标;

(4)Home/END:移动光标到行首/行尾;

(5)Page Up/Page Down:上下翻页;

(7)X:进入编辑页面后,点击x可以进行删除。

注意:在整个操作过程中需要特别注意的是,除了对内容做修改外,其他操作都需将输入法切换为英文。

文件查找

根据文件名查找find

精准搜索

(1)find / -name "要查找的文件名"

如查找nginx文件:

img

 

模糊搜索

(1)find / -name 要查找的文件部分文件名

如查找nginx文件:

(2)根据文件大小查找命令:find / -size 文件大小(以kb为单位)

如查找100MB的文件:find / -size 102400

(3)whereis 主要用于查看文件的存储位置,查看命令为:whereis 文件名

(4)在环境变量中文件的查找命令为:which 文件名

如查找nginx文件和查找ls

which主要用于在环境变量中进行查找。那么什么是环境变量呢?环境变量在互联网中常称做PATH,Windows中设置环境变量是在此电脑的属性中;linux中设置环境变量是在.bash_profile文件中设置。

输出echo命令

将想要输出的内容输出,输出命令为:echo“输出内容”

如想要输出“my name is wangrong"

输出printf命令

将想要输出的内容输出,输出命令为:printf“输出内容”

如想要输出“my name is wangrong"

在输出的内容中,我们可以通过\n来表示换行、\t来表示空格、%s来表示字符串、%d来表示整数数字、%f来表示带小数点的数字。

如:我们要输出以下内容:我的名字是云中君,我的年龄是1,我今天花的钱是30,可以有以下两种输入方式:

常用得数据类型:

int :整型数字(用%d代替)

str/string:字符串(用%s代替)

float:带小数点得数字(用%f代替)

Boolean:逻辑真假,(真true;假flase)

用户管理

管理员相关(root账户)

与管理员(root账户)相关的用户管理(即只有root账户可以进行的操作)

(1)用户创建

创建用户的命令为:useradd 用户名

(2)用户删除

删除用户的命令为:userdel 用户名

(3)修改密码

修改密码的命令为:passwd 用户名

切换用户 ,具体命令:su -用户名(用户名和-之间有个空格)

文件传输scp

不同终端之间Linux的文件传输,具体命令为:scp 文件名 账户名@101.43.158.84(服务器IP地址):/传到那个目录下

如把 wr.txt文件传输到某个服务器的ln账户的home目录下,具体命令为:scp wr.txt ln@101.43.158.84:/home/ln

文件压缩

1、zip压缩方式

zip的压缩方式特点是压缩和解压后源文件还会被保留,可以把多个文件压缩到一个压缩包中,zip可以压缩文件夹。

(1)压缩

zip方式压缩文件的命令为:zip定义压缩后压缩包的名称.zip需要压缩的文件名

如把wr.sh和w.txt文件压缩到yy.zip压缩包中:zip yy.zip wr.sh w.txt

(2)解压

zip方式解压压缩包的命令为:unzip 要解压的压缩包名称

如把yy.zip压缩包解压:unzip yy.zip

2、gz压缩方式

gzip的压缩方式特点是压缩和解压后源文件不会被保留,只能把多个文件分别进行压缩,gzip不能压缩文件夹。

(1)压缩

gzip方式压缩文件的命令为:gzip 要压缩的文件名

如把wr.sh文件压缩为wr.sh.gz压缩包:gzip wr.sh

(2)解压

gzip方式解压压缩包的命令为:gunzip 要解压的压缩包名称

如把wr.sh.gz压缩包解压:wr.sh

3、tar压缩方式

tar的打包命令选项:

(1)-c:打包

(2)-f:指定压缩包的文件名。压缩包的扩展名是用来给管理员识别的,所以一定要正确指定扩展名。

(3)-v:显示打包文件过程(-cf必须结合使用,-v可以选择性使用)

(1)压缩

tar方式压缩文件的命令为:tar -选项 定义压缩后的文件名.tar需要压缩的文件

如把wr.sh和w.txt文件压缩到yl.tar压缩包中:

(2)解压

tar方式解压压缩包的命令为:tar - 选项 压缩包名称,"tar"解压命令选项:

-x:解压包

-f:指定压缩包的文件名

-v:显示解压包文件过程(与压缩同理-cf必须结合使用,-v可以选择性使用)

如把yl.tar压缩包解压:tar -xf yl.tar

4、tar.gz压缩方式

(1)压缩

tar.gz方式压缩文件的命令为:tar -j选项 定义压缩后的文件名.tar.gz需要压缩的文件,其中的选项与tar方式一致。

如把wr.sh和w.txt文件压缩到wr.tar.gz压缩包中:

(2)解压

tar.gz方式解压文件的命令为:tar -j选项 压缩包名称,其中的选项与tar方式解压方式一致

如把wr.tar.gz进行解压:

Tomcat端口

tomcat是干什么的呢?

简单来说,通过tomcat我们可以部署java程序的环境,进而访问程序,tomcat的默认端口是8080。

tomact的下载

(1)下载tomcat时需要注意我们要下载core下的文件,下载tomcat的网址为:https://tomcat.apache.org/download-80.cgi

(2)找到要下载的文件后,鼠标右键剪辑文件,选择复制链接地址

(3)打开控制台,链接到linux服务器,然后下载文件即可,下载的命令为:wget 复制的链接地址。

环境部署步骤

java程序环境部署的过程(开发写的程序的访问过程):

(1)通过maven把程序打包成文件名.war,如index.war;

(2)把java程序的index.war包放到tomcat的Webapps下;

(3)启动tomcat

(4)通过网址:http://IP(:8080/文件名,就可以访问开发写的程序了。

实战练习

下载tomcat,然后修改端口并且找到程序的开始与停止的文件,操作步骤如下:

(1)点击下载文件的网站链接,进入后找到core下面的taz.gz压缩包;

img

(2)鼠标右键点击taz.gz,复制链接地址;

(3)打开控制台,链接linux后,下载压缩包,下载命令为:wget 复制的链接地址

(4)下载完成后进行解压,解压的命令为:tar -zxvf 压缩包名称;

(5)解压后进行端口修改的操作,操作步骤为:首先查询文件目录,然后进入conf目录下,编辑sever.xml文件,修改端口即可。

(6)最后进入到bin目录下,就可以看到程序的开始与停止的脚本。

tomact中目录的解读

bin:存放Tomcat的可执行文件,程序的开始与停止脚本就存放在bin目录中。

conf:存放Tomcat的配置文件,修改端口是在conf目录下的sever.xml中。

logs:存放Tomcat执行时的日志文件

lib:存放Tomcat运行需要的库文件

webapps:存放Tomcat的应用文件

temp:存放tomcat执行时的临时文件

1.1、场景:某个程序执行错误,如何查找错误信息?

如nginx执行时出错,找到的步骤:

(1)链接到nginx部署的服务器;

(2)文件查找,find / -name nginx,找到nginx的目录;

(3)进入到nginx(cd )的目录下,然后查看文件,找到logs,进入logs目录下,然后(pwd)查看当前目录;

(4)然后tail -f error.log就可以查看到实时的错误日志。

(5)截图给开发。

2.2、场景:tomcat启动不起来,如何查看日志排查错误信息;如果是端口(8080)被占用,如何修改默认端口?

解决步骤:

查找

(1)链接到tomcat部署的服务器;

(2)文件查找,find / -name tomcat,找到nginx的目录;

(3)进入到tomcat(cd )的目录下,然后查看文件,找到logs,进入logs目录下,然后(pwd)查看当前目录;

(4)然后tail -f error.log就可以查看到实时的错误日志。

(5)截图给开发。

修改

(1)从logs目录下返回到tomcat目录下(cd ..);

(2)然后查看ls目录,进入到conf目录下,找到sever.xml文件;

(3)vim编辑sever.xml文件,进入编辑页面后,/8080即可快速定位到要修改8080端口,然后点击a进行修改即可;

(4)修改结束后,点击esc,再点击shift+:后再输入wq进行保存和退出即可。

3.3、场景:创建一个.sh文件,然后令其执行时输出当前时间和root目录下的所有文件信息,包含隐藏文件。

操作如下:

(1)链接到linux服务器,登陆的是root账户;

(2)创建.sh文件,创建的命令为:touch 文件名;

(3)vim编辑器进入编辑页面进行编辑,命令为:vim 文件名(也可不先创建,直接这个命令进行创建和编辑),编辑的内容为:date 和 ls -la

(4)编辑成功后,按照vim保存步骤进行保存,然后查看文件内容

(5)内容写入成功后,赋予文件读写和执行的权限chmod 777 文件名

(5)最后输入命令./文件名 执行文件即可。

4.4、场景:如何快速定位程序的内存溢出错误?

可以找到日志文件(out of memory)?

(1)先找到程序的错误日志,进入日志所在的目录;

(2)使用vim编辑器,进入编辑页面,/out of memory 即可定位到错误位置。

如果日志被删除后,即找不到日志文件?

(1)运行出现内存溢出的程序;

(2)然后tail -f logs.txt查看实时日志即可。

这篇关于Linux概述及命令总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!