1,简单说明

Linux操作系统下:

  • 一切皆文件
  • 根目录“ / ” ,所有的文件都挂载在这个节点下

在这里插入图片描述


服务器中一些目录的说明:
在这里插入图片描述

  • /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令

  • /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。(不要动)

  • /dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

  • /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  • /home用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

  • /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。(不要动)

  • /lost+found:这个目录一般情况下是空的,当系统突然关机后,这里就存放了一些文件。

  • /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下

  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

  • /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。(不用管

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

  • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

  • /srv:该目录存放一些服务启动之后需要提取的数据

  • /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

  • /tmp:这个目录是用来存放一些临时文件的,用完即丢的文件可以放此处,如安装包

  • /usr/local:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录(很多程序都安装在此处)。

  • /usr/bin: 系统用户使用的应用程序。

  • /usr/sbin超级用户使用的比较高级的管理程序和系统守护程序

  • /usr/src: 内核源代码默认的放置目录。

  • /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。

  • /www:存放服务器网站相关的资源,如环境、网站项目

2,Linux基本常用命令

2.1,目录管理

2.1.1,列出目录(ls)

  • -a参数:查看全部文件,包括隐藏文件。a表示all

  • -l参数:列出除隐藏文件之外的所有文件,包含文件的属性和权限
    在这里插入图片描述

  • -al参数:想查看所有文件(包括隐藏文件)的属性和权限,就可以考虑组合使用
    在这里插入图片描述

2.1.2,切换目录(cd)

格式:cd 目录名。(目录名可以是绝对路径或相对路径)

  • 绝对路径以 “/” 开头
    在这里插入图片描述

  • 相对路径表示相对于当前目录
    在这里插入图片描述

  • cd / :回到根路径下
    在这里插入图片描述

  • cd ~:直接进入当前用户目录
    在这里插入图片描述

2.1.3,创建目录(mkdir)

mkdir 目录名:创建目录

mkdir -p xx/yy/zz:递归地创建层级目录,如下图:
在这里插入图片描述

2.1.4,删除目录(rmdir)

在这里插入图片描述

注意:rmdir命令不能删除不为空的文件夹
如果一定要删除则需要通过指定参数(rmdir -p xx/yy/zz),递归删除多个目录。
如下图:
在这里插入图片描述

2.1.5,复制文件或目录(cp)

格式:cp 原来的地方 新的地方

  • -i 参数:覆盖已有文件前,提示用户确认,是否进行覆盖。
  • -r 参数:递归复制目录,即复制目录下所有层级的子目录及文件。

①复制文件:
在这里插入图片描述

复制之后如果再次复制会询问是否覆盖,如下图:
在这里插入图片描述

②复制目录:
在这里插入图片描述
-r 表示递归的意思。 此处为递归复制。

2.1.6,移除文件或目录(rm)

  • -f参数:忽略不存在的文件(强制删除,不出现警告)。f表示force
  • -r参数:递归删除目录
  • -i参数:互动,询问是否删除。i表示interaction

删除文件时经常把rf结合起来使用,如下图:
在这里插入图片描述

rm -rf /*:r、f两参数结合表示删除系统根目录下的所有内容。即删库跑路!!!不建议使用。

2.1.7,移动、重命名文件或目录(mv)

  • -f参数:表示强制移动,不出现警告
  • -u参数:复制过去如果重复,则只替换已经更新过的文件

移动disk.pl文件到server目录下,如下图:
在这里插入图片描述

移动回去,如下图:在这里插入图片描述

mv命令还可以重命名文件。如下图:
在这里插入图片描述


2.2,文件属性查看和修改

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

2.2.1,文件属性介绍

文件详细属性查看,以下两种方式都可以:

  • ll
  • ls -l

我们在上面已经介绍了ls-l命令查看文件属性,如下图:
在这里插入图片描述

上面最左侧第一列是十个字符。

其中第一个字符代表这个文件是目录还是文件或是链接文件等等:

  • 第一个字符为 d 说明是文件目录(directory)
  • 第一个字符为 l 说明是一个链接文档(link)
  • 第一个字符为 - 则说明是文件
  • 第一个字符为 b 则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 )
  • 第一个字符为 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )

接下来的9个字符中,以三个为一组分为三组,且均为 rwx 的三个参数的组合:

  • 其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)
  • 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 -
文件类型属主权限属组权限其他用户权限
01 2 34 5 67 8 9
dr w xr-xr-x
目录文件读 写 执行读 - 执行读 - 执行

如上表示的意思是:

  • 属主权限:root用户权限可读可写可执行
  • 属组权限:游客组,管理组可读可执行
  • 其他用户权限可读可执行

2.2.2,修改文件属组(chgrp)

修改文件属组格式:chgrp -R 属组名 文件名(chgrp即change gooup
在这里插入图片描述

递归修改www目录属组为root:chgrp -R root www,如下图:在这里插入图片描述
其中-R:递归更改文件属组,在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

2.2.2,修改文件属主(chown)

修改文件属组格式:chown -R 属主名 文件名(chown即change owner
在这里插入图片描述

递归修改www文件夹的属主为root:chown -R root www,如下图:
在这里插入图片描述

如何把属组和属主改回来:

chown可以同时修改属主和属组!!!:chown -R 属主名:属组名 文件名

使用命令:chown -R www:www www
在这里插入图片描述

2.2.3,更改文件的九个属性(chmod)

使用chmod修改文件的后9个属性(后三组属性)
在这里插入图片描述
此时如果想要更改属性,也是可以的,使用的就是chmod

Linux文件属性有两种设置方法,一种是数字,一种是符号。


①使用数字更改属性(常用)

  • r:4
  • w:2
  • x:1

如果想要设置所有用户均为可读可写可操作(rwxrwxrwx),即使用chmod 777 文件名

其中每一个7都代表rwx三个的值相加。如数字6则代表可读可写不可执行(rw-)

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[rwxrwx- - -] 分数则是:

owner = rwx = 4+2+1 = 7

group = rwx = 4+2+1 = 7

others= --- = 0+0+0 = 0

使用命令:chmod 770 filename

演示:
在这里插入图片描述

2.3,文件查看命令

扩展:

  • CentOS 7的网络配置目录为:etc/sysconfig/network-scripts
  • Linux下使用ifconfig命令查看网络配置

2.3.1,可用于读取文件内容

cat:从第一行开始显示文件内容。如下图:
在这里插入图片描述

tac:(可以看出tac是cat倒着写得来的),表示从最后一行开始显示文件内容,如下图:在这里插入图片描述

nl:显示的文件内容,并顺道输出行号(如看代码的时候希望显示行号,可以使用此命令),如下图:
在这里插入图片描述

more:分页的显示文件内容

  • 空格键代表翻页
  • 回车代表向下走一行
  • :f 命令代表显示当前行号
  • q 代表立刻退出more,不再显示文件内容
  • b表示往回翻页(只对文件有效)

less与more类似,但是比more更好的是,它可以往前翻页(建议使用)

  • 空格向下翻页
  • 上下键代表翻动页面
  • 使用q退出less
  • /字符串:向下搜索字符串(使用n键向下寻找一个;使用N键向上寻找一个)
  • ?字符串:向上搜索字符串(使用n键向下寻找一个;使用N键向上寻找一个)

head:只看头几行。(语法:head -n number 文件
通过 -n参数来控制显示几行。 如下图:
在这里插入图片描述

tail:只看尾几行(语法:tail -n number 文件),与head类似。如下图:
在这里插入图片描述


3,硬链接和软链接

在这里插入图片描述

Linux链接又分为两种:

  • 硬链接(Hard Link):假设B是A的硬链接,则它们两个指向同一个文件!允许一个文件拥有多个路径。如A文件比较重要,怕被误删;可以设置一个硬链接,则A即使被删除了还有B存在。这样用户就可以建立硬连接到重要文件,以防止“误删”。
  • 软链接(Symbolic Link):也叫符号链接。类似于Windows下的快捷方式。删除了源文件,软链接也无法访问。

创建硬链接(ln 命令):
在这里插入图片描述
注意:touch命令可以用于创建文件

创建软链接(ln -s):
在这里插入图片描述
在这里插入图片描述

echo命令:向文件里输入字符串:

往源文件f1中写入,字符串“i love woniu”后,链接过去的文件f2,f3内容都发生了改变,如下图:
在这里插入图片描述


删除f1文件:

删除后源文件f1之后发现,f2(硬链接还可以继续访问);f3(软链接会失效,软链接类似windows中的快捷方式),如下图:
在这里插入图片描述

4,Vim编辑器的使用

  • Vim是从 vi 发展出来的一个文本编辑器
  • Vim中代码补完、编译及错误跳转等方便编程的功能特别丰富,在Linux在程序员中被广泛使用
  • Vim中查看内容、编辑内容和保存内容十分重要

vim 文件名:如果此文件存在,就进入修改此文件;如果文件不存在,就会新建此文件

通过vim linuxstudy.txt 创建一个linuxstudy.txt文件
在这里插入图片描述


基本上 vi/vim 共分为三种模式,分别是命令模式输入模式底线命令模式


通过例子理解三种模式:

①用户刚进入Vim即进入了命令模式,如下图:
在这里插入图片描述

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

  • 使用i 键表示切换到输入模式,以输入字符

  • : 表示切换到底线命令模式,以在最底一行输入命令

  • x键 表示 删除当前光标所在处的字符

②在命令模式中使用 i 键进入输入模式(insert),如下图:
在这里插入图片描述

③命令模式下使用 :进入底线命令模式,如下图:

使用esc键:从输入模式切换回命令模式
在这里插入图片描述

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

  • q 退出程序

  • w 保存文件

使用wq组合可以表示存档并退出
使用q!组合可以表示不存档并退出

按ESC键可随时退出底线命令模式。

以上的一个完整流程可以叙述为:
①先新建或编辑文件(vim),按 i 进入编辑模式
②编写内容,编写完成后退出编辑模式(esc)
③退出编辑模式之后进入底线命令模式
④输入:wq表示保存并退出

一些比较重要的vim命令:

  • :set nu:设置行号,代码中常用
  • :set nonu:于set nu相反,为取消行号
  • :数字加空格:快速切换光标位置
  • /word :向光标之下寻找一个名为word的字符串
  • n:向下寻找一个(和/word搭配)
  • N:向上寻找一个(和/word搭配)
  • :u:撤销上一步操作
  • ctrl + r:恢复上一步被撤销的操作

5,Linux账号管理

公司中,一般员工用的应该都不是root用户。

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

5.1,添加用户(useradd)

useradd -选项 用户名:添加用户

其中选项有很多,如:

  • -m:自动创建这个用户的主目录。如创建用户名hzbhzb,就会在home目录下创建此目录 在这里插入图片描述

  • -c: comment ,指定一段注释性描述

  • -g: group用户组 ,指定用户所属的用户组

  • -G:用户组,指定用户所属的附加组

  • -s:Shell文件 指定用户的登录Shell

  • -d:目录, 指定用户主目录。如果此目录不存在,则同时使用-m选项,可以创建主目录。


Linux中一切皆为文件,这里的添加用户说白了就是往某一个文件(/etc/passwd)中写入了用户的信息!如下图:

每条信息显式的格式为:

用户名 : 口令(登陆密码不可见): 用户标识号 : 组标识号 : 注释性描述 : 主目录 : 登录shell
在这里插入图片描述


5.2,删除用户(userdel)

删除用户的时候一般将他的目录也一并删除(通过 -r 参数指定)
在这里插入图片描述

删除之后,配置文件/etc/passwd中的hzbhzb记录也被删除。

5.3,修改用户(usermod)

修改账户常见参数(和useradd的一样):

  • -m:自动创建这个用户的主目录。如:创建用户名hzbhzb,就会在home目录下创建此目录

  • -c: comment ,指定一段注释性描述

  • -g: group用户组 ,指定用户所属的用户组

  • -G:用户组,用户组 指定用户所属的附加组

  • -s:Shell文件 指定用户的登录Shell

  • -d:目录, 指定用户主目录。如果此目录不存在,则同时使用-m选项,可以创建主目录。

通过useradd添加一个hpu用户后,对其进行如下修改(通过-d指定用户主目录),如下图:
在这里插入图片描述
注意:此操作需要提前在home目录中创建233文件夹

5.4,切换用户(su)

su hpu :切换搭到hpu用户,如下图:在这里插入图片描述

还可以通过exit退回root用户,如下图:
在这里插入图片描述


注意:
在阿里云买完服务器连接之后主机名为一串无规则字符,如下图:
在这里插入图片描述
此主机名可以进行查看和临时修改(彻底修改需要去文件里改):

  • hostname:查看主机名
  • hostname 新主机名:把主机名临时修改为新主机名
    在这里插入图片描述
    在这里插入图片描述

5.5,用户的密码设置问题(passwd)

我们一般通过root创建用户的时候,需要配置密码!

①root权限给用户设置密码(passwd 用户名),如下图:
在这里插入图片描述

这时,再新建连接时,使用hpu就需要刚才设置的密码才能连接。

②在hpu用户权限下,修改密码(passwd),如下图:
在这里插入图片描述

5.6,锁定账户

锁定用户场景:root权限下,比如张三辞职了!需要冻结此账号,一旦冻结张三就不能再登录系统了。

通过命令:passwd -l hpu (其中l代表lock)
在这里插入图片描述

锁定之后,相应用户就无法登陆此服务器。

公司中一般员工拿不到root权限

6,Linux用户组管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(运维,测试,开发,root)。

6.1,增加用户组(groupadd)

创建名为hhh的用户组,如下图:
在这里插入图片描述

查看用户组在 /etc/group,如下图:
在这里插入图片描述
在这里插入图片描述

其中,groupadd可以指定选项:

  • -g 组id: 添加用户的时候,指定新用户组的组标识号(组id)
    在这里插入图片描述
    在这里插入图片描述
    注意:如果组id不指定,默认是较上条记录自增1。

  • -G:添加用户的时候,给用户分配组

  • -o :一般与-g选项同时使用,表示新用户组的组id可以与系统已有用户组的组id相同

6.2,删除用户组(groupdel)

删除hhh2,删除之后查看 /etc/group 就没有hhh2的记录了
在这里插入图片描述

6.3,修改用户组(groupmod)

  • -g 组id :为用户组指定新的组标识号

  • -o 与-g选项同时使用:用户组的新组id可以与系统已有用户组的组id相同

  • -n 新用户组 :将用户组的名字改为新名字。n表示name

组id改为666,组名字改为newhhh,如下图:
在这里插入图片描述在这里插入图片描述

7,Linux磁盘管理

7.1,df命令

df命令:(列出文件系统整体的磁盘使用量),可以结合以下一些选项使用:

df命令常见选项:

  • -h:以易于阅读的MB、GB、KB等为容量单位进行查看
  • -k :以 KB 的容量显示各文件系统
  • -m :以 MB 的容量显示各文件系统
  • -a :列出所有的文件系统,包括系统隐藏的
  • -H :以 M=1000K 取代 M=1024K 的进位方式
  • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出

在这里插入图片描述
在这里插入图片描述

7.2,du命令

du命令(检查磁盘空间使用量),可以结合以下一些选项使用:

  • -a:显示全部,包括隐藏的
  • -s :列出总量而已,而不列出每个各别的目录占用容量
  • -S :不包括子目录下的总计,与 -s 有点差别
  • -m :以 MB 列出容量显示;
  • -k :以 KB 列出容量显示;
  • -h :以人们较易读的容量格式 (G/M) 显示;

在这里插入图片描述在这里插入图片描述

7.3,磁盘的挂载(mount)和卸除(umount)

在这里插入图片描述
挂载使用mount命令:

  • mkdir /mnt/kuang:表示创建目录kuang
  • mount /dev/hhh /mnt/kuang:表示把/dev/hhh挂载到/mnt/kuang下

卸除使用umount命令:(可用通过-f表示强制卸除)

  • umount -f /dev/hhh

8,Linux进程管理

  • Linux中每一个程序都有一个进程,每一个进程都有一个id。
  • 每一个进程都有一个父进程
  • 进程可以有两种存在方式:前台、后台
  • 一般服务都是后台运行的,基本的程序都是前台运行的!

8.1,查看当前系统中正在执行的进程信息(ps)

①可用通过ps -help 或 man ps查看此命令的帮助信息

②在Linux中 “|” 被称为管道符,A|B表示A命令的结果作为输出操作B命令

ps命令,参数选项如下:

  • -a :显示当前终端运行的所有进程信息
  • -u :以用户的信息显示进程
  • -x :显示后台运行进程的参数

ps -aux:查看所有的进程

grep表示查找文件中符合条件的字符串。
ps -aux|grep mysql:只查看MySQL相关的进程。表示把所有的进程都查出来,然后过滤其他的。 (此类命令需要经常使用)
在这里插入图片描述

8.2,查看父进程信息(pstree)

查看父进程信息(pstree),常用参数如下:

  • -p 显示id
  • -u 显示用户组

pstree -pu :就可以清楚的查看父进程信息(树状显示)
在这里插入图片描述

8.3,结束进程(kill)

如果平时写的Java代码死循环了,就可以结束进程!

kill -9 进程id:表示强制停止相应的进程

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐