linux基础技能必备


linux基础必备centos操作系统


一. 常用命令:

  1. 关闭防火墙与selinux
关闭防火墙与selinux
			systemctl stop firewalld   #关闭防火墙
			systemctl disable firewalld     #永久关闭防火墙
			systemctl start firewalld   ##启动防火墙
			vim  /etc/sysconfig/selinux     #永久关闭selinux , 需要重启机器,将文件中的SELINUX=enforcing改为idisable
			setenforce 0 #临时关闭
			cat /etc/sysconfig/selinux  ##查看更改是否有误
			systemctl status firewalld  #查看防火墙状态
			getenforce  #查看selinux是否开启
  1. mkdir:用于创建新目录。
  2. yum: 安装指定的软件包。
yum list installed | grep XXXX      查找指定包
yum install package_name :使用 Yum 包管理器安装软件包,其中 "install" 为安装命令。
yum update package_name :使用 Yum 包管理器更新已有软件包,其中 "update" 为更新命令。
yum remove package_name :使用 Yum 包管理器删除软件包,其中 "remove" 为删除命令。


yum clean, yum clean all   清除缓存目录下的软件包及旧的headers
yum provides */命令				# 查看命令是由哪个包提供的(这个命令很有帮助)

yum update 						#更新升级所有软件包
yum search string 				#根据关键字string查找安装包
运行以下命令生成缓存
yum clean all
yum makecache
  1. touch: 用于创建空文件或者更新文件的访问和修改时间戳。
touch {1..10}.log
  1. cp:用于复制文件或目录。可以使用该命令将文件从一个位置复制到另一个位置,或者复制整个目录。
    :::info
    要在Linux上远程复制文件,您可以使用scp命令。scp命令可以通过SSH协议在本地和远程主机之间安全地复制文件。
    使用scp命令的基本语法如下:
    scp [选项] [源文件] [目标地址]
    例如,要将本地文件file.txt复制到远程主机remote_host/remote/directory目录中,您可以使用以下命令:
    scp file.txt username@remote_host:/remote/directory
    在这个命令中,username是远程主机上的用户名,remote_host是远程主机的地址,/remote/directory是远程目录的路径。
    您还可以使用-r选项来递归复制整个目录,例如:
    scp -r directory username@remote_host:/remote/directory
    这将递归地复制本地directory目录到远程主机的/remote/directory目录中。
    请确保您具有适当的权限和凭据来访问远程主机,并且远程主机上的SSH服务正在运行。
    :::

  2. rm:用于删除文件或目录。注意:该命令是永久性删除,操作需谨慎。

rm -i *.log        删除任何 .log 文件,删除前逐一询问确认
rm -rf test        删除 test 子目录及子目录中所有档案删除,并且不用一一确认
rm -- -f*          删除以 -f 开头的文件
rm -rf *           删除当前目录下的所有文件
rm -f 其中的,f参数 (f --force ) 忽略不存在的文件,不显示任何信 不会提示确认信息。
  1. mv:用于移动文件或目录,也可以用于将文件重命名。它可以将文件从一个位置移动到另一个位置,或者更改文件的名称。
  2. cat:用于查看文件的内容,将文件的内容输出到终端。
  3. head:显示文件的开头几行,默认为前10行。可以使用参数来指定要显示的行数。
  4. tail:显示文件的末尾几行,默认为最后10行。可以使用参数来指定要显示的行数。
tail -f #动态查看
  1. less:以分页的方式查看文件的内容,可以向上或向下滚动进行查看。
  2. more:以分页的方式查看文件的内容,与less相似,但只能向前滚动。
  3. groupadd: 用于创建新的组。
  4. useradd: 用于创建新的用户。
  5. pwd: 查看当前所在路径位置。
  6. |管道重定向:
>   ----覆盖
>>  ----追加
  1. grep: 用于搜索文本的命令行工具。它可以在文件中或者标准输入中查找匹配特定模式的行,并将匹配的行打印到标准输出。
grep 'famas' /usr/local.txt
-i:忽略大小写
-r:递归地在目录中搜索文件
-n:显示匹配行的行号
-v:显示不匹配的行
-E:使用扩展正则表达式
  1. 进程控制
[root@linux-server ~]# kill -l   #查看所有信号
-1   HUP  重新加载进程或者重新加载配置文件,PID不变
-9   KILL 强制杀死
-15  TERM 正常杀死(这个信号可以默认不写)  stop 
-18  CONT 激活进程
-19  STOP 挂起进程
  1. 查看进程 process
    :::info
    [root@linux-server ~]# ps aux
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    ============================================================================
    USER: #运行进程的用户
    PID: #进程ID
    %CPU: #CPU占用率
    %MEM: #内存占用率
    VSZ 进程占用的虚拟内存大小
    RSS 占用的物理内存大小
    STAT: #进程状态 —了解
    ? 表示没有占用终端
    R 运行
    S 可中断睡眠 Sleep
    D 不可中断睡眠
    T 停止的进程
    Z 僵尸进程
    X 死掉的进程
    START: #进程的启动时间
    TIME: #进程占用CPU的总时间
    COMMAND: #进程文件,进程名
    :::
    :::info
    ps aux | less
    ps :process nsapashot
    a 只能查看系统里面运行的所有终端进程
    u 显示进程拥有者
    x 显示系统内所有进程
    f 显示进程之间的父子关系
    :::
    image.png

  2. 存储管理

           ![image.png](https://img-blog.csdnimg.cn/img_convert/75b665297c738dbdb8caa4b19fabcc7b.png)
    
lsblk                                        查看分区结果,查看磁盘设备
partprobe /dev/sdb                #如果分区后无法发现分区结果,请刷新分区表后再次查看
挂载必须要用   blkid  查uuid
fdisk -l /dev/sdb                              #查看磁盘分区信息
MBR分区               分磁盘按n和删除磁盘按d保存按w
fdisk /dev/sdb                              #分磁盘
GPT分区                    另一个分区工具gdisk 
yum -y install gdisk                    #安装分区工具
gdisk /dev/sdb                              #分磁盘  进入磁盘模式分磁盘(n)和删除磁盘d保存w
mkfs.ext4    /dev/格式化的目录                  #格式化成ext4格式的文件系统
mkfs.xfs /dev/格式化的目录                    #格式化成xfs格式的文件系统
mkdir /mnt/挂载的目录                          #创建挂载目录
mount /dev/sdc2    /mnt/disks/              #让磁盘和目录挂载
df -Th                        #查看磁盘与挂载使用的空间
umount /mnt/disks/                          取消挂载
umount -l /mnt/disk1/                      强行取消挂载,即使目录有资源被进程占用,也可以卸载
blkid     /dev/磁盘名                       #查看uuid和文件系统类型
也可以放到开机自动启动里面
查看/root下文件的内容,找到文件.bashrc,在里面写挂载信息,然后也可以实现开机自动挂载。
 逻辑卷LVM
pvcreate /dev/磁盘名字          添加
yum install -y lvm2              # 下载这个命令用于物理卷
pvcreate /dev/sdb                #创建pv
pvs                              #查看pv
vgcreate vg1 /dev/sdb            #创建vg
vgs                              #查看vg
lvcreate -L 150M -n lv1 vg1      #创建lv
lvs                                   #查看lv
 mkfs.xfs /dev/vg1/lv1                格式化xfs
 mkfs.ext4 /dev/vg1/lv2               格式ext4
 mkdir /mnt/lv{1..2}                      创建目录
 mount /dev/vg1/lv1 /mnt/lv1        挂载磁盘
 mount /dev/vg1/lv2 /mnt/lv2
 df -Th                                   #查看磁盘与挂载使用的空间
1pe=4m
vgextend vg1 /dev/sdc             #将/dev/sdc扩展到vg1中
lvextend -L +850M /dev/vg1/lv1           #在原有基础上加850M
lvextend -l +15 /dev/vg1/lv1                 #在原有基础上加15个PE
xfs_growfs /dev/vg1/lv1                       #xfs扩容
resize2fs /dev/vg1/lv2                           #ext4扩容
du -sh                                      查看文件大小
lsblk  查看当前机器的磁盘信息
fdisk -l /dev/sdb  查看某个磁盘详情
关机,添加磁盘,开机,查看是否添加成功,fdisk做分处理,格式化(文件系统xfs,ext4),mount挂载,fstab自动挂载,mount -a 手动触发。
4lvm逻辑卷管理:扩容磁盘:添加物理卷pv,添加到卷组vg,扩容对应的逻辑卷lv,对扩容过的空间容量进行格式化。
raid10和01

  1. 逻辑或逻辑与

逻辑与:&&
逻辑或: | |


二. 文件管理及文件权限

   **文件权限的表示方式通常是使用一串由10个字符组成的字符串,其中第一个字符表示文件类型,接下来的三个字符表示所有者的权限,接下来的三个字符表示群组的权限,最后三个字符表示其他人的权限。文件权限是保护文件和目录的重要机制,可以控制对敏感数据的访问,并确保文件系统的安全性。**

目录功能

bin 普通用户使用的命令 /bin/ls, /bin/date
sbin 管理员使用的命令 /sbin/service 
案例:
[root@linux-server ~]# which ls
[root@linux-server ~]# which useradd
/usr/sbin/useradd

dev 设备文件 /dev/sda,/dev/sda1
[root@linux-server ~]# ll /dev/sd*
brw-rw----. 1 root disk 8, 0 Oct 31 14:16 /dev/sda
brw-rw----. 1 root disk 8, 1 Oct 31 14:16 /dev/sda1
brw-rw----. 1 root disk 8, 2 Oct 31 14:16 /dev/sda2
[root@linux-server ~]# tty
/dev/pts/0  #这是我们的终端。

/root  #root用户的家目录
/home  #存储普通用户家目录 
lost+found 这个目录平时是空的,存储系统非正常关机而留下“无家可归”
的文件
/usr         #系统文件,相当于C:\Windows
/usr/local   #软件安装的目录,相当于C:\Program
/usr/bin  	#普通用户使用的应用程序
/usr/sbin 	#管理员使用的应用程序
/usr/lib       库文件Glibc 32bit
/usr/lib64    库文件Glibc 64bit
/boot        存放的系统启动相关的文件,例如kernel
/etc         #配置文件(系统相关如网络/etc/sysconfig/network)
/tmp         临时文件(系统:程序产生的临时文件)
/opt		 空目录

/var  #存放的是一些变化文件,比如数据库,日志,邮件....
/proc  虚拟文件系统,系统程序文件所处目录 。虚拟文件系统:只要关机就会没有。
==设备(主要指存储设备)挂载目录==
/mnt   #系统提供这个目录是让用户临时挂载其他的文件系统

文件权限

基本权限 U–user用户,G-group组,O-other其他人

权限.jpg

chown:改变文件或目录的所属主以及所属组
chmod:为文件或目录设置访问权限
读(read):r   ---->4
写(write):w  ---->2
执行: x(exec) ----->1

文件类型

 - 普通文件(文本文件,二进制文件,压缩文件,电影,图片。。。)
 d 目录文件(蓝色)
 b 设备文件  block device 设备文件,如硬盘,U盘;
 c 设备文件 字符设备文件,比如我们的终端tty1,打印机。
 l symbolic link 即符号链接文件,又称软链接文件 (浅蓝色)
 s  socket 即套接字文件,用于实现两个进程进行通信
 p  管道文件

目前两种给普通用户提权手段

:::info
sudo: 有针对性,例如针对某个用户以能够以root的身份执行某些命令。
suid: 基本针对所有用户,任何用户在执行有suid权限的程序时(例如/usr/bin/rm),都是以root身份在执行。
:::

当给普通用户提权时,可以按照以下步骤进行操作:
1. 使用sudo命令:
   a. 确保您已经以root用户登录到系统。
   b. 打开终端,并编辑sudoers文件,可以使用visudo命令来编辑该文件:
      ```bash
      sudo visudo
      ```
   c. 在sudoers文件中,找到以下行:
      ```bash
      ## Allow members of group sudo to execute any command
      # %sudo   ALL=(ALL:ALL) ALL
      ```
   d. 在该行下面添加一行,允许特定用户执行特定命令:
      ```bash
      username   ALL=(ALL:ALL) ALL
      ```
      其中,username是要提权的普通用户名。
   e. 保存并关闭sudoers文件。
   f. 现在,普通用户就可以使用sudo命令来执行需要特权的操作。
2. 使用su命令:
   a. 打开终端,并输入以下命令:
      ```bash
      su -
      ```
   b. 输入root用户的密码进行确认。
   c. 现在,您已经切换到root用户,可以执行需要特权的操作。
3. 使用特权程序:
   a. 确保您已经以root用户登录到系统。
   b. 打开终端,并编辑特权程序的配置文件,通常是在/etc/sudoers.d/目录下。
   c. 在配置文件中添加允许普通用户执行特定程序的规则。
   d. 保存并关闭配置文件。
   e. 现在,普通用户就可以以特权身份运行特定的程序。
在进行这些操作时,务必小心谨慎,确保只有必要的操作才需要使用特权身份,并严格控制哪些命令和程序可以被普通用户执行。

相关推荐

  1. Linux 配置安装ftp 运维工程师必备技能难度***

    2024-04-27 09:18:02       24 阅读
  2. pip的基本命令和使用:程序猿的必备技能

    2024-04-27 09:18:02       34 阅读
  3. 软件测试Linux 必备考点

    2024-04-27 09:18:02       44 阅读
  4. 程序员必备的面试技巧

    2024-04-27 09:18:02       36 阅读
  5. 程序员必备的面试技巧

    2024-04-27 09:18:02       44 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-27 09:18:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-27 09:18:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-27 09:18:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-27 09:18:02       20 阅读

热门阅读

  1. 解决 Oracle 表锁

    2024-04-27 09:18:02       13 阅读
  2. spring的CacheManager

    2024-04-27 09:18:02       17 阅读
  3. Vue rules动态控制是否校验

    2024-04-27 09:18:02       15 阅读
  4. 龙芯中标麒麟安装pyqt和运行项目主程序

    2024-04-27 09:18:02       15 阅读
  5. 4-用户权限控制(后端)

    2024-04-27 09:18:02       12 阅读
  6. 采用公共云计算有助于减轻环境影响吗?

    2024-04-27 09:18:02       12 阅读
  7. 【Flutter 面试题】 Dart 当中的 .. 表示什么?

    2024-04-27 09:18:02       14 阅读
  8. TypeScript 学习笔记

    2024-04-27 09:18:02       16 阅读
  9. flutter利用get中的GetConnect实现拦截请求

    2024-04-27 09:18:02       15 阅读