Linux基础

路径

image

  • 全路径
    就是绝对路径,从根目录开始查找文件
  • 相对路径
    从当前资料路径开始寻找,找到其他资源路径的过程
  • 特殊路径
    / 表示磁盘根,~表示/root(root用户的根目录),root文件夹的根目录

常用命令

命令 说明
ls -a 查看隐藏文件
touch 创建空白文件,创建多个文件:touch a.txt b.txt 创建隐藏目录:touch .a 创建隐藏文件:touch .a.txt
more 多屏显示文件内容,显示后,使用空格显示下一屏,回车显示下一行,q退出分屏显示,Ctrl + c退出,more -3 a.txt 显示前3行
head 显示文件钱多少行,默认前10行,如:head -100 【文件】 显示文件前100行
tail 显示文件末尾多少行,模式显示末尾10行,如:tail -100 【文件】 显示文件末尾100行
mkdir 创建目录,如创建多级目录:mkdir /aa/bb -p 加上-p创建多层目录,创建多个目录:mkdir aa bb cc
rmdir 删除一个空目录,如果非空目录不能删除
cp 复制,如复制的不是空目录文件,需加 -r
mv 移动或重命名,相当于剪切和重命名
date 查看当前时间
date -s 设置系统时期和时间,如:date -s '20200915 10:53:05'
nmcli c up ens33 启动网络,只针对当次使用,永久使用可修改:/etc/sysconfig/network-scripts/ifcfg-ens33 把里面改为ONBOOT=yes
reboot 重启,需要root权限才可以
shutdown -r 重启
shutdown -h 关机
poweroff 关机且断电
halt 关机CPU停止工作
halt -p 关机且断电

禁止使用rm -rf删除任何目录文件-r表示递归,-f表示强制删除,不需要确认

vi和vim

  • 编辑模式
命令 说明
a 追加方式进行编辑模式,在光标所在行的末尾
i 插入方式进行编辑模式
o 小写o,光标所在位置之下,新增一空白行
O 大写O,光标所在位置之上,新增一空白行
  • 命令模式
命令 说明
dd 删除光标所在行
【数字】dd 按下数字5,再按dd,光标所在行为第一行,往下一共5行都删除
gg 光标跳到文件头
yy 复制光标所在行内容
【数字】yy 按下数字5,再按yy,复制光标所在行为第一行,往下一共5行都复制
p 粘贴复制的内容到光标所在行的下行
u 撤销
  • 命令行模式
命令 说明
ESC键 退回到命令模式
:set nu 显示行号
😒/aaa/bbb 冒号: + s/aaa/bbb 替换光标所在行的aaa替换成bbb,从左往右第一次出现的aaa
😒/aaa/bbb/g 冒号: + s/aaa/bbb/g 替换光标所在行的aaa替换成bbb,出现所有的aaa
:%s/aaa/bbb/g 替换整个文件的aaa替换成bbb

echo

echo命令 说明
> 覆盖方式输出到指定文件,比如:echo "helloworld">a.txt
>> 追加方式输出到指定文件,如:echo "helloworld">>a.txt
2>> 错误信息追加
&>> 正确 和 错误信息写入同一文件

cat

cat命令除了正常查看文件外,还可以重定向输出

[root@localhost ~]# cat >a.txt<<EOF
> 1111111111111
> 2222222222222
> 333333333333
> 44444444444
> EOF
[root@localhost ~]# cat a.txt
1111111111111
2222222222222
333333333333
44444444444
[root@localhost ~]#

两个EOF中间,可以重定向输入多行内容,写完后写个EOF结束。

tac命令,按行倒序显示

[root@localhost ~]# tac a.txt
44444444444
333333333333
2222222222222
1111111111111
[root@localhost ~]#

nl等于cat命令带上了行号

[root@localhost ~]# nl a.txt
     1  1111111111111
     2  2222222222222
     3  333333333333
     4  44444444444
[root@localhost ~]#

压缩与解压缩

tar.gz格式

tar命令相关参数

  • -c 创建压缩文件,tar -c 【压缩后文件名】 【需压缩文件】
  • -C 指定压缩文件存放位置,tar -xf 【压缩文件】 -C 【到指定目录】
  • -x 解压,tar -xf 【压缩文件】
  • -t 查看内容
  • -z 有gzip属性
  • -v 显示所有过程
  • -f 使用压缩或解压缩文件的文字,这个是最后一个参数,后面只能接文件名

zip格式

如果压缩文件是zip格式,使用unzip命令解压
unzip相关参数

  • -n 解压缩是不要覆盖原有文件
  • -d 指定文件解压后所要存储目录,unzip 【压缩文件】 -d 【到指定目录】
  • -v 执行时显示详细信息

目录结构

# 安装tree插件,可以查看当前路径的目录树
yum install -y tree

# 如下使用:输入tree即可,不要在根目录执行,意义不大,目录树太大
[root@localhost local]# tree
.
├── bin
├── etc
├── games
├── include
├── lib
├── lib64
├── libexec
├── sbin
├── share
│   ├── applications
│   ├── info
│   └── man
│       ├── man1
│       ├── man1x
│       ├── man2
│       ├── man2x
│       ├── man3
│       ├── man3x
│       ├── man4
│       ├── man4x
│       ├── man5
│       ├── man5x
│       ├── man6
│       ├── man6x
│       ├── man7
│       ├── man7x
│       ├── man8
│       ├── man8x
│       ├── man9
│       ├── man9x
│       └── mann
└── src

32 directories, 0 files
[root@localhost local]#
命令 说明
/boot 启动引导、核心文件、镜像文件等等
/dev 设备信息
/lib 系统或应用所依赖的动态链接库
/lib64 存放64位的
/etc 存放系统管理配置和子目录
/usr 用户装软件程序
/home 用户自己的目录
/opt 安装软件的目录
/proc 虚拟目录,内存映射用的
/root 管理员目录
/sbin s表示super,存放管理员程序或命令
/bin 系统常用命令
/tmp 临时文件存放,解压缩等
/sys 系统文件存放
/media 媒介,比如光盘、U盘
/mnt 给用户临时挂载的目录
/var 日志数据
/run 系统运行时放的一些临时文件,重启清空

etc目录

/etc目录存放重要的配置文件

文件 说明
/etc/sysconfig/network-scripts/ifcfg-ens33 网卡配置文件,虚拟机叫ens【数字】这样的文件,服务器可能叫eth0,或者Dell服务器叫em【数字】
/etc/fstab 开机自动挂载的列表
/etc/hostname 主机名称,CentOS7可以修改:hostnamectl set-hostname 【新名称】下次连接就变新名称了,如果不是CentOS7的话,编辑文件vim /etc/hostname在里面直接填写
/etc/hosts 查看本地DNS域名
/etc/resolv.conf DNS服务器的地址
/etc/profile 设置系统环境变量参数,比如:$PATH,这里的环境变量对系统内所以用户生效。修改完profile文件后,执行source /etc/profile生效
/etc/bashrc 这个文件设置系统bash shell相关的内容,对所有用户都起作用。只有运行了bash命令,这个文件就被加载。
/etc/shells 系统装的Shell应用程序
/etc/redhat-release 系统版本号
/etc/init.d 系统管理命名,初始化
/etc/yum.repos.d yum源存放目录
/etc/inittab 运行级别
/etc/sudoers root用户权限,如果普通用户设置到这个文件,就有root权限
/etc/shadow root和其他用户的密码
/etc/sysctl.conf 内核端口转发,内核设置随机端口范围,设置内核参数
/etc/passwd 账号信息文件
/etc/group 设置用户的组和相关信息
/etc/sudoers sudo命令配置文件,权限提升
/etc/skel 添加新用户时候,系统创建家目录,修改权限所有者,会把/etc/skel下面的所有内容复制到用户家目录

ens33文件

查看文件/etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
# 网卡获取IP的方式,我这设置的静态的,默认是DHCP自动获取
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=ens33
# 网卡名称,设备名称
DEVICE=ens33
# 开启是否启动网卡
ONBOOT=yes
# IPv4地址格式
IPADDR=10.10.10.10
# 网关地址,也就是路由地址,我这是虚拟机,设置成了.2
GATEWAY=10.10.10.2
DNS-NAMESERVER=8.8.8.8
# 子网掩码,为了寻址方便,子网划分
NETMASK=255.255.255.0
ZONE=public
DNS1=8.8.8.8
# UUID配置:网卡标识符,我已经删除了

修改为配置后,执行systemctl restart network可以不用重启就能生效

usr目录

文件 说明
/usr/local 编译安装软件默认路径,比如安装tomcat、nginx,对应的windows系统的C:\Program Files目录
/usr/src 存放的源码文件目录,开源的软件

var目录

文件 说明
/var/log 顾名思义,记录系统及软件运行信息日志文件的目录,非常重要,有messages/系统及日志、secure/安全日志、dmesg/硬件信息加载日志、cron/定时任务日志、wtmp/登录者信息、lastlog/用户近期登录情况

文件属性和权限

文件属性 说明
【d】开头 目录
【-】开头 文件
【l】开头 链接
【c】开头 设置,如:键盘,鼠标
【b】开头 存储设备
组别:下标从0【表示文件】开始 从第2个字符,3个字符为一组,一个3组(9个字符) 权限
第一组:1 2 3 2~4这三个字符 属主权限,该文件拥有者
第二组:4 5 6 5~7这三个字符 属组权限,同一用户组所有用户都有该文件权限
第三组:7 8 9 8~10这三个字符 其他用户权限,非以上两组的用户

每组里的三个字符,从第一个到第三个,分别表示 读【R】/4、写【W】/2、执行【X】/1,没有权限用【-】/0表示

修改文件属主chown

# 更改文件属主
chown -R 【属主名】 【文件或目录】

# 更加文件属主同时,也修改属组
chown -R 【属主名】: 【属组名】 【文件或目录】

举例:
image

修改文件权限chmod

# 表示从第一组到第三组设置权限
chmod 【3位数字】 【文件】

举例:5表示4+1,表示设置 读 和 执行的权限
image
举例:4表示第一组设置读权限,后面00表示设置第二组和第三组没有权限
image
举例:7=4+2+1,5=4+1,默认就是这个权限,同理这种最高权限,那就是777
image

修改目录里文件权限
使用-R 递归目录里面的,不然只有目录权限修改,里面文件都没修改到
image

符号类型修改文件权限

举例:给文件修改x执行权限,给每个组添加了执行权限
image

符号使用说明:

  • u user用户
  • g group用户组
  • o other其他用户
  • a all所有,代表u+g+o
    举例:给用户添加读、写、执行权限
    image
    去除权限
    举例:a表示所有用户,去除第一组第二组第三组的w写权限
    image
    分别设置每个组,给最高权限:
    image

索引节点属性

ls -lhi显示索引节点,显示inode

用户管理

  • 单用户多任务
    一个用户登录到系统上,执行多个服务任务和进程。
  • 多用户多任务
    用不同账号,不同用户权限也不同。
    不同任务由不同维护人员完成,也可以说是不同的用户。

使用id命令查看用户信息UID和GID,数值越小,权限优先级越高
image
id 【用户名】查看用户id
image

超级管理员用户uid是0,数值最小,表示最高权限
普通用户uid >= 1000,如果是CentOS6的话,是>=500到65535
虚拟用户uid 1到999这个范围,CentOS6的话是 1到499

用户管理命令

命令 说明
id 命令 查询用户信息UID和GID
su 命令 切换不同用户:su root,工作环境不会切换过来
su - 【用户】 命令 切换账户后,工作环境也切换过来了,退出画按Ctrl + B
sudo 命令 普通用户提权,如:sudo yum install -y docker-ce,sudo命令的执行过程是先去看etc/sudoers文件,用户是否有运行sudo的权限
whoami 命令 查当前用户是哪个,image
passwd 命令 修改密码:sudo passwd 【用户名】
last 显示用户最近登录信息
lastlog 显示用户登录日志,哪些登陆过哪些没登录

useradd

命令 说明
-d 指定用户主目录,-m表示如果不存在就创建,会创建家目录,如:useradd -d /home/【用户】 -m 【用户】
-M 大写M表示创建用户不创建家目录
-g 指定所属用户组,举例:useradd 【用户名】 -g 【用户组名】
-G 指定用户所属用户组 或 附加组
-s 指定用户命令解释器,如:useradd -s /bin/sh -g 【用户组】 【用户】 也可以写useradd 【用户】-s /bin/sh -g 【用户组】
-u 指定UID

userdel

使用userdel -r 【用户名】删除用户,直接把用户数据目录都给删除。
安全起见,最好是用userdel 【用户名】删除,然后修改用户名目录(/home目录下的用户目录)做备份,
删除用户更新的是/etc/shawod/etc/group/etc/passwd这三个文件的数据。

字符集

功能 命令 说明
查看字符集 echo $LANG $是取变量值 查到的是:en_US.UTF-8语言.字符集
临时修改字符集 export LANG='zh_CH.UTF-8' 然后打印查看echo $LANG,如果重新连接后,字符集会失效
永久修改字符集 修改文件/etc/locale.conf,方法二:localectl set-locale LANG=en_US.UTF-8 修改完后让其生效source /etc/locale.conf

特殊符号

符号 说明
- 上一次目录,如:cd -
' ' 单引号引起来的是字符常量,如:echo '$LANG'echo $LANG区别:image
" " 双向号作用是解析命令,如:echo "$LANG"echo $LANG区别:image
\ 反斜杠用于转义字符,用在一些命令、变量、路径等,输出时候配合""使用,如:echo -e "\n"打印一个回车换行
> 标准输出重定向,先清空文件内容再写入,覆盖式写入
>> 追加到文件内容末尾
< 标准输入重定向,用来指引命令从哪读取数据
<< 追加输出重定向,和cat命令配合使用向文件追加多行内容
2>&1 0【标准输入】,1【标准输出】,2【错误输出】,所以2>&1表示错误信息和正确信息输入到同一个文件中
| 管道,把前一个命令的结果通过管道传给后面的命令,如:cat 【文件】 | wc -l 统计这个文件行数
# 表示注释
$ 取变量值,一般全大写的单词都是变量
& 一般在脚本中用的多,表示在后台运行
; 用户表示一行命令或语句结束,或者表示分隔符
! 找出最近一次执行的命令并执行,如:!ls表示最近一次使用ls命令并执行
* 匹配任意字符,包括空的
? 匹配任意一个字符,有且仅有一个
[ ] 用户匹配一个范围,如:[abcd],匹配这4个字符的任意一个字符。image如果是[a-z]表示字符a到z这个范围的任意一个字符,包括可以使用[0-9]匹配数字,不过中文不太好适配

如:[!abcd]表示取反,不包含这4个字符其中的任意一个,也可以写[!a-d][^a-d]

链接

软连接和源文件Inode节点号不同,硬链接和源文件Inode节点号相同。
创建硬链接不带-s参数,带-s参数创建的链接是软连接。
软连接可以针对于文件也可以针对于目录,硬链接只能针对于文件。
软连接可以跨文件系统使用,硬链接不行。
删除软连接不会对源文件产生影响,删除硬链接对源文件以及软连接文件无影响。
删除源文件,对硬链接无影响,软连接会导致文件丢失。
同时删除源文件和硬链接,整个文件才会真正删除。
不管硬链接还是软连接操作文件,通过链接方式修改文件内容,都可以造成源文件内容修改。

软连接

软连接意思好比文件或目录的快捷方式,修改或创建软连接不会对文件本身造成影响
软连接可以针对于文件也可以针对于目录
使用命令:

ln -s 【文件】 【软连接】

image

硬链接

硬链接修改后,原文件也会发生修改,硬链接只能针对于文件
使用命令

ln 【文件】 【硬链接】

image

posted @ 2022-12-14 09:26  aBiu--  阅读(47)  评论(0编辑  收藏  举报