0
点赞
收藏
分享

微信扫一扫

Linux基础介绍

柠檬的那个酸_2333 2022-01-14 阅读 50

一. linux基础知识

  Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。

1. 发行的 linux 版本

  Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。市面上较知名的发行版有:Ubuntu、RedHat、CentOS、DebianFedoraSuSE、OpenSUSE、Arch Linux、SolusOS
在这里插入图片描述

2. linux 系统目录结构

在这里插入图片描述

  • /sys: 这是 linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。sysfs 文件系统集成了下面 3 种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在 内核对象子系统中
  • /bin:存放着最常用的程序和指令
  • /sbin:只有系统管理员能使用的程序和指令
  • /usr/bin:系统用户使用的应用程序与指令。
  • /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
  • /usr/src:内核源代码默认的放置目录。
  • /dev :Device(设备)的缩写, 存放的是 Linux 的外部设备。注意:在 Linux 中访问设备和访问文件的方式是相同的。
  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
  • /lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。
  • /usr:用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。(程序目录)
  • /srv:存放服务启动后需要提取的数据(不用服务器就是空)

系统启动必须:boot,etc,lib,sys
指令集合::bin,sbin
外部文件管理: dev, media,mnt,
临时文件: run,lost+found,tmp
账户: root, home,usr,usr/bin,usr/sbin,usr/src
运行过程中要用: var,proc,
扩展用的: opt,srv

3. linux 基础命令

shutdown

   shutdown 会给系统计划一个时间关机。它可以被用于停止、关机、重启机器。shutdown 会给系统计划一个时间关机。它可以被用于停止、关机、重启机器。

shutdown -P now ### 关闭机器 
shutdown -H now ### 停止机器 
shutdown -r 09:35 ### 在 09:35am 重启机器
shutdown -c ### 要取消即将进行的关机

halt

  halt 命令通知硬件来停止所有的 CPU 功能,但是仍然保持通电。你可以用它使系统处于低层维护状态。注意在有些情况会它会完全关闭系统。

  

halt ### 停止机器 
halt -p ### 关闭机器 
halt --reboot ### 重启机器

poweroff

会发送一个 ACPI 信号来通知系统关机。

reboot

命令 reboot 通知系统重启。

二. Linux 用户/用户组

groupadd

groupadd -g 1314 xxy

groupdel

groupdel xxy

groupmod

[root@localhost ~]# groupmod -g 1314 -n xxy xxy1
groupmod: group 'xxy1' does not exist(新名称在前面)
[root@localhost ~]# groupmod -g 1314 -n xxy1 xxy

useradd

useradd -d /usr/pig -m pig ##创建用户 pig,其中-d 和-m 选项用来为登录名 pig产生一个主目录/usr/pig。

useradd -s /bin/sh -g group1 -G group2,root pig2 ##新建用户 pig2,登录 Shell 是 /bin/sh,属于 group1,又属于 group2 和 root。

userdel

  常用的选项是 -r,它的作用是把用户的主目录一起删除。

usermod

  常用的选项包括-c, -d, -m, -g, -G, -s, -u 以及-o 等,这些选项的意义与 useradd 命令中的选项一样,可以为用户指定新的资源值

passwd

passwd -l username ## 锁定用户
passwd -u username ## 解锁用户
passwd -d username ## 使口令无效,删除口令
passwd f username ## 强迫用户下次登录时修改口令
## 如果默认无参,则修改当前用户密码

newgrp

切换用户组

newgrp root ## 这条命令将当前用户切换到 root 用户组,前提条件是 root 用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。

与用户账号有关的系统文件

/etc/passwd 文件 : Linux 系统中的每个用户都在/etc/passwd 文件中有一个对应的记录行,它记录了这个用户的一些基本属性。
/etc/group 文件: 用户组的所有信息都存放在/etc/group 文件中。

三. 文件与目录

在这里插入图片描述

4 2 1
R W X
1 1 1 = 7
1 0 1 = 5

chgrp

  更改文件属组

chown

  更改文件属主,也可以同时更改文件属组

chmod

  更改文件 9 个属性

文件与目录管理命令

cd,ls,pwd,mv,rm,mkdir,rmdir,cp

硬链接与软链接

硬链接是直接链接到文件, 文件标识是-,创建时文件必须存在命令是ln, 软链接是文件的一个快捷方式, 创建时文件可以不存在 命令是ln -s

文件被真正删除的条件是所有的硬链接全部被删除

安装程序 rpm/yum

rpm是redhat的标准安装程序

yum是对rpm的封装

yum常用命令

yum 源

  官方的 yum 源在国内访问效果不佳。需要改为国内比较好的阿里云或者网
易的 yum 源
在/etc/yum…repos.d/下进行如下操作(请做好相应备份):

> wget http://mirrors.163.com/.help/CentOS7-Base-163.repo 
> mv CentOS7-Base-163.repo CentOS-Base.repo
```sh

重建缓存:
```sh
> yum clean all
> yum makecache

环境变量生效

source /etc/profile
./ect/profile

四. Shell 脚本

  shell 语言是一门 linux 系统下的工具语言,主要用于写一些 linux 系统下的操作命令,实际上 Shell 是一个命令解释器, 它解释由用户输入的命令并且把它们送到内核。或者直接理解为 shell 命令是可以执行多个 linux 命令的脚本。Shell 种类众多, 有以下种类(一般使用的 Bash,就是 Bourne Again Shell,它是大多数 Linux 系统默认的 Shell):(shell: 壳,就是内核外层的壳语言, 可以给内核传递命令)

  • Bourne Shell(/usr/bin/sh 或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)

1. 解释器与执行 shell

解释器

执行 shell

chomd +x ./test.sh #使脚本具有执行权限 
./test.sh #执行脚本 “./”表示当前目录下

2. 演示

#!/bin/bash ## 声明bash脚本

echo $PATH ## PATH是环境变量
name= "xxy" ## 定义变量, name=不能有空格
echo $name ## 打印变量
echo "I am ${name}'s friend'" ## 字符串拼接

names= ("xxy","hj","hs") ## 数组定义
echo ${names[@]} ##遍历数组, 或者使用*
echo ${names[1]} ##取数组第二个元素

## 循环数组
for var in ${names[@]}; ## 每行可以有分号
do
## 判断
		if test $var = 'xxy' ## 可以没有空格
		then
			echo 'I am xxy'
		else
			echo 'I  am not xxy'
		fi
done


if [ $(ps ef | grep -c 'ssh') -gt 1 ]; ##查找是否有 ssh 服务
the 
	echo "ssh service is open"
fi

echo 当前程序名称 $0
echo 参数总数 $#
echo 是否正常退出 1:0 $?
echo 字符串参数列表 $*
echo 数组参数列表 $@
echo pid $$
echo pre pid $?
echo $!

重定向:

test 'aa' -eq "bb" > out ##命令输出到 out 文件,报错信息并不会进入 out 
test 'aa' -eq "bb" > out 2>&1 ##将 stderr 合并到 stdout,则报错信息进入了 out

五. 常用命令

ls,ll, wget, curl, history

  
  
  

举报

相关推荐

0 条评论