当前位置:   article > 正文

Linux学习笔记(入门级,简单易理解)

Linux学习笔记(入门级,简单易理解)

Linux学习笔记

(基于CentOS,Ubuntu也适用,但有些指令和目录结构有一定区别)

一、基础

VM软件,是一个安装在母机上的虚拟机软件,这个软件很神奇,能创建虚拟机空间(用的是母机的硬盘空间),然后在此空间上安装合适的操作系统,则这个软件便能模拟一个指定操作系统的主机。Linux常见的发行版Ubuntu,CentOS

实际开发中linux全用命令行开发,利用终端。图形界面不用

1. VMTools

一个软件,辅助开发的,通过设置可以让虚拟机与主机共享某一个文件夹,虚拟机设置里边有一个选项,选择共享文件夹,指定路径即可 (一般通过远程方式完成主机和虚拟机的通信,这种共享文件的方式暂时了解即可)

2. Linux目录结构

Linux目录是树状目录结构,根目录唯一,用“/”表示,不区分盘符。

在Linux世界里,一切皆为文件,包括硬件

bin dev home root等是根目录的目录,这种目录都是有讲究的,不同的目录存放不同的文件,不用乱放文件,至于各个文件目录下存放什么内容,需要牢记,这是重点

Linux目录结构

二、实操

1. 远程登陆远程服务器

在实际开发中,Linux主机是一种高性能的服务器,一般是在机房甚至租的服务器,作为开发人员,根本不能实际操纵,只能通过远程连接,远程连接默认就是终端,在终端中输入命令行达到控制主机,进行开发的目的。

有一个软件能支持远程登陆到服务器,Xshell5,windows系统现在有一个SSH命令,也能远程连接。

Xftp5 远程上传下载文件,了解即可

2. vi和vim编辑器

3. 用户管理

户的管理必须在root用户下进行

1.创建用户

useradd [选项] 用户名

useradd xm 或者 useradd -d /home/dog xq 利用 passwd xm 来指定用户密码

若不指定用户所在组,创建用户会自动在home目录下生成与用户名一样的组,用户就在这个默认的用户组中。可以用 -d 选项指定创建用户的家目录

2. 删除用户

userdel [选项] 用户名

userdel xm 或者 userdel -r xq

前者只删除这个用户,而不会删除该用户的家目录,删除后的用户不能再登录使用主机;是把用户及其家目录全删除了。

3. 查询用户

id 用户名
返回值:
uid=用户id
gid=用户所在组的id
组=组名称(一般为数字id)

4.切换用户

su - 切换到的用户名

权限高的用户切换到权限低的时候,不需要输入指定用户的密码,反之需要密码
当操作结束,需要返回原来的用户时,可以直接利用exit

whoami 能查询当前是哪个用户

5. 用户组操作
①用户组和用户

创建:groupadd 组名

删除:groupdel 组名

创建用户组,是为了把某些具有一致性的用户组织起来,创建用户时,利用 -g 选项可以将用户放置到指定组

groupadd wudang

useradd -g wudang zwj

同样也可以对用户的组进行修改:

groupadd shaolin

usermod -g shaolin zwj

②用户组和文件
  1. 用户配置文件 /etc/passwd
  2. 口令配置文件/etc/shadow
  3. 组配置文件 /etc/group
    每行包含很多不同信息,通过:隔开

4. 常用命令

1. 运行级别

linux有七个运行级别 :

  1. 关机
  2. 单用户(找回丢失密码时使用)
  3. 多用户无网络服务
  4. 多用户有网络服务
  5. 保留(目前未启用)
  6. 图形界面
  7. 重启

运行级别3,由于不是图形界面运行级别,故没有界面,通过终端命令行进行操作

/etc/inttab 为运行级别配置文件

常用运行级别是3和5,也可以修改文件的运行级别,这运行级别是整个机器的运行级别,所有的操作都基于运行级别

切换运行级别:init [0 1 2 3 5 6 ]

2. 帮助指令

linux官方对其所支持指令的用法介绍

man [命令或配置文件] man就是manual,翻译为使用手册

help [命令]

3. 文件目录类指令

pwd 显示当前工作目录绝对路径

ls 【选项】 【目录或者文件】 显示当前工作目录文件和目录列表

​ 常用选项: -a -l

cd 【目录或者文件】 切换工作目录

绝对路径:必须以根目录*/*开头,从根目录开始定位

相对路径:从当前工作目录开始定位

常用 cd ~ 返回家目录 cd … 返回上一级目录 ./ 表示当前工作目录

mkdir [选项]【目录名】 用于创建空目录(linux的目录在一定程度上与windows的文件夹类似)

-p 创建多级目录

rmdir [选项]【目录名】 删除空目录

rm -rf 删除非空目录,即要删除的目录里边包含子目录或者文件,则必须使用-rf

touch [文件名.文件后缀] 创建空文件

可一次性创建多个文件 用空格隔开

cp [选项] source dest 拷贝文件或目录到指定目录

-r 递归复制整个目录 拷贝的不是单文件,而是目录时,必须使用此选项

\cp 会自动强覆盖

rm [选项] 文件或目录 删除文件或目录

用选项: -rf 递归删除整个目录 -f 强制删除不提示

mv移动文件/目录或重命名

重命名: mv 文件名1 文件名2 则完成对文件1的重命名

移动: mv 文件 指定目录

注意:

重命名其实也是从通过移动完成的,只要两个文件在同一个文件夹

mv是移动,即移动成功后,原目录不再存在被移动的文件,而cp是复制,mv类似剪切操作

cat [选项] 文件 查看文件内容 只能浏览,不能修改,默认全部显示 ;一般会带上 | more 用来分页显示

cat -n /etc/profile | more

-n 显示行号

more 文件 查看文件内容 只能浏览,不能修改,分页显示

more etc/profile

  1. less 文件查看文件内容 只能浏览

根据需要加载文件 而不是把整个文件读入,对于大型文件具有很高效率

  1. >指令 和>>指令 输出重定向和追加

重定向:会将原来文件内容覆盖

追加:不会覆盖原文件,而是追加内容

举例:

ls -l > a.txt

ls -l >> b.txt

cat 文件1 > 文件2 (将文件1内容覆盖写入文件2)

echo “要写入的内容” >> 文件 (追加写入)

cal 日历指令

  1. echo [选项] [输出内容] 输出内容到控制台
  2. head [选项] [文件] 显示文件开头部分,默认前10行

-n 5 查看前五行

  1. tail [选项] [文件] 显示文件末尾部分,默认后10行

-n 5 显示后五行 -f 实时追踪该文档的所有更新,实时追踪文件的改变 实际开发中很常用

  1. ln -s[原文件或目录] [软链接名] 给原文件创建一个软链接,类似windows里边的快捷方式

删除软链接与删除目录一样,利用rm -rf

  1. history 查看已经执行过的历史命令,默认显示所有,可以在后边跟数字,显示指定数量的历史记录, history 10 即显示最近执行的10条指令 !178 执行历史第178条指令
4. 时间日期类指令
  1. date 显示当前时间

可在date后边添加格式, %Y年 %m 月 %d 日 %H 时 %M 分 %S 秒 但必须有"+"

date “+%Y-%m-%d” 其中-只是表示分隔符,可以任意指定,甚至是汉字

date -s “2018-10-1 11:22:22” 设置当前系统时间

  1. cal 默认显示本月日历信息 cal 2023 显示2023年日历信息
5. 搜索查找类指令
  1. find [搜索范围] [选项] 从指定目录向下递归遍历各个子目录,将满足条件的文件或目录显示在终端

-name 按名称查询 find /home -name hello.txt 按名字查找可以使用通配符 常用通配符 *代表任意字符串,?代表单个字符

-user 按用户查找 find /opt -user root 显示opt目录下属于root用户或用户名称为root的所有文件和目录

-size 按文件大小查找 find / -size +20M 在根目录下找到大于20M的文件和目录 -20M 表示小于20M 只写一个20M 表示等于20M

  1. locate [文件] locate指令可以快速定位文件路径 但需要事先建立locate数据库,并需要定期更新

updatedb 指令用来创建locate数据库,至于updatedb怎么创建的数据库不需要了解.在首次利用locate指令前,必须使用updatedb

  1. grep [选项] 查找内容 源文件 过滤查找,准确说查找指定内容

管道符 “|” 将前一个命令的输出传递给后面的命令处理 管道符左右两边都是指令

-n 显示匹配行及行号

-i 忽略字母大小写

6. 压缩/解压缩类指令
  1. gzip 文件 /gunzip 文件.gz 前者压缩文件为.gz 后者解压缩文件

gzip 压缩后源文件消失 gzip /home/hello.txt -> hello.txt.gz

  1. zip 文件 /unzip 文件.gz 前者压缩文件为.zip 后者解压缩文件

zip [选项] xxx.zip 要压缩的文件 压缩文件或目录 unzip [选项] xxx.zip 解压缩

zip的选项 :-r 递归压缩,即压缩目录

unzip选项: -d 指定解压缩到的目录

  1. tar指令 打包指令,打包为.tar.gz文件

tar [选项] XXX.tar.gz 要打包的内容*

-x 解包.tar文件,提取文件

-f 指定压缩后的文件名

-z 打包同时压缩,其实就是windows的压缩

-c 创建新的压缩归档

-v 显示详细信息

打包指令 tar -zcvf 打包后的文件名 要打包的内容

解压缩指令 tar -zxcf 要解压的内容 -C [指定解压目录] 若未指定目标目录,则默认解压到要解压的文件的目录下 即解压到当前目录

5. 组管理和权限管理

1.组管理

Linux中每个用户必须属于一个组

Linux中每个文件有三个属性: 所有者, 所在组, 其它组

查看文件所有者: ls -ahl

修改文件所有者: chown 用户名 文件名 -R选项可以递归改变整个目录下的文件和目录所有者

修改文件所在组: chgrp 组名 文件名

2.权限管理
1. 权限介绍

在这里插入图片描述

2. rwx权限详解

在这里插入图片描述

3. 权限管理
1. 修改权限

在这里插入图片描述

在这里插入图片描述

2.修改所有者

在这里插入图片描述

3.修改所在组

chgrp newgroup file 改变文件的所有组

同样可以使用-R 选项将目录下的所有文件和目录所在组修改

6. 任务调度

对于实际开发人员很实用,但作为入门学习,可以先做了解,不做细入研究.系统在某个时间执行的特定的额命令或程序,比如说定期更新某些数据,或者日志追加等

1. crontab
①简单任务

-e 编辑crontab定时任务

-l 查询crontab定时任务

-r 终止任务调度

service crond restart [重启任务调度]

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

②复杂任务

在这里插入图片描述

7. 磁盘分区和挂载

1. 磁盘分区

在这里插入图片描述

1. Windows下磁盘分区

在这里插入图片描述

2.Linux下磁盘分区
Linux硬盘说明

Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘

对于 IDE 硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指 IDE 硬
盘了。“x”为盘号(a 为基本盘,b 为基本从属盘,c 为辅助主盘,d 为辅助从属盘),“~”代表分区,
前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区。例,hda3 表示为第一个 IDE 硬盘上的第三个主分区或扩展分区,hdb2 表示为第二个 IDE 硬盘上的第二个主分区或扩展分区。

对于 SCSI 硬盘则标识为“sdx~”,SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则
和 IDE 硬盘的表示方法一样。

②分区介绍

Linux 无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux 中每个分区都是用来组成整个文件系统的一部分。

再次回顾经典:Linux,一切皆为文件

Linux 采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。

在这里插入图片描述

2.磁盘情况查询实用指令

①df -lh 查询系统整体磁盘使用情况

②du -ach 查询某个目录的磁盘占用情况

-c 显示汇总值

-a 显示文件

–max-depth=1 指定子目录深度,即查询到第几级子目录

③ls -l /home | grep “^-” | wc -l 统计home目录下文件个数,不包括子目录下的

④ls -l /home | grep “^d” | wc -l 统计home目录下目录个数

⑤ls -lR /home | grep “^-” | wc -l 统计home目录下文件个数,包括子目录下的文件

⑥ls -lR /home | grep “^d” | wc -l 统计home目录下目录个数,包括子目录下的文件

⑦tree 用树状图形式展示目录结构 (yum install tree 安装tree指令),指令安装都可以用yum

8.网络配置

1.自动获取ip

具体操作可以自行搜索,但这种方式每次重启开机ip地址都是随机分配的,因此不能用作服务器,因为远程连接服务器需要输入ip地址,故不做详细介绍.

2. 配置固定ip地址

直接修 配置文件指定IP,并可以连接到外网 ( 程 序 员 推 荐 ) ,编 辑 vi/etc/sysconfig/network-scripts/ifcfg-eth0

在这里插入图片描述

修改后,一定要重启网络服务 service network restart,重启主机也可以但没必要

9.进程管理

在 LINUX 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个 ID 号。每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如 www 服务器。

每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进
行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行.一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

1. 查看进程

ps -aux | more 查看系统进程状况, 也可以不加参数 a参数代表all,u代表用户格式,x代表显示隐藏进程

pstree -pu 用树状形式显示进程

在这里插入图片描述

2. 终止进程

kill [选项] 进程号(PID) 通过进程号杀死进程

killall 进程名称 通过进程名称杀死进程,支持**通配符**

选项: -9 强制终止

3.服务(service)管理

服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请
求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程.

服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请
求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,

1.查看服务

setup 命令 或者访问 /etc/init.d/目录 ls -l /etc/init.d/

2.服务管理

service 服务名 [start | stop | restart | reload | status] 若不支持service,尝试systemctl命令

service sshd/iptables status 查看远程连接服务/防火墙服务 的运行状态

注意: service 命令对服务立即生效,但只是临时生效,重启主机后服务仍为其默认模式

chkconfig 可以给每个服务的各个运行级别设置自启动/关闭,即设置默认状态

chkconfig --list | grep 指定服务 或者 chkconfig 指定服务 --list查看服务及其在各个运行级别下的默认状态

chkconfig --level 5 服务名 on/off 设置指定服务在指定运行级别下的默认状态

注意:由于chkconfig是修改服务的默认状态,因此需要重启主机后才能生效,而且是永久生效,除非再次进行修改,可以结合service使用,比如默认是关闭,如果此时需要该服务,可以利用service 从而不需要重启主机.

注:Ubuntu版本并不存在chkconfig指令,注意区分

4.动态监控进程

top [选项]

top 与 ps 命令很相似。它们都用来显示正在执行的进程。top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程。默认3秒刷新进程状态.

在这里插入图片描述

输入top命令后,显示如下界面

在这里插入图片描述

此时可以键入u,然后回车,输入指定用户,可动态监控指定用户的进程,同样键入k,回车,再输入进程ID,可杀死进程

5.查看系统网络情况

netstat [选项]

常用选项: netsat -tunlp; netsat -anp

10. 包管理(RPM和 YUM)

1. RPM

一种用于互联网下载包的打包及安装工具,它包含在某些 Linux 分发版中。它生成具有.rpm扩展名的文件。RPM 是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 windows的 setup.exe,这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。

①查询包的指令

rpm –qa | grep xx 查询已安装的 rpm 列表

rpm -q 软件包名 查询软件包是否安装 例:rpm -q firefox 查询火狐软件包是否安装

rpm -qi 软件包名 查询软件包信息

rpm -ql 软件包名 查询软件包中的文件安装路径

rpm -qf 文件全路径名 查询某个文件属于哪个rpm包

②安装包

rpm -ivh RPM包全路径名称 安装指定rpm包 i代表install v=verbose表示提示 h=hash表示进度条

注意:安装之前先要找到要安装的rpm包的位置,然后进入所在目录,输入对应指令安装

③卸载包

rpm -e RPM包的名称 卸载指定RPM包 例: rpm -e firefox

如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行

2.YUM(更常用)

Yum 是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用 yum 的前提是可以联网。

①基本指令

yum list | grep xx 查询yum服务器是否有需要安装的软件包 yum list | grep firefox

yum install xxx 下载安装软件包
m -ivh RPM包全路径名称** 安装指定rpm包 i代表install v=verbose表示提示 h=hash表示进度条

注意:安装之前先要找到要安装的rpm包的位置,然后进入所在目录,输入对应指令安装

③卸载包

rpm -e RPM包的名称 卸载指定RPM包 例: rpm -e firefox

如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行

2.YUM(更常用)

Yum 是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用 yum 的前提是可以联网。

基本指令:

yum list | grep xx 查询yum服务器是否有需要安装的软件包 yum list | grep firefox

yum install xxx 下载安装软件包

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/469480
推荐阅读
相关标签
  

闽ICP备14008679号