linux基础

1,Linux命令入门

1.1linxu的命令组成

ls
ls -a /root

1.2 切换用户

所有的普通用户是通过管理员用户创建

用户之间切换使用su命令

[training@centos-template ~]$ su root
Password: 
[root@centos-template training]# 

1.3 用户的身份识别

id命令

[root@centos-template training]# id
uid=0(root) gid=0(root) groups=0(root)

who命令

[root@centos-template training]# who am i
training pts/0        2022-12-28 15:32 (172.31.0.240)
[root@centos-template training]# whoami
root

2,linux获取帮助

2.1 whatis

[root@centos-template training]# whatis mkdir
mkdir (1)            - make directories
[root@centos-template training]# cp --help

2.2 man page

[root@centos-template training]# man cp
  • 使用上下键浏览
  • q退出
  • /keywork 搜索, n在关键字之间向后下一个, N在关键字之间向前下一个

3,浏览linux文件系统

cd pwd ls file touch

4,文件和目录管理

cp 文件拷贝和重命名
mv 文件移动
rm 文件删除
mkdir 创建目录
ln 链接

5,linux文件归档管理

5.1 linux文件打包tar

Linux一种打包工具,很多的文件或者目录打包成为一个单一的文件,方便传输或者存储 , 备份,但 tar工具默认不包含压缩的功能

[root@trining] tar cvf etc.tar /etc

5.2linux文件压缩

5.2.1 zip

安装压缩工具和words

[root@trining share]# yum install words -y
[root@trining dict]# yum install zip unzip -y
[root@trining opt]# zip linux.words.zip linux.words
[root@trining opt]# unzip linux.words.zip

zip压缩文件夹,使用 zip来加压缩文件夹的时候需要使用 -r参数

[root@trining opt]# zip r words1.zip words1/
[root@trining opt]# unzip words1.zip

5.2.2 bzip2

安装bzip2

[root@trining opt]# yum install bzip2 -y
[root@trining opt]# bzip2 -c linux.words > linuxword.bz2
[root@trining opt]# bunzip2 linuxword.bz2

5.2.3 gzip

[root@trining opt]# gzip c linux.words words_linux.gz
[root@trining opt]# gunzip words_linux.gz

5.3 Linux文件打包并压缩

tar -jcvf -j 调用 bzip

[root@trining opt]# tar jcvf etc.tar.bz2 /etc

使用-z就是调用 gzip压缩软件

[root@trining opt]# tar zcvf etc.tar.gz /etc

解压缩xvf

[root@trining opt]# tar xvf etc.tar.gz
[root@trining opt]# tar xvf etc.tar.bz2

6 Linux I/O操作

6.1 标准输入( stdin) , 默认数值 0

定向输入

[root@training cat < /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
[root@centos-template training]# cat 0< /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sat Jul  2 09:19:55 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=667c51dd-ac76-4df4-b20b-0d7ffaaa4426 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

6.2 标准输出 (stdout) , 默认数值 1

重定向">",当重定向文件不存在的时候,会自动创建文件,文件存在,先清除文件里面的内容,然后写入

[root@training] ls 1> /tmp/lsoutput 1.txt
[root@training] cat /tmp/lsoutput 1.txt

将ls命令的结果重定向到 /tmp/lsoutput.txt

[roo t@training] ls /tmp/lsoutput.txt
[root@training] ls /
lsoutput.txt
[root@training] cat /tmp/lsoutput.txt

重定向追加

[root@training] ls l /tmp/xx.txt

6.3 标准错误 (stderr) , 默认数值 2

错误重定向

切换到普通用户。

过滤正确输出到指定的文件,错误的保留在屏幕上。

[training@centos-template ~]$ find /etc -name passwd >> /tmp/ok-1.txt
[training@centos-template ~]$ find /etc -name passwd 1>> /tmp/ok-1.txt
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/pki/CA/private’: Permission denied
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/selinux/targeted/active’: Permission denied
find: ‘/etc/selinux/final’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
[training@centos-template ~]$ cat /tmp/ok-1.txt 
/etc/passwd
/etc/pam.d/passwd


/etc/passwd
/etc/pam.d/passwd

过滤错误输出到指定的文件,正确的保留在屏幕上

[training@centos-template ~]$ find /etc -name passwd 2> /tmp/ok-err.txt
/etc/passwd
/etc/pam.d/passwd
[training@centos-template ~]$ cat /tmp/ok-err.txt 
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/pki/CA/private’: Permission denied
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/selinux/targeted/active’: Permission denied
find: ‘/etc/selinux/final’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied

&> 将标准 错误 输出 和 标准输出都重定向

[training@training] find /etc -name passwd &> /tmp/ok-all.txt

6.4 Linux管道符

管道符左边的输出当做右边输入

[training@training ~]$ cat /etc/passwd | grep "root" | grep bash
root:x:0:0:root:/root:/bin/bash

6.5 多目标输出

tee 工具使用

[training@training ~]$ cat /etc/passwd | grep "root" | grep bash | tee /tmp/only_one
root:x:0:0:root:/root:/bin/bash
[training@training ~]$ cat /tmp/only_one
root:x:0:0:root:/root:/bin/bash

7 Linux 文本编辑及文本处理

head 查看文件头部的部分内容,默认查看十行。
使用 -n 选项可以指定查看的行数
tail  查看文件末尾的部分内容,默认查看末尾十行内容。
cat 查看 Linux 文件, 无论文件多大,全部打印在屏幕上
more
less  以屏幕尺寸进行显示,可以往前翻往后翻浏览文件
grep 基于行检索文件,在/etc/passwd 文件中检索包含 root 关键字的行。
grep root /etc/passwd
cut  基于列检索文件
使用 :分割,打印第一列和第三列   cut -d ":" -f 1,3 /etc/passwd
使用 :分割,打印第三列  cut -d ":" -f 3 /etc/passwd
split 切分文件,场景针对大文件,切割文件 

8 vim 编辑器使用

命令模式:可以移动光标、删除字符等。

编辑模式:在此模式下可以输入字符,按 ESC 将回到命令模式。

末行模式:可以保存文件、退出 vim、设置 vim、查找等功。

注:vim 编辑器中严格区分字母大小写,大部分大写字母与小写字母所代表的的指令不相同

Vim 的默认模式:打开文件后所处的模式使用方向键或 h、j、k、l 进行移动光标

J 合并当前行和下一行的内容
撤销 u 撤销最近一次更改 
单词间移动: w, b 
句子间移动: ), ( 
段落间移动: }, { 
向下跳转到几行 x (x 是所要跳转的行数,然后回车) 
跳转到文章首行 gg 
跳转到文章尾行 G
$ 将光标快速跳转到本行的行尾字符
^ 将光标快速跳转到本行的首行字符
nw n 为整数,将光标快速跳转到当前光标所在位置的后 n 个单词的首字母
x 删除光标处的单个字符
dd 删除光标所在的行
dw 删除当前字符到单词尾的所有字符
d$ 删除当前字符到行尾的所有字符
d^ 删除当前字符到行首的所有字符
ndd n 为整数,删除当前行下方的 n 行
yy 复制当前正行内容到 VI 缓冲区
P 将数据放置在光标所在行的上一行
yw 复制当前光标到单词尾部字符的内容到 VI 缓冲区
p 将数据放置在光标后
y$ 复制当前光标到行尾的内容到 VI 缓冲区
y^ 复制当前光标到行首的内容到 VI 缓冲区
nyy 复制当前行下方的 n 行

查询方式

/关键词
/keyword 搜索 keyword,以⻩⾊⾼亮提示,n 跳转到下⼀个,N 跳转到上⼀个
:set number(:set nu)列出每一行的编号
:s/old/new 替换当前行的第一个字符 old 为字符 new 替换前
:s/old/new/g 替换当前行的所有字符 old 为字符 new 替换前
:m,ns/old/new/g 替换当前行号 m 到行号 n 的所有字符 old 为字符 new
:%s/old/new/g 替换整个文本的所有字符 old 为字符 new

9 Linux 用户和组管理

9.1 Linux 组管理

创建组
groupadd devopers
删除组
groupdel operater

9.2 Linux 用户管

用户 id 默认从 1000 开始 (0-200 属于系统用户,201-999 服务账号)1000 就是系统中的第一个用户

# 创建 Linux 用户
useradd zhangsan
# Linux 里面默认创建用户在不指定主组的情况下,默认会建立一个与用户名同名的一个组,称之为私有组(private group)
cat /etc/group |grep zhangsan
# 指定主组,将不会产生私有组
[root@trining ~]# useradd -g devopers lisi
[root@trining ~]# cat /etc/passwd |grep lisi
lisi:x:1002:1001::/home/lisi:/bin/bash
[root@trining ~]# cat /etc/group |grep lisi
# 使用-g 指定主组,-G 指定附属组,主组和附属组之间的区别是什么?
# answer: 主组和附属组之间没有任何区别,一个用户可以成为多个组的成员

# 删除 Linux 用户
# userdel 命令只能删除用户,不删除用户附属的东西
[root@trining ~]# userdel wangwu
# 正确删除用户和附属信息,需要使用-r 参数
[root@trining mail]# userdel -r zhangsan

# 用户关联到组
#usermod -G g1 lisi
#usermod 附属组 组名 用户名

# 修改用户信息
-u 修改用户的 id
-c 修改用户的全名(注释)
root@trining mail]# usermod -c "user lisi" lisi

# 用户密码设置,linux 默认不允许使用空密码登录
# 修改 root 的密码
[root@trining mail]# passwd
# 使用管理员的权限修改 lisi 的密码
[root@trining mail]# passwd lisi
# 使用管理员的权限修改 lisi 的密码,但是密码显示在屏幕上,不安全不推荐

9.3 操作系统用户切换

使用 su 切换用户

#- 使用管理员切换到普通用户,不需要密码验证,反之需要密码验证
# 千万不要忘记使用“-”,“-” 的意思是登录的意思
# 不加“-”,用户切换不加载用户的环境变量,在后期使用中会出现问题
禁止操作连环的切换用户
使用 sudo 提升用户权限, 让普通的用户能够使用管理员的权限
切换至 training 用户,若当前使用的用户为 training 则无需切换。

10 Linux 权限管理

10.1 Linux 基本权限

r 读 w 写 x 执行

权限表达方式 (rwx 000-111【二进制】 0-7 【八进制】)

r 100 4
w 010 2
x 001 1

ls -l 命令获取到的信息

d rwx r-x r-x. 2 root root 6 Jul 11 20:36 Desktop
type 拥有人 拥有组 其他

拥有人 root rwx 拥有组 root 组 r-x 其他人 other r-x

一组权限用 3 位来表示 rwx 相对应的位置有权限就置为 1,没有就是- 再范围为 8 进制,得到最大的权限 7 最小权限是0
# 777 拥有人权限 rwx ,7 拥有组 rwx ,7 ,其他人 rwx ,7
# 644 拥有人权限 rw- ,6 拥有组 r-- ,4 ,其他人 r-- ,4
# 755 拥有人权限 rwx ,7 拥有组 r-x ,5 ,其他人 r-x ,5

10.2 修改权限

chmod 命令用来修改权限,通常有以下两种形式。

# 使用数字形式修改权限
[root@trining lab1]# chmod 664 passwd 
使用运算符修改权限
# u owner 
# g group
# o other
# a all
#运算符号 + - =
[root@trining lab1]# chmod u+x passwd 
[root@trining lab1]# chmod g-w passwd
[root@trining lab1]# chmod a=r passwd 

chown 改变文件的拥有人
[root@trining lab1]# chown myuser passwd 
使用 chown 命令只修改拥有组
[root@trining lab1]# chown :g1 passwd 
使用 chown 命令只修改拥有组和拥有人
[root@trining lab1]# chown root:root passwd

11 Linux 软件包管理

查看操作系统已经安装过的软件包
[root@localhost ~]# rpm -qa
[root@localhost ~]# rpm -qa firewalld
查询软件包⾥⾯的⽂档⽂件和配置⽂件
[root@localhost ~]# rpm -qc yum
查询⼀个 RPM 包中包含的⽂件
[root@localhost ~]# rpm -ql yum

根据⽂件路径查询,属于是那个 RPM 安装包
[root@localhost ~]# rpm -qf /etc/my.cnf

使用 rpm 安装软件

下载 http 软件包以及其依赖包
[root@localhost ~]# yum install --downloadonly --downloaddir=/tmp httpd -y
[root@localhost ~]# cd /tmp
查询未安装的 RPM 包需要加 p 参数
[root@localhost tmp]# rpm -qip httpd-2.4.6-97.el7.centos.x86_64.rpm
rpm 安装软件包,rpm -ivh 安装软件包不能⾃动解决依赖关系
[root@localhost tmp]# rpm -ivh httpd-2.4.6-97.el7.centos.x86_64.rpm
错误:依赖检测失败:
/etc/mime.types 被 httpd-2.4.6-97.el7.centos.x86_64 需要
httpd-tools = 2.4.6-97.el7.centos 被 httpd-2.4.6-97.el7.centos.x86_64 需要
libapr-1.so.0()(64bit) 被 httpd-2.4.6-97.el7.centos.x86_64 需要
libaprutil-1.so.0()(64bit) 被 httpd-2.4.6-97.el7.centos.x86_64 需要

RPM 卸载软件包(rpm -e)

• rpm卸载软件时候只卸载默认数据(rpm -ql packages_name), 安装 软件之后或者过程中脚本⾃动产⽣的⽂件不被删除

• rpm命令操作的时候,是需要查询RPM数据库

[root@localhost ~]# cd /var/lib/rpm
[root@localhost rpm]# ls

你可能感兴趣的:(云运维,linux,服务器,运维)