Linux

Linux

Vmware创建Linux

虚拟机三种网络形式的说明

1 是网关

255是广播地址

模式
桥接模式 LInux可以和其他的系统通信, 但是可能造成IP冲突
NAT模式 网络地址转换方式, LInux可以访问外网, 不会造成IP冲突
仅主机模式 你的Linux是一个独立的主机, 不能访问外网

Linux最基本的三个分区

/boot Linux启动的引导文件
swap 当系统内存不够用的时候, 可以用swap暂时替代内存
/ 根分区

Linux目录结构

Linux的文件系统是采用的级层式的树状目录结构, 在此结构中的最上层是根目录'/', 然后在此目录下在创建其他的目录

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

目录
/dev 设备, 类似Windows的设备管理器, 把所有的硬件用文件的形式存储
/media Linux系统会自动识别一些设备, 例如U盘, 光驱等等, 当识别后, linux会把识别的设备挂载到这个目录下
/mnt 系统提供该目录是为了让用户临时挂载别的文件系统的, 我们可以将外部的存储挂载在/mnt/上, 然后进入该目录就可以查看内容了
/bin 是Binary的缩写, 这个目录存放着最经常使用的命令
/sbin s就是Super User的意思, 这里存放的是系统管理员使用的系统管理程序
/home 存放普通用户的主目录, 在Linux中每个用户都有自己一个自己的目录, 一般该目录名是以用户的账号命名的
/root 该目录为系统管理员, 也称为超级权限者的用户目录
/lib 系统开机所需要最基本的动态连接共享库, 其作用类似于Windows里面的DLL文件, 几乎所有的应用程序都需要用到这些共享库
/lost+found 这个目录一般情况下是空的, 当系统非法关机后, 这里就存放了一些文件
/etc 所有的系统管理所需要的配置文件和子目录
/usr 这是一个非常重要的目录, 用户的很多应用程序和文件都放在这里目录下, 类似于windows下的program files目录
/boot 存放的是启动Linux目录使用的一些核心文件, 包括一些链接文件以及镜像文件
/proc 这个目录是一个虚拟的目录, 它是系统内存的映射, 访问这个目录来获取系统信息(别动)
/srv service缩写, 该目录放一些服务启动之后需要提取数据(别动)
/sys 这是LInux2.6内核的一个很大变化, 该目录下安装了2.6内核中新出的一个文件系统sysfs(别动)
/tmp 这个目录是用来存放一些临时文件的
/opt 这是给主机额外安装软件所摆放的目录, 如Oracle数据库就可放到该目录下, 默认为空
/usr/local 这是另一个给主机安装软件的安装目录, 一般是通过编译源码方式安装的程序
/var 这个目录中存放着不断扩充的东西, 习惯将经常被修改的目录放在这个目录下, 包括各种日志文件
/selinux selinux是一种安全子系统, 它能控制程序只能访问特定文件
  • linux的目录中有且只有一个根目录
  • linux的各个目录存放的内容是规划好的, 不用乱放文件
  • linux是以文件的形式管理我们的设备, 因此linux系统, 一切皆为文件

Linux工具连接

service sshd status

查看sshd是否开启

如果需要xshell连接LInux系统, 需要一个前提就是Linux启动了SSHD服务, 该服务会监听22号端口, 一个电脑最多65535个端口

Linux的Vim和Vi编辑器

所有的Linux系统都会内建Vi编辑器

Vim具有程序编辑的能力, 可以看做是Vi的增强版本, 可以主动的以自提颜色辨别语法的正确性, 方便程序设计, 代码补全, 编译及错误跳转等

Vim和Vi的三种模式

  • 正常模式(默认模式)
    • vim打开一个文档就进入正常模式了
  • 插入模式, 编辑模式
    • 按下i, I, o, O, a A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按I即可
  • 命令行模式
    • 可以提供你相关的命令, 完成读取, 存盘, 替换, 你开VIM, 显示行号等动作
行为
:!q 打开做了修改, 不想保存退出
:q 没有做修改, 退出
:wq 保存并退出

设置永久显示行号

/etc/vimrc  是系统范围的初始化配置
~/.vimrc  个人的vim初始化位置
vim ~/.vimrc 
set number 或者 set nu

如果你已经进行了恢复,请删除交换文件 ".HelloWorld.java.swp"

vim -r 显示交换文件

rm 文件

Linux开机, 重启, 用户登录注销

关机&重启命令

  • shutdown
    • shutdown -h now: 表示立即关机
    • shutdown -h 1: 表示1分钟后关机
    • shutdown -r now: 立即重启
  • halt
    • 直接使用, 效果等价于关机
  • reboot
    • 就是重启系统
  • sync
    • 把内存的数据同步到磁盘
  • **注意点: ** 关机之前一定要执行sync命令, 把没有保存的数据保存的磁盘上

用户的登录和注销

基本介绍

  • 登录时尽量少用root账号登录, 因为它是系统管理员, 最大的权限, 避免操作失误, 可以利用普通用户登录, 登录后再用 su -用户名命令切换成系统管理员身份
  • 在提示符舒服logout即可注销用户
    • 注销指令在图形运行级无效, 在运行级别3下有效

用户管理

基本介绍

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

LInux用户需要至少属于一个组

添加账号
useradd [选项] 用户名

添加用户时直接加上组

useradd -g 用户组 用户名
修改密码
passwd [选项] 用户名
删除用户
userdel [选项] 用户名
  • 删除用户, 保留home目录

    • userdel 用户名
      
  • 删除用户, 不保留home目录

    • userdel -r 用户名
      
查询用户信息
id [选项] 用户名
切换用户
su [选项] 用户名
exit 返回上一个用户
查看当前用户/登录用户
whoami/who am I

细节说明:

  • 当创建创建用户成功, 会自动创建和用户同名的家目录
  • 也可以通过useradd -d 指定目录, 新的用户名, 给新创建的用户指定家目录, 在指定目录的时候, 不要事先创建起来
  • 如果没有指定组, 就会创建跟用户名相同的组, 并把用户放进这个组里面
  • 一般来讲不会删除用户的/home目录

用户组

基本介绍

类似于角色, 系统可以对有共性的多个用户进行统一的管理

常用命令

创建组
groupadd [选项] 组名
删除组
groupdel [选项] 组名
修改用户组
usermod -g 用户组 用户名
usermod -d 目录名 用户名 改变该用户登录的初始目录

用户配置文件

文件目录
/etc/passwd 用户配置文件(用户信息)
/etc/group 组配置信息(组信息)
/etc/shadow 口令配置文件(密码和登录信息, 是加密)
/etc/passwd
  • 用户配置文件, 记录用户的各种信息
  • 每行含义: 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
/etc/shadow
  • 口令配置文件
  • 每行的含义: 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group文件
  • 组(group)的配置文件: 记录Linux包含的组的信息
  • 每行含义: 组名:口令:组标识号:组内用户列表
  • 一般来说组内用户列表是看不到的

Linux常用命令

运行级别
0 关机
1 单用户级别, 找回密码的时候有用
2 多用户无网络服务
3 多用户有网络服务
4 保留运行级别
5 图形化运行级别
6 重启

常用的运行级别是3和5, 要修改默认的运行级别可改文件

/etc/inittab的id:5:initdefault:这一行的数字

切换运行级别
init[0123456]

CentOS8

  1. systemctl get-clefault

    查看默认运行级别

  2. systemctl isolate multi-user.target

    切换到字符界面

  3. systemctl isolate graphical.target

    切换到 图形化界面

  4. systemctl set-default multi-user.target

    设置默认运行级别 3 为 字符

  5. systemctl set-default graphical.target

    设置默认运行级别 5 为 图形化

找回root密码

如何找回root密码

进入到单用户模式, 然后修改root密码, 因为进入单用户模式, root不需要密码就可以登录

开机 在引导时输入回车键, 进入设置页面, 设置引导运行的级别

进入单用户模式, 然后用passwd修改密码

帮助指令

当我们 某个指令不熟悉的时候, 我们可以使用Linux提供的帮助指令来了解这个指令的使用方法

基本语法
man[命令或配置文件] (功能描述, 获得帮助信息)
help 命令(功能描述, 获取shell内置命令的帮助信息)

文件目录类指令

指令 功能描述
pwd 显示当前工作目录的绝对路径
ls 查看当前目录的所有内容
cd 切换到指令目录
touch 创建空文件
cp 拷贝文件到指定目录
cat 只能浏览文件, 而不能修改文件, 为了浏览方便, 一般会带上管道命令
more 是一个基于VI编辑器的文本过滤器, 以全屏幕的方式按页显示文本文件的内容
less 用来分屏查看文件内容, 它的功能与more指令类似
> 输出重定向, 覆盖写
>> 追加
echo 输出内容到控制台
head 用于显示文件的开头部分内容, 默认情况下显示文件的前10行内容
tail 用于输出文件中尾部的内容, 默认情况下显示文件的后10行内容
ln 软连接, 类似于windows里面的快捷方式, 主要存放了链接其他文件的路径
history 查看已经执行的历史命令, 也可以执行历史命令
date 显示当前日期
cal 查看日历
pwd指令

基本语法

  • pwd(功能描述, 显示当前工作目录的绝对路径)
ls指令

基本语法

  • ls [选项] [目标或是文件]
    

常用选项

  • -s: 显示当前目录所有的文件和目录, 包括隐藏的
  • -l: 以列表的方式显示信息
cd指令

基本语法

cd [参数] 切换到指令目录

常用参数

绝对路径和相对路径

绝对路径: /home即从根目录开始定位

相对路径: ../home, 从当前工作目录开始定位到需要的目录去

cd ~ 或者cd :  回到自己的家目录  (CentOS8里面 直接cd就可以回到home)
cd .. 回到当前目录的上一级目录
touch指令

touch指令创建空文件

基本语法

touch 文件名1 文件名2...
cp指令

拷贝文件到指定目录

基本语法

cp [选项] source dest

常用选项

cp -r source dest  递归复制整个文件夹

使用细节

强制覆盖不提示的方法:

\cp
cat指令

查看文件内容

只能浏览文件, 而不能修改文件, 为了浏览方便, 一般会带上管道命令 | more

基本语法

cat [选项] 要查看的文件

常用选项

cat -n 要查看的文件   显示行号查看
cat -n 要查看的文件 | more   分页查看文件内容
more命令

是一个基于VI编辑器的文本过滤器, 它以全屏幕的方式按页显示文本文件的内容

基本语法

more 要查看的文件
less指令

用来分屏查看文件内容, 它的功能与more指令类似, 但是比more指令更加强大, 支持各种显示终端. less指令在显示文件内容时, 并不是一次将整个文件加载之后显示, 而是根据显示需要加载内容, 对于显示大型文件具有较高的效率

基本语法

less 要查看的文件
> 命令

输出重定向

基本语法

ls -l > 文件  列表的内容写入文件a.txt中, 覆盖写
ls -al > 文件    列表的内容追加到文件aa.txt的末尾
cat 文件1 > 文件2    将文件1的内容覆盖到文件2
echo "内容" > 文件
>> 命令

追加

基本语法

ls -l >> 文件 列表的内容写入文件a.txt中, 覆盖写
ls -al >> 文件    列表的内容追加到文件aa.txt的末尾
cat 文件1 >> 文件2    将文件1的内容覆盖到文件2
echo "内容" >> 文件
echo指令

输出内容到控制台

基本语法

echo [选项] [输出内容]

应用

输出环境变量

echo $PATH
head指令

head用于显示文件的开头部分内容, 默认情况下head指令显示文件的前10行内容

基本语法

head 文件  查看文件头10行的内容
head -n 5 文件   查看文件头5行的内容, 5可以是任意行数

应用

head /etc/profile  的前面5行代码
tail指令

用于输出文件中尾部的内容, 默认情况下tail指令显示文件的后10行内容

基本语法

tail 文件    查看文件后10行的内容
tail -n 5 文件   查看文件后5行的内容, 5可以是任意行数
tail -f 文件   实时追踪该文档的所有更新
ln指令

基本语法

ln -s [原文件或目录][软链接名]   给原文件创建一个软链接
rm -rf [软链接名]   删除软链接名, 后面不要带/, 会把软链接原有的内容删掉

软链接是存放的另一个文件的路径

硬链接是以文件的副本的形式存在

history指令

查看已经执行过的历史命令

基本语法

history  查看已经执行过的历史命令
history  查看最近使用过的10个命令
!编号     执行编号为多少的指令

时间日期类

date指令

显示当前日期

基本语法

date         显示当前时间
date  "+%Y"    显示当前年份
date "+%m"    显示当前月份
date "+%d"   显示当前是那一天
date "+%Y-%m-%d %H:%M:%S"  显示年月日时分秒

操作

设置日期

基本语法

date -s "字符串时间"
date -s "2020-11-11 11:22:22"    设置系统当前时间
cal指令

基本语法

cal [选项]     不加选项, 显示本月日历
cal 年份       显示一个年份的日历

搜索查询类

find指令

find指令将从指定目录向下递归地遍历各个子目录, 将满足条件的文件或者目录显示在终端

基本语法

find [搜索范围] [选项] 文件名

选项说明

选项 功能
-name<查询方式> 按照指定的文件名查找模式查找文件
-user<用户名> 查找属于指定用户名所有文件
-size<文件大小> 按照指定的文件大小查找文件

应用实例

按文件名: 根据名称查找/home目录下的hello.txt文件

find /home -name hello.txt

按拥有者: 查找/opt目录下, 用户名称为root的文件

find /opt -user root

查找整个linux系统下大于20M的文件(+n大于 -n小于 n等于)

find / -szie +20M   (kb要用小写的k)

查询 / 目录下, 所有.txt的文件

find / -name *.txt
locate指令

locate指令可以快速定位文件路径. locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件. locate指令无需遍历整个文件系统. 查询速度较快, 为了保证查询结果的精准度, 管理员必须定期更新locate时刻

特别说明: 由于locate指令基于数据库进行查询, 所以第一次运行前, 必须使用updatedb指令创建locate数据库

updatedb  创建后者更新locate数据库

基本用法

locate 搜索文件
grep指令

过滤查找

基本语法

grep [选项] 查找内容 源文件
选项 功能
-n 显示匹配行及行号
-i 忽略字母大小写

实例:

请在hello.txt文件中, 查找yes所在的行, 并显示行号

grep -n yes /home/hello.txt
cat hello.txt | grep -n yes
cat hello.txt | grep -ni yes
| 指令

表示将前一个命令的处理结果输出传递给后面的命令处理

压缩和解压类指令

gzip/gunzip指令

用于解压缩文件

基本语法

gzip 文件    压缩文件, 只能将文件压缩为*.gz文件=
gunzip 文件.gz     解压缩文件命令

细节说明

当我们吧使用gzip对文件进行压缩后, 不会保留原来的文件, gunzip也一样

zip/unzip指令

基本语法

zip [选项] XXX.zip 将要压缩的内容    压缩文件和目录的命令
zip -r XXX.zip 将要压缩的内容      递归压缩, 即压缩目录
unzip [选项] XXX.zip   解压缩文件
unzip -d<目录>  XXX.zip 指定解压后的文件存放目录
tar指令

tar指令是打包指令, 最后打包的文件是.tar.gz的文件

基本语法

tar [选项] XXX.tar.gz 打包内容  打包目录, 压缩后的文件格式.tar.gz
选项 功能
-c 产生tar打包文件
-v 显示详情信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解压.tar文件

压缩多个文件

tar -zcvf a.tar.gz hello.txt hello2.txt

将/home的文件夹, 压缩成myhome.tar.gz

tar -zcvf myhome.tar.gz /home/*

将a.tar.gz 解压到当前目录

tar -zxvf myhome.tar.gz

将myhome.tar.gz 解压到/opt/tmp2目录下

tar -zxvf myhome.tar.gz -C /opt/tmp2/

指定解压的目录事先要存在

Linux组管理

Linux组基本介绍

在Linux中的每个用户必须属于一个族, 不能独立于组外, 在LInux中的每个文件的所有者, 所在组, 其他组的概念

  • 所有者
  • 所在组
  • 其他组
  • 改变用户所在的组

文件/目录的所有者

一般为文件的创建者, 谁创建了该文件, 就自然的成为该文件的所有者

其他组

除文件的所有者和所在组的用户外, 系统的其他用户都是文件的其他组

查看文件的所有者

ls -ahl

修改文件所有者

chown 用户名 文件名

修改文件所在的组

chgrp 组名 文件名

修改文件的所有者和所有组

chown newowner:newgroup file

如果是目录,则使其下所有的子文件或目录递归生效

chown -R newowner:newgroup file 

Linux权限管理

ls -l详解

drwx------.  3 markerccc markerccc  78 11月 29 13:10 markerccc

0-9位说明

  • 第0位确定文件类型(d, -, l, c, b)

    • 文件类型 内容
      - 普通文件
      d 目录
      c 字符设备(键盘, 鼠标)
      b 块文件(硬盘)
  • 第1-3位确定所有者 (该文件的所有者) 拥有该文件的权限 –User

    • 权限 内容
      r
      w
      x 执行
      - 没有权限
  • 第4-6位确定所属的组(同用户的组) 拥有该文件的权限 –Group

    • 内容
      r-- 不与该文件拥有者同组的其他用户的权限是读不能写和执行
      rwx 文件拥有者的权限是读, 写和执行
      rw- 与文件拥有者统一组的用户的权限是读, 但是不能执行
  • 第7-9位确定其他用户拥有该文件的权限 –Other

    • 其他组 内容
      r-- 不与该文件拥有者同组的其他用户的权限是读不能写和执行
      rwx 文件拥有者的权限是读, 写和执行
      rw- 与文件拥有者统一组的用户的权限是读, 但是不能执行

数字3

类型 含义
文件 如果是文件表示硬链接
目录 表示该目录的子目录个数

数字78

表示文件大小, 如果是目录, 统一是4096 (CentOS6)

时间

表示文件的最后的修改时间

rwx权限详解

文件

权限 内容
[r] 表示可读(read), 可以读取, 查看
[w] 表示可写(write), 可以修改, 但是不代表可以删除该文件, 删除一个文件的前提条件是对该文件所在目录有写权限, 才能删除该文件
[x] 代表执行[execute]: 可以被执行
目录
权限 内容
[r] 代表可读(read),可以读取, ls查看目录内容
[w] 代表可写(write): 可以修改, 目录内创建+删除+重命名目录
[x] 代表可执行(execute): 可以进入目录

可以用数字表示为

权限 数字
r 4
w 2
x 1

因此rwx=4+2+1=7

文件类型 属主权限 属主权限 属主权限 属组权限 属组权限 属组权限 其他用户权限 其他用户权限 其他用户权限
0 1 2 3 4 5 6 7 8 9
d r w x r - x r - x
目录文件 执行 执行 执行

修改权限

chmod指令

通过chmod指令, 可以修改文件或者目录的权限

第一种方式
变更 内容
+ 增加权限
- 去掉权限
= 赋予权限
选项 内容
u 所有者
g 所有组
o 其他人
a 所有人

基本语法

chmod u=rwx,g=rx,o=x 文件目录名  
chmod o+w 文件目录名         给这个文件其他的用户增加一个写的权限
chmod a-x 文件目录名         给这个文件所有用人减掉一个执行的权限

案例

给abc文件的所有者读写执行的权限, 给所在组读执行的权限, 给其他组读执行的权限

chmod u=rwx,g=rx,o=rx abc

给abc文件的所有者去除执行权限, 增加组写的权限

chmod u-x,g+w abc

给abc文件的所有用户添加读的权限

chomd a+r abc
第二种方式

通过数字变更权限

chmod u=rwx,g=rx,o=x 文件目录名
chmod 751 文件目录名

你可能感兴趣的:(Linux)