admin 管理员组

文章数量: 887021

Liunx


个人blog-1: 拾忆生活
个人blog-2: 极简-拾忆生活
欢迎大家来踩,同步更新


Linux

Linux 用户登陆输入密码时,字符是不显示的,防止别人看见你密码的位数
Linux预设提供了六个命令窗口终端机让我们来登录。

  • Liunx系统
    • 命令窗口切换的快捷键为 Ctrl + Alt + F1 ~ F6
    • 命令窗口界面返回图形界面,按下Ctrl + Alt + F7 就回来
  • vm虚拟机的Liunx系统
    • 命令窗口切换的快捷键为 Alt + Space + F1 ~ F6
    • 图形界面界面返回命令窗口按 Alt + Shift + Ctrl + F1~F6

查看LIunx版本

  • cat /etc/redhat-release

添加终端快捷方式

  • terminal

  • /usr/bin/gnome-terminal

  • ctrl+`

命令解析器

  • unix系统

    • shell
  • Linux系统

    • bash·····
  • Bourne Shell

    • (/usr/bin/sh或/bin/sh)
  • Bourne Again Shell 【即bash】

    • (/bin/bash)
  • C Shell

    • (/usr/bin/csh)
  • K Shell

    • (/usr/bin/ksh)
  • Shell for Root

    • (/sbin/sh)

Linux快捷键

  • Tab键
    • 自动补全路径
  • cd /xxx
    • 进入目录
  • ctrl + p 或 上
    • 上一条执行过的命令
  • ctrl + n 或 下
    • 下一条执行过的命令
  • ctrl + b 或 左
    • 光标左移
  • ctrl + f 或 右
    • 光标右移
  • ctrl + a
    • 光标移到行首
  • ctrl + e
    • 光标移到行尾

开机过程

1.内核的引导。
2.运行 init。
3.系统初始化。
4.建立终端 。
5.用户登录系统。

  • 1.BIOS 开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动
    • /boot 目录下的内核文件
  • 2.init 进程是系统所有进程的起点
    • /etc/inittab 读取配置文件
  • 运行这些开机启动的程序,叫做"守护进程"(daemon)
  • 启动时根据"运行级别",确定要运行哪些程序
    • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
    • 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
    • 运行级别2:多用户状态(没有NFS)
    • 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
    • 运行级别4:系统未使用,保留
    • 运行级别5:X11控制台,登陆后进入图形GUI模式
    • 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
  • 系统初始化
    • si::sysinit:/etc/rc.d/rc.sysinit它调用执行了/etc/rc.d/rc.sysinit
    • 激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务
  • 用户登录系统
    • 如果用户名不是 root,且存在 /etc/nologin 文件,login 将输出 nologin 文件的内容,然后退出。
    • 只有 /etc/securetty 中登记了的终端才允许 root 用户登录

关机、重启

选项关机

  • System -> Shut down ->Shut down

将数据由内存同步到硬盘中

  • sync

关机

  • shutdown -h now
    • 【root,最安全】立即关机
  • shutdown –h 20:25
    • 【root】今天20:25关机
  • shutdown –h +10
    • 【root】十分钟后关机,单位:分
  • poweroff
    • 【最常用】
  • halt
    • 【最简单】等同于shutdown –h now 或 poweroff
  • init 0
    • init定义了8个运行级别,init 0关机init 1重启

取消关机

  • shutdown -c
    • 【root】

重启

  • reboot
    • 立马重启
  • shutdown –r now
    • 立马重启
  • shutdown –r +10
    • 十分钟后重启

正确的关机流程为:

  • sync > shutdown > reboot > halt

系统文件

1.用户

用户分为

  • owner [属主]
  • group [属组]
  • others [其他]
  • all [所有用户]

查看文件权限信息

  • ls -l
    • 第一列:- 表示文件、 d 表示目录
    • 第一列还有所有者权限、用户组权限、其他用户权限
    • 以上共10个数字:1|3|3|3、-/d|owner|group|others
[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)
数字    说明                                            权限
0       没有任何权限                                     ---
1       执行权限                                        --x
2       写入权限                                        -w-
3       执行权限和写入权限:1 (执行) + 2 (写入) = 3       -wx
4       读取权限                                        r--
5       读取和执行权限:4 (读取) + 1 (执行) = 5          r-x
6       读取和写入权限:4 (读取) + 2 (写入) = 6          rw-
7       所有权限: 4 (读取) + 2 (写入) + 1 (执行) = 7     rwx

更改文件属性【加上-R的参数,那么该目录下的所有文件的属组都会更改】

1、chgrp:更改文件属组

  • chgrp [-R] 属组名 文件名

2、chown:更改文件属主,也可以同时更改文件属组

  • chown [–R] 属主名 文件名
  • chown [-R] 属主名:属组名 文件名

3、chmod:更改文件9个属性【xyz 为数字,就是 rwx 属性数值的相加】

  • chmod [-R] xyz 文件或目录
  • chmod [-R] u=rwx,g=rwx,o=rwx 文件名

2.文件

文件目录系统是树结构

使用 man [命令] 来查看各个命令的使用文档,如 :man cp

显示目前的目录

  • pwd 【以连结档的数据显示】
  • pwd -P 【不以连结档的数据显示,而是显示正确的完整路径】

创建一个新的目录

  • mkdir

删除一个空的目录

  • rmdir

查看目录

  • ls /

查看文件

  • ls

查看所有文件(隐藏文件)

  • ls -a

查看当前目录下的所有文件列表

  • ls -al
  • [权限][文件数][所有者][用户组][文件容量][修改日期][文件名]

【注:查看用户】

  • 1.cd /home
  • 2.ls

切换用户目录

  • 绝对目录:从根目录开始写
    • cd /root/aaa/ 【使用绝对路径切换到 aaa 目录】
  • 相对目录:相对于当前工作目录而言
    • . 【当前目录】
    • cd ./aaa/ 【使用相对路径切换到 aaa 目录】
    • .. 【当前的上一级目录,如 cd …/man】
    • cd - 【在两个临近的目录间切换】
    • cd ~ 【切换到根目录】

3.文件的操作

创建

  • touch filename

编辑

  • vi filename

查看

  • cat filename

复制

  • cp filename copyfile

重命名

  • mv filename newfile

删除

  • rm filename filename2

统计词数

  • wc filename

重定向【改变输入输出设备, 箭 头 的 方 向 注 入 \color{red}箭头的方向注入 箭头的方向注入】

  • echo hello > hello.txt
    • 把hello打印到hello.txt的文本中【覆盖】
  • echo hello >> hello.txt
    • 把hello打印到hello.txt的文本中【追加】
  • cat < hello.txt
    • 把hello.txt输出查看

管道【将前一个命令的标准输出作为下一个程序的标准输入】

  • cat hello.txt | grep -n 8
    • 先查看hello.txt文件,再查找8数字,-n 是显示行号
  • cat hello.txt | grep -n 8 > cat.txt
    • 先查看hello.txt文件,再查找8数字,-n 是显示行号,写入cat.txt文件

Linux程序运行时都会创建三个文件流

  • 标准输入流(stdin)
    • stdin的文件描述符为0,Linux程序默认从stdin读取数据。
  • 标准输出流(stdout)
    • stdout 的文件描述符为1,Linux程序默认向stdout输出数据。
  • 标准错误流(stderr)
    • stderr的文件描述符为2,Linux程序会向stderr流中写入错误信息。

文件链接

硬链接(Hard Link),软(符号)链接(Symbolic Link)

硬链接

  • 硬连接指通过索引节点来进行连接。多个文件名指向同一索引节点是存在的
  • 作用: 允 许 一 个 文 件 拥 有 多 个 有 效 路 径 名 , 防 止 “ 误 删 ” \color{red}允许一个文件拥有多个有效路径名,防止“误删” 允许一个文件拥有多个有效路径名,防止“误删”
  • A 是 B 的硬链接(A 和 B 都是文件名)
    • 则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同。
    • 一个 inode 节点对应两个不同的文件名
    • 删除其中任何一个都不会影响另外一个的访问。

软链接

  • 类似于 Windows 的快捷方式
  • 文件实际上是一个文本文件,其中包含的有另一文件的位置信息
  • A 是 B 的软链接(A 和 B 都是文件名)
    • A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同。
    • A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)

测试

[oracle@Linux]$ touch f1          #创建测试文件f1
[oracle@Linux]$ ln f1 f2          #创建f1的一个硬连接文件f2
[oracle@Linux]$ ln -s f1 f3       #创建f1的一个符号连接文件f3
[oracle@Linux]$ ls -li            # -i参数显示文件的inode节点信息
total 0
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx  1 oracle oinstall 2 Apr 21 08:11 f3 -> f1#在f1文件输入内容
[oracle@Linux]$ echo "I am f1 file" >>f1#查看f1
[oracle@Linux]$ cat f1
I am f1 file#删除f1后
[oracle@Linux]$ rm -f f1#查看f2,f3
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
cat: f3: No such file or directory
  • 第一列是inode节点
  • 原文件 f1 与硬连接文件 f2inode节点相同,均为 9797648。
  • 原文件 f1 与软连接文件 f3inode节点相同
  • 删除原始文件 f1 后,硬连接 f2 不受影响,软连接 f3 文件无效

用户管理

添加账号

  • useradd 选项 用户名
  • useradd –d /home/sam -m sam -s /bin/sh -g group –G adm,root gem
    • 选项
    • -c 注释。
    • -d 指定用户主目录,如果目录不存在,则同时 -m ,创建主目录。
    • -g 指定用户所属的用户组。
    • -G 指定用户所属的附加组。
    • -s 指定用户的登录Shell。
    • -u 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

删除帐号

  • userdel 选项 用户名
  • userdel -r sam
    • 选项
    • -r 把用户的主目录一起删除。

修改帐号

  • usermod 选项 用户名
  • usermod -s /bin/ksh -d /home/z –g developer sam
    • 选项
    • -c, -d, -m, -g, -G, -s, -u 同上
    • -o

用户口令密码管理

  • passwd 选项 用户名
    • 选项
    • -l 禁用账号,不能登录。【passwd -l sam】
    • -u 口令解锁。
    • -d 使账号无口令。【passwd -d sam】
    • -f 强迫用户下次登录时修改口令。

普通用户
$ passwd
Old password:
New password:
Re-enter new password:

超级用户
$ passwd sam
New password:
Re-enter new password:

用户组管理

增加一个新的用户组【新组标识号GID是在当前已有的最大组标识号的基础上加1】

  • groupadd 选项 用户组
  • groupadd -g 101 group1
    • 选项
    • -g 指定GID。
    • -o 与-g选项同时使用,表示新用户组GID与已有用户组GID相同。

删除用户组

  • groupdel 用户组

修改用户组

  • groupmod 选项 用户组
  • groupmod –g 10000 -n group1 group2 【组group1的GID改为10000,组名修改为group2】
    • 选项
    • -g、-G 同上
    • -n 将用户组名字改为新名字

一个用户同时属于多个用户组,用户可以在用户组之间切换

  • 作用:具有不同用户组的权限。

切换到要到的用户组

  • newgrp 目的用户组
  • newgrp root

查看用户管理

一、cat /etc/passwd

  • 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
  • 大多都是伪用户
root:x:0:0:root:/root:/bin/bash
···

二、cat /etc/shadow

  • 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  • /etc/shadow中的记录行与/etc/passwd中的一一对应

三、cat /etc/group

  • 组名:口令:组标识号:组内用户列表
  • 用户组的所有信息
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
···

超级用户root

切换到超级用户

  • sudo su

退出超级用户

  • exit

磁盘管理

检查文件系统的磁盘空间占用大小情况

  • df [-ahikHTm] [目录或文件名]
  • df -h
    • 选项【默认Kbytes,8 Kbytes = 1 KBytes】
    • -a :列出所有的文件系统。
    • -k :KBytes容量显示。
    • -m :MBytes容量显示。
    • -h :GBytes, MBytes, KBytes 格式自行容量显示。
    • -H :以 M=1000K 取代 M=1024K 的进位方式。
    • -T :显示文件系统类型。
    • -i :以 inode 的数量显示。

检查文件系统的磁盘空间占用数量情况

  • du [-ahskm] 文件或目录名称
  • du -h / du
    • 选项
    • -a 、-k 、-m 、-h 同上
    • -s :列出总量而已,而不列出每个各别的目录占用容量;
    • -S :不包括子目录下的总计,与 -s 有点差别。

磁盘分区表操作工具

  • fdisk [-l] 装置名称
  • fdisk
    • 选项
    • -l :输出后面接的装置所有的分区内容

mount挂载

首先增加硬盘,然后格式化硬盘,在硬盘上创建分区,创建目录,最后再挂载

1.Windows下的mount挂载,就是给磁盘分区提供一个盘符(C,D,E,…)

  • U盘插入为mount
  • U盘拔出为unmount

2.Linux下只有一个根目录/,分配给linux的所有区都在/下的某个位置

  • mount /dev/sdb1 ~/Share/
    • /dev是目录,/dev/sdb1不是目录,ls /dev/sdb1无法执行。
    • 因为/dev/sdb1,是一个类似指针的东西,指向这个分区的原始数据块。
    • mount前,系统并不知道这个数据块哪部分数据代表文件,如何对它们操作。

分析:

  • 把新硬盘区sdb1挂载到工作目录的~/Share/文件夹下
  • 之后访问这个~/Share/文件夹就相当于访问这个硬盘的sdb1分区了

sudo

sudo是linux系统管理指令
允许让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等

centos8

CentOS 8主要使用AppStream, BaseOS, Extras三个仓库

打开终端

  • CTRL + ALT + T

连接网络,设置IP地址

1、手动更改网络接口配置文件,查看网络接口

  • ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000link/ether 这里是你的MAC地址 brd ff:ff:ff:ff:ff:ff
···

2、选择第二个ens160网络接口,进入网络配置文件目录

  • cd /etc/sysconfig/network-scripts/

3、在vim编辑器中修改:文件名称是ifcfg- 网卡名称

  • vi ifcfg-ens160
···
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens160
UUID=你自己的UUID
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.1.60
PREFIX=24
GATEWAY=192.168.1.2
DNS1=8.8.8.8
DNS2=8.8.4.4

4、重新加载网络配置

方式一:【一步到位,后面不用】

  • ip addr flush dev ens160 && systemctl restart NetworkManager.service

方式二:

  • nmcli c reload

5、CentOS 8默认不支持network.service服务
安装network.service服务

  • yum install network-scripts

6、重启网络服务

  • service network restart

7、重启网络服务

  • systemctl restart network.service

8、测试网络是否正常

  • ping www.baidu.com

9、查看ip地址

  • ip addr show

设置主机名为www

  • hostname www

编辑配置文件

  • vi /etc/hostname
    • localhost.localdomain改为www
  • vi /etc/hosts
    • 127.0.0.1 localhost localhost.localdomain 改为127.0.0.1 localhost www

把网卡名称ifcfg-ens160改为ifcfg-eth0

1、进入目录

  • cd /etc/sysconfig/network-scripts/

2、改文件名

  • mv ifcfg-ens160 ifcfg-eth0

3、编辑

  • vi ifcfg-eth0

4、修改

  • NAME=eth0
  • DEVICE=eth0

5、编辑

  • vi /etc/sysconfig/grub
  • GRUB_CMDLINE_LINUX变量中添加一句net.ifnames=0 biosdevname=0

6、重新生成grub配置并更新内核参数

  • grub2-mkconfig -o /boot/grub2/grub.cfg

7、添加udev的规则

  • cd /etc/udev/rules.d
  • vi 70-persistent-net.rules
  • 输入SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",ATTR{address}=="这里是你的MAC地址",ATTR{type}=="1" ,KERNEL=="eth*",NAME="eth0"

8、重启系统

  • shutdown -r now

运行ffmepg视频转码

  • 在Vidoes打开终端
  • 转码
    • ffmpeg -i a.mp4 a_h264.mp4
  • 播放
    • mplayer -vo caca -quiet a_h264.mp4
  • 右下角连接声卡

本文标签: Liunx