linux入门!

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 本文档介绍了Linux系统入门的基础知识,包括操作系统概述、CentOS系统的安装与远程连接、文件操作、目录结构、用户和用户组管理、权限管理、Shell基础、输入输出、压缩打包、文件传输、软件安装、文件查找、进程管理、定时任务和服务管理等内容。重点讲解了常见的命令和操作技巧,帮助初学者快速掌握Linux系统的基本使用方法。

linux系统入门:

1.操作系统介绍

软件:驱动硬件

硬件:看得见,摸得着

操作系统:特殊的软件,控制硬件,内核+软件

操作系统:

unix(1969年诞生于贝尔实验室)

硬件-系统(hp-ux)-软件

BSD: freeBSD 黑莓

ios,mac os,苹果的 第一代 操作系统于1984年 发布

ms-dos 单任务

window 1.0 1985年发布 windows NT

开源 闭源

minix

linux: 1991年 林纳斯.托瓦兹 linux内核 1.0/GPL

现在的操作系统:多任务,多用户

GNU: 贡献了很多免费使用的软件

GPL 协议

image-20210719090813422

gnu/linux:

中科麒麟

linux发行版:

linux内核

红帽redhat : fedora centos 最稳定企业服务器操作系统centos6 2.6.32 centos7 3.10 centos8 4.10

debian: ubuntu kali 国产linux 内核 5.10 版本新 人工智能 自动驾驶 大数据

suse: opensuse suse企业版

2.centos系统的安装

ios镜像下载地址:

https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.8.2003/isos/x86_64/CentOS-7-x86_64-DVD-2003.iso

install 安装

test

media 媒体 媒介 光盘

lvm:逻辑卷

el7: enterprise linux 7

linux远程控制:

telnet协议: 明文

ssh协议: 加密

3.远程连接linux

第一步:查看ip地址 ip addr

image-20210719113721315

#远程登录linux系统
ssh  root@192.168.202.136
#断开连接
exit
#重启系统
reboot
#立即关机
shutdown  -h  now
#十分钟之后关机
shutdown  -h  10

image-20210719113935856

4.文件操作

命令1:

#切换目录
cd  #全称change directory
例子1:
cd  local    #切换到子目录local
cd  /usr/local  #切换到目录/usr/local
cd  ..       #切换到上一级目录

命令2:

#print work directory
pwd

命令3:

#新建文件
touch
例子1: touch 1.txt  #创建单个文件
例子2: touch test{01..10}.txt #批量创建文件
例子3: touch /root/4.txt  #在制定的/root目录下,创建文件4.txt

命令4:

#查看目录下的文件
ls全称list
例子1:ls  test09.txt   #查看test09.txt是否存在
例子2:ls  *.txt        #查看以txt结尾的所有文件
例子3:ls  -1           #以一行一个文件的方式显示
例子4:ls  -a           #查看所有文件,包括隐藏文件
例子5:ls -a -1         #查看所有文件,以一行一个来显示
例子6:ls -l            #以长格式查看文件

以.开头的文件是隐藏文件,默认不显示

命令5:

#重命名
mv全称move
例子1:mv .123.txt 123.txt   #将.123.txt文件重命名为123.txt
例子2:mv 123.txt /opt       #将当前目录下的123.txt移动到/opt目录下

命令6:

#复制
cp全称copy
例子1:cp test01.txt /opt/   #将当前目录下的test01.txt复制到/opt目录下
例子2:cp -a dev04 /opt/     #将目录dev04复制到/opt下

命令7:

#删除
例子1:  rm /opt/123.txt  #将/opt目录下的123.txt文件删除,需要回复y确认删除
例子2: rm -f /opt/test01.txt #将/opt目录下的test01.txt文件删除,不需要回复

#删除一个目录,linux的参数大部分没有先后顺序
[root@localhost ~]# rm -fr dev
[root@localhost ~]# rm -rf dev01
[root@localhost ~]# rm -f -r dev02
[root@localhost ~]# rm -r -f dev03

命令8:

#创建文件夹 创建目录directory
mkdir 全称make directory 
例子1:mkdir dev   #创建一个dev目录
例子2:mkdir dev{01..10}     #批量创建多个目录
例子3:mkdir -p 1/2/3/4/5/6  #一次性创建多级子目录

命令9:

#vi编辑器
例子1: vi  test03.txt   #编辑文件test03.txt
默认是常规模式,按ioa键进入编辑模式
在编辑模式中按esc回到常规模式
常规模式按:进入命令模式
命令模式按esc回到常规模式

image-20210719164804777

命令10:

#从上往下顺序查看文本内容
cat
例子1:cat  test03.txt  #查看test03.txt的全部内容
例子2:cat -n test03.txt #查看内容的时候显示行号
#从下往上倒着查看文本内容
tac
例子1:tac  test03.txt  #倒着查看test03.txt的全部内容

命令11:

#查看文件头几行
head
例子1: head  test03.txt       #查看文件的前十行,默认
例子2: head  -n 5 test03.txt  #查看文件的前5行
例子3: head  -5  test03.txt   #查看文件的前5行

命令12:

#查看文件倒数几行
tail
例子1: tail  test03.txt       #查看文件的倒数十行,默认
例子2: tail  -n 5 test03.txt  #查看文件的倒数5行
例子3: tail  -5  test03.txt   #查看文件的倒数5行

管道

[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:83:e4:d9 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.128/24 brd 10.0.0.255 scope global noprefixroute dynamic ens33
       valid_lft 1253sec preferred_lft 1253sec
    inet6 fe80::ffe1:31ed:56dc:d9aa/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@localhost ~]# ip addr|tail -4
    inet 10.0.0.128/24 brd 10.0.0.255 scope global noprefixroute dynamic ens33
       valid_lft 1224sec preferred_lft 1224sec
    inet6 fe80::ffe1:31ed:56dc:d9aa/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@localhost ~]# ip addr|tail -4|head -1
    inet 10.0.0.128/24 brd 10.0.0.255 scope global noprefixroute dynamic ens33
[root@localhost ~]# ip addr|tail -4|head -1|cut -c 10-19
10.0.0.128

5.目录结构

image-20210720092053213

/bin      #存放二进制的可执行文件,命令,特别重要,不能删除!
/boot     #开机启动需要的文件, 特别重要,不能删除!
/dev      #device设备文件,特别重要,不能删除!
/etc      #存放配置文件,特别重要,不能删除!
/home     #普通用户的家目录
/lib      #library 32位库,一般是so结尾,特别重要,不能删除!
/lib64    #library 64位库,一般是so结尾,特别重要,不能删除!
/media    #多媒体
/mnt      #mount挂载光盘,U盘
/opt      #部分软件安装存储目录
/proc     #process进程 , 特别重要,不能删除!
/root     #root用户的家目录,特别重要,不能删除!
/run      #运行,程序运行的时候产生的文件
/sbin     #super bin超级用户才能使用的命令 ,特别重要,不能删除!
/srv      #源代码
/sys      #system系统目录 ,特别重要,不能删除!
/tmp      #用来存放临时文件的目录
/usr      #用户级的目录,特别重要,不能删除!
/var      #variable 变化的文件,特别重要,不能删除!

命令13

#统计
wc
wc -l按行统计,不会单独使用,需要接在管道后面
例子1:
[root@localhost ~]# cat test03.txt |wc -l
18
[root@localhost ~]# cat -n test03.txt 
     1    sdsdsdsdsdsdsd是的是的
     2    
     3    sdsd
     4    65656
     5    sdsd
     6    sdsd
     7    sdsd
     8    33333
     9    565656565
    10    33333
    11    565656565
    12    33333
    13    565656565
    14    33333
    15    565656565
    16    
    17    
    18    sdssds  ;;;;

命令14

#生成数字序列
seq
例子1:产生一个5到12的序列
[root@localhost ~]# seq 5 12
5
6
7
8
9
10
11
12

例子2:产生一个5到12等宽的序列
[root@localhost ~]# seq -w 5 12
05
06
07
08
09
10
11
12

命令15

#按行过滤字符串
grep
例子1: #普通过滤
[root@localhost ~]# grep '3' test03.txt 
33333
33333
33333
33333
例子2: #显示行号
[root@localhost ~]# grep -n '3' test03.txt 
8:33333
10:33333
12:33333
14:33333

grep精准匹配-w

image-20210720113338479

命令16

#按列过滤
awk
例子1: 取列,$1代表第一列,$2代表第二列,$NF代表最后一列
[root@localhost ~]# cat test01.txt 
row 1, cell 1    row 1, cell 2
row 2, cell 1    row 2, cell 2
[root@localhost ~]# awk '{print $1}' test01.txt 
row
row
[root@localhost ~]# awk '{print $2}' test01.txt 
1,
2,
例子2:以逗号,做分隔符
[root@localhost ~]# cat test01.txt 
row 1, cell 1    row 1, cell 2
row 2, cell 1    row 2, cell 2
[root@localhost ~]# awk -F ','   '{print $1}' test01.txt 
row 1
row 2
[root@localhost ~]# awk -F ','   '{print $NF}' test01.txt 
 cell 2
 cell 2

命令17

#排序
sort
例子1:
[root@localhost ~]# cat test02.txt
3
2
6
4
8
7
5
3
2
1
2
3
4
5
6
9
1
5
7
[root@localhost ~]# cat test02.txt|sort -n
1
1
2
2
2
3
3
3
4
4
5
5
5
6
6
7
7
8
9

命令18:

#统计去重
uniq
例子1:
[root@localhost ~]# cat test02.txt|sort -n
1
1
2
2
2
3
3
3
4
4
5
5
5
6
6
7
7
8
9
[root@localhost ~]# cat test02.txt|sort -n|uniq -c
      2 1
      3 2
      3 3
      2 4
      3 5
      2 6
      2 7
      1 8
      1 9

6.用户和用户组管理

命令19

#作用查看所有用户最后的登录时间
lastlog
例子:
[root@qstack ~]# lastlog 
Username         Port     From             Latest
root             pts/0    111.198.38.138   Mon Sep  6 11:17:25 +0800 2021
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
lp                                         **Never logged in**
sync                                       **Never logged in**
shutdown                                   **Never logged in**
halt                                       **Never logged in**
mail                                       **Never logged in**
uucp                                       **Never logged in**
operator                                   **Never logged in**
games                                      **Never logged in**
gopher                                     **Never logged in**

命令20:

#创建用户
useradd 
#创建一个用户
例子1:useradd  test1

#创建用户,并给用户指定用户组
例子2:
[root@localhost tmp]# useradd  -g test1  test3
[root@localhost tmp]# id test3
uid=1002(test3) gid=1000(test1) 组=1000(test1)

命令21:

#设置密码
passwd
例子1:passwd  test1
#用root用户给普通用户修改密码
[root@localhost ~]# passwd test1
更改用户 test1 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

#普通用户自己修改密码
[test1@localhost ~]$ passwd 
更改用户 test1 的密码 。
为 test1 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
无效的密码: 密码少于 8 个字符
新的 密码:
无效的密码: 密码少于 8 个字符
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
passwd: 已经超出服务重试的最多次数

例子3:
#免交互修改密码
echo 123456|passwd --stdin test1

命令22:

#检查用户是否存在
id
例子1: 
#用户存在,系统的返回结果
[root@localhost ~]# id test1
uid=1000(test1) gid=1000(test1) 组=1000(test1)

#用户不存在,系统的返回结果
[root@localhost ~]# id test2
id: test2: no such user

命令23:

#删除用户
userdel
例子1:
#被删除的用户还在登录状态
[root@localhost ~]# userdel test1
userdel: user test1 is currently used by process 2356
#被删除的用户,退出登录之后,可以正常删除
[root@localhost ~]# userdel test1

命令24:

#修改用户信息
usermode

#锁定用户
例子1:
[root@localhost ~]# usermod -L test1  -U 解锁
[root@localhost ~]# lchage -l test1
帐号被锁。
至少:    0
至多:    99999
警告:    7
不活跃:    从不
最后一次改变:    2021年07月20日
密码过期:    从不
密码不活跃:    从不
帐号过期:    从不

#禁止用户登录
[root@localhost ~]# usermod -s /sbin/nologin test2
[root@localhost ~]# grep -w 'test2' /etc/passwd
test2:x:1001:1001::/home/test2:/sbin/nologin

命令25:

#查看用户详细信息
lchage
例子1:
[root@localhost ~]# lchage -l test1
帐号没被锁。
至少:    0
至多:    99999
警告:    7
不活跃:    从不
最后一次改变:    2021年07月20日
密码过期:    从不
密码不活跃:    从不
帐号过期:    从不

所有的用户信息存储在/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
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
test1:x:1000:1000::/home/test1:/bin/bash
#passwd文件解释
root:x:0:0:root:/root:/bin/bash
test1:x:1000:1000::/home/test1:/bin/bash
test2:x:1001:1001::/home/test2:/sbin/nologin
test3:x:1002:1000::/home/test3:/sbin/nologin
haha:x:1004:1004:putong user:/home/haha:/bin/bash
第一列:用户名
第二列:x
第三列:uid
第四列:gid
第五列:注释,备注,一般为空
第六列:家目录的位置
第七列:使用shell的名称,默认使用/bin/bash

所有的用户密码信息存储/etc/shadow

[root@localhost ~]# cat /etc/shadow
root:$6$QM3AHtFflOvGbCnt$2wTYZrnO8c66vycaxprE79G.I7hiy8EqXntG86FXxqlSawjtKoTjAnAa9xFA3ad1QpFskJRPt0QeDPBnZZAdx0::0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::
sync:*:18353:0:99999:7:::
shutdown:*:18353:0:99999:7:::
halt:*:18353:0:99999:7:::
mail:*:18353:0:99999:7:::
operator:*:18353:0:99999:7:::
games:*:18353:0:99999:7:::
ftp:*:18353:0:99999:7:::
nobody:*:18353:0:99999:7:::
systemd-network:!!:18827::::::
dbus:!!:18827::::::
polkitd:!!:18827::::::
tss:!!:18827::::::
abrt:!!:18827::::::
sshd:!!:18827::::::
postfix:!!:18827::::::
chrony:!!:18827::::::
test1:$6$7PLnhlcr$4SCHINbWrameVSn6rxYgDOeUBwvYOHVbEOIudtNxWXIl5ULSt1Om8FvK6R3s9fI0qNef1vq8NhVMNJwudmfkM1:18828:0:99999:7:::

用户组管理

增  groupadd
删  groupdel
改  groupmod 
查  看/etc/group

命令26

#增加一个用户组
groupadd
例子:
groupadd test  #创建用户的时候可以制定组   useradd -g test test2

命令27

#删除一个用户组
groupdel
例子: groupdel test

命令28

#修改一个用户组
groupmod
例子1:groupmod -g 999 test #修改用户组的组id
例子2:groupmod -n haha test #讲用户组test修改为新的组名haha

7.权限管理

root用户权限最高

user普通用户

users用户组

文件权限

r 4 代表读权限 read
w 2 代表写权限 write
x 1 代表执行权限
- 0 空权限位

权限值表
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx

rw-   r--    r-- 
user  group  other

命令25

#改变文件的权限
chmod
例子1:
#修改权限之前
[test1@localhost tmp]$ ls -l
总用量 4
-rw-rw----. 1 test1 test1 8 7月  20 17:20 test1.txt
#修改权限
[test1@localhost tmp]$ chmod u+x test1.txt 
#修改权限之后
[test1@localhost tmp]$ ls -l
总用量 4
-rwxrw----. 1 test1 test1 8 7月  20 17:20 test1.txt

例子2:
同时修改多个权限
[test1@localhost tmp]$ chmod u-x,g-x,o+x test1.txt 
[test1@localhost tmp]$ ls -l
总用量 4
-rw-rw---x. 1 test1 test1 8 7月  20 17:20 test1.txt

例子3:
[test1@localhost tmp]$ chmod 777 test1.txt 
[test1@localhost tmp]$ ls -l
总用量 4
-rwxrwxrwx. 1 test1 test1 8 7月  20 17:20 test1.txt

命令26

#修改文件的所属
chown
例子1:
[root@localhost tmp]# chown test2:test2 ls
[root@localhost tmp]# ls -l
总用量 404
-rwxr-xr-x. 1 test2 test2 159024 7月  20 17:43 grep
-rwxr-xr-x. 1 test2 test2 117608 7月  20 17:38 ls
-rwxr-xr-x. 1 test1 test1 130360 7月  20 17:43 mv
-rw-rw-rw-. 1 test1 test1     14 7月  20 17:38 test1.txt
[root@localhost tmp]# chown test1 ls
[root@localhost tmp]# ls -l
总用量 404
-rwxr-xr-x. 1 test2 test2 159024 7月  20 17:43 grep
-rwxr-xr-x. 1 test1 test2 117608 7月  20 17:38 ls
-rwxr-xr-x. 1 test1 test1 130360 7月  20 17:43 mv
-rw-rw-rw-. 1 test1 test1     14 7月  20 17:38 test1.txt

#使用uid和gid修改文件的所属用户和所属用户组  属主,属组
例子2:
[root@localhost tmp]# ls -l
总用量 404
-rwxr-xr-x. 1 test2 test2 159024 7月  20 17:43 grep
-rwxr-xr-x. 1 test1 test2 117608 7月  20 17:38 ls
-rwxr-xr-x. 1 test1 test1 130360 7月  20 17:43 mv
-rw-rw-rw-. 1 test1 test1     14 7月  20 17:38 test1.txt
[root@localhost tmp]# id test1
uid=1000(test1) gid=1000(test1) 组=1000(test1)
[root@localhost tmp]# id test2
uid=1001(test2) gid=1001(test2) 组=1001(test2)
[root@localhost tmp]# useradd  -g test1  test3
[root@localhost tmp]# id test3
uid=1002(test3) gid=1000(test1) 组=1000(test1)
[root@localhost tmp]# chown 1001:1001 test1.txt 
[root@localhost tmp]# ls -l 
总用量 404
-rwxr-xr-x. 1 test2 test2 159024 7月  20 17:43 grep
-rwxr-xr-x. 1 test1 test2 117608 7月  20 17:38 ls
-rwxr-xr-x. 1 test1 test1 130360 7月  20 17:43 mv
-rw-rw-rw-. 1 test2 test2     14 7月  20 17:38 test1.txt

文件属性

#文件属性
[root@localhost ~]# ls -l /tmp/123.txt
-rw-r--r--. 1 root root 0 7月  20 23:17 /tmp/123.txt
#第一段的第一个字符,表示文件类型 -文件 d目录 l软链接 b块设备
#第一段第2-4字符,表示该文件所属用户的权限
#第一段第5-7字符,表示该文件所属用户组的权限
#第一段第8-10字符,表示其他用户对该文件的权限
#第一段的第11个字符,表示开启selinux的状态下创建的
#第二段的数字,表示该文件的硬链接数量
#第三段的字符串,表示该文件所属用户
#第四段的字符串,表示该文件所属用户组
#第五段的数字,表示该文件的大小
#第六段到倒数第二段,都是该文件的修改时间
#最一段,该文件的名称

linux一切皆文件的系统

8.Linux Shell

优化ssh登录速度

#修改配置文件,先备份
[root@localhost ~]# cp /etc/ssh/sshd_config /tmp/
[root@localhost ~]# vi /etc/ssh/sshd_config 
#直接输入:79回车
    79  GSSAPIAuthentication no
    115 UseDNS no
输入:wq保存退出

#重启sshd服务
[root@localhost ~]# systemctl restart sshd

#如果修改失败,还原配置文件
[root@localhost ~]# cp  /tmp/sshd_config  /etc/ssh/sshd_config
[root@localhost ~]# systemctl restart sshd

shell提示符

#root用户提示符
[root@localhost ~]# 

#普通用户test1的提示符
[test1@localhost ~]$ 

#提示符格式定制
原格式
[root@test ~]# echo $PS1
[\u@\h \W]\$   # \u是用户,\h是主机名,\W是相对路径 
修改后
[root@test ~]#cd /usr/local/bin/
[root@test bin]#export  PS1='[\u@\h \w]\$'
[root@test /usr/local/bin]#

#永久修改
[root@test 10:23:39 /usr/local/bin]#cd
[root@test 10:24:25 ~]#vi .bashrc 
#找个空白的地方,插入一行
export  PS1='[\u@\h \t \w]\$'

linux路径

相对路径  不完整路径,  例子../bin  bin
绝对路径  也叫完整路径,例子/usr/local/bin/

命令hostname

#临时修改主机名
hostname
例子1:
[root@localhost ~]# hostname test
#需要重新登录生效

命令hostnamectl

hostnamectl

#查看主机的信息
[root@localhost ~]# hostnamectl 
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: f8a89169114741a8ac6de82954c5fbcb
           Boot ID: dcf65386ccda42e29699d56101af8cf1
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-1127.el7.x86_64
      Architecture: x86-64

#永久修改主机名
[root@localhost ~]# hostnamectl set-hostname test
#需要重新登录生效

命令reboot

#重启系统
reboot
例子1:
[root@test ~]# reboot

命令shutdown

#关闭或者重启linux
shutdown
例子1:
#立即关机
[root@localhost ~]# shutdown -h now

例子2:
#5分钟之后关机,可以使用shutdown -c取消
[root@localhost ~]# shutdown -h 5

例子3:
#5分钟之后重启系统,可以使用shutdown -c取消
[root@localhost ~]# shutdown -r 5

shell基础语法

命令   参数   目标
ls   -a -l   /opt 
rm   -rf    /opt/test1

命令   目标1...   目标2
mv    源路径     目标路径
cp    

命令
reboot

[root@test 11:12:02 /opt]#mv --help
用法:mv [选项]... [-T] 源文件 目标文件
 或:mv [选项]... 源文件... 目录
 或:mv [选项]... -t 目录 源文件...
#格式解释
[选项] 可选的
...    可以有多个

tab键补全

补全命令
#如果预选的特别多
[root@test 11:25:24 ~]#
Display all 1400 possibilities? (y or n)

#如果预选少
[root@test 11:25:24 ~]#cha
chacl   chage   chattr 

补全路径
#如果预选的特别多
[root@test 11:25:24 ~]#cd /etc/
Display all 188 possibilities? (y or n)
#如果预选少
[root@test 11:25:24 ~]#cd /usr/src/
debug/   kernels/

快捷键

Ctrl + a    #光标跳转至正在输入的命令行的首部
Ctrl + e    #光标跳转至正在输入的命令行的尾部
Ctrl + c    #终止前台运行的程序
Ctrl + d    #在shell中,ctrl-d表示推出当前shell。
Ctrl + z    #将任务暂停,挂至后台, 执行fg命令继续运行
Ctrl + l    #清屏,和clear命令等效。
Ctrl + k    #删除从光标到行末的所有字符
Ctrl + u    #删除从光标到行首的所有字符
Ctrl + r    #搜索历史命令, 利用关键字
ctrl + w    #光标往前删除一个参数
esc + .     #上一条命令的最后一个参数,或者目标

history历史命令

#历史
history
例子1:
[root@test 14:32:10 ~]#history
    1  exit
    2  ls
    3  head -1 test03.txt 
    4  head -1 test03.txt|cat
    5  head -1 test03.txt|tac
    6  head -2 test03.txt|tac
    7  head -2 test03.txt|cat
    8  ip addr
    9  ip addr|tail -4
   10  ip addr|tail -4|head -1
   ......

例子2:
#使用!调用历史命令
[root@test 14:32:10 ~]#history|head -5
    1  exit
    2  ls
    3  head -1 test03.txt 
    4  head -1 test03.txt|cat
    5  head -1 test03.txt|tac
[root@test 14:32:26 ~]# !3
 head -1 test03.txt 
head: 无法打开"test03.txt" 读取数据: 没有那个文件或目录

#使用!调用mv开头的命令
[root@test 14:42:17 ~]#history 
    1  ls -a -l .bash_history 
    2  history 
    3  ls
    4  history 
    5  mv aaaaa.txt /tmp/
    6  history 
[root@test 14:42:19 ~]#!mv
mv aaaaa.txt /tmp/
mv: 无法获取"aaaaa.txt" 的文件状态(stat): 没有那个文件或目录


例子4:
#清除历史记录
history -c

历史记录保存在家目录下的.bash_history文件中

命令别名

#别名
alias
例子1:
#查看别名
[root@test 15:23:17 ~]#alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

例子2:
#添加别名
[test1@test 15:24:23 ~]$alias rm='rm -i'
[test1@test 15:27:08 ~]$alias |grep rm
alias rm='rm -i'

例子3:
#取消别名
[test1@test 15:27:13 ~]$unalias rm 
[test1@test 15:27:47 ~]$alias |grep rm

例子4:
#alias永久生效
[root@localhost ~]# vi .bashrc 
#空白处,增加一行
alias rm='echo -bash: rm: 未找到命令'

9.linux输入输出

>  重定向, 将命令执行结果不输出到屏幕上,输出到文件里,会清空原文件
>> 追加重定向,不会清空原文件
#输入
#标准输入0

#输出
#标准正确输出1
#标准错误输出2

10.linux压缩打包

#打包和解压缩
tar
例子1:
#归档,不压缩
tar cf test.tar vmlinuz-*

image-20210722092307812

例子2:
#压缩并归档
tar zcf test2.tar.gz vmlinuz-*
例子3:
#查看压缩包内容
[root@localhost ~]# tar tf test.tar 
vmlinuz-0-rescue-f8a89169114741a8ac6de82954c5fbcb
vmlinuz-3.10.0-1127.el7.x86_64
例子4:
#解压缩
tar xf test.tar

image-20210722094006223

#打包和压缩
gzip
#压缩单个文件
gzip protocols
#压缩多个文件,每一个文件产生一个单独的压缩包
gzip  hosts passwd shadow
#解压缩
gzip -d hosts.gz passwd.gz protocols.gz shadow.gz
#压缩
zip
例子1:
zip -r 123.zip day01
#解压
unzip
例子1:
[root@localhost file]# unzip 123.zip
#解压rar包
#需要安装软件
yum install epel-release -y
yum install unar -y
#再进行解压
unar -o /opt 456.rar
#下载文件
curl
例子1:
#下载文件
curl -o 123.zip http://192.168.18.10/day01.zip
#检查网络畅通
ping
例子1:ping 223.5.5.5
#如果网不通,重启网络服务
systemctl restart network

查看文件类型file

#查看文件类型
file
例子1:
file 123.zip

image-20210722112503032

11.文件传输

#上传和下载
rz  #上传
sz  #下载
#先安装lrzsz软件包
yum  install lrzsz  -y
#上传的例子
如果使用xshell,直接鼠标拖拽,或者执行rz -E选择要上传的文件
#下载的例子
sz /root/test3.tar.gz

xftp上传下载

image-20210722114136542

scp传输

#主要用于linux和linux服务器之间传输文件
scp typora-setup-x64.exe  root@10.0.0.128:/tmp

12.软件的安装

编译安装

1.下载源码包
cd /opt/
rm -fr *
curl -o nginx.tar.gz http://nginx.org/download/nginx-1.20.1.tar.gz

2.编译
tar xf nginx.tar.gz 
cd nginx-1.20.1/
#编译参数
./configure --prefix=/usr/local/nginx --without-pcre --without-http_rewrite_module --without-http_gzip_module
#编译
make
#安装
make install

3.运行
/usr/local/nginx/sbin/nginx
#使用浏览器访问http://<虚拟机的ip地址>
#关闭防火墙
systemctl stop firewalld
#取消防火墙的开机自启
systemctl disable firewalld

rpm安装

#redhat package manager包管理器
#安装wget
yum install wget -y
#使用wget下载rpm包
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/tree-1.6.0-10.el7.x86_64.rpm

#安装rpm包
rpm -ivh tree-1.6.0-10.el7.x86_64.rpm 
#卸载
rpm -e tree
#升级
rpm -Uvh  xxx.rpm
#查看已安装的软件
rpm -qa|grep httpd

命令

#以树状的显示指定目录下的目录和文件的名称
tree
例子1:
下载路径  yum install tree -y
tree /usr/local

yum安装

#自动解决rpm依赖
#yum安装扩展yum仓库
yum install epel-release -y
#yum安装nginx
yum install nginx -y
#yum移除nginx
yum remove nginx -y
yum list|grep ^bash 查找tab 安装包
yum install bash-completion.noarch bash-completion-extras.noarch -y 所有tab

安装方法总结

编译安装:优点: 自由定制  痛点:难度高,步骤繁琐
rpm安装:优点:安装简单   痛点:需要自己解决依赖,不支持定制
yum安装:优点:自动解决依赖,默认安装最新版  痛点:不支持定制

13.find文件查找

#文件查找
例子1:普通查询
find   /etc    -maxdepth 1  -type f  -name "pa*"
命令   目录...   查找深度      类型      文件名称

image-20210723094041385

例子2:
忽略大小写查询
find /etc -maxdepth 1    -iname "pa*"

image-20210723094647008

例子3:
根据修改时间查找文件
#时间单位为天
find /opt -type f -mtime -1   #-1代表一天以内,+1一天以前
#时间单位为分钟
[root@localhost ~]# find /root -type f -mmin -20
/root/.bash_history
/root/ReadMe.txt
/root/.lesshst
atime:最后访问时间
mtime:文件内容修改时间
ctime:文件属性修改时间

image-20210723101456135

例子5:
对找出的文件进行处理
find /root -type f -mmin -30  ! -name ".*"  -exec rm {} \;
find /root  -maxdepth 1  -type d  -name "Apa*"   -mmin -30 -exec cp -a {} /tmp \;

14.进程管理

进程:正在运行的程序

#查看进程
ps
参数1:ps -ef

image-20210723112720108

#关闭进程
kill
例子1: kill  7851  #使用进程id号,来终止进程
pkill 
例子1: pkill sleep  #使用进程的命令名称,来终止进程
#查看计算机的cpu,内存,进程等信息
top

15.定时任务

定期执行任务

#时间命令
date
例子1:
#查看时间
[root@localhost ~]# date
2021年 07月 23日 星期五 14:38:19 CST
[root@localhost ~]# date +%F
2021-07-23
[root@localhost ~]# date +%T
14:35:47

例子2:
#修改时间
[root@localhost ~]# date -s '20200723 14:40:00'
2020年 07月 23日 星期四 14:40:00 CST
#定时任务的格式
*  *  * *  *    cmd
分 时 日 月 周    命令
分:0-59
时:0-23
日:0-31
月:1-12
周:1-7
#每5分钟执行一次
*/5  *  * *  *

#每1小时执行一次
01 */1 * * *

#每半个小时执行一次
00,30  */1 * * *

#每天晚上8:00执行一次
00 20 */1 * *

#每周1晚上8:00执行一次
00 20 */1 * 1,3,5

#查看定时任务,遇到特殊符号%,需要添加转义符号\;
[root@localhost ~]# crontab -l
* * * * *  echo `date +\%T` >>/tmp/time.txt

#编辑定时任务
[root@localhost ~]# crontab -e

如果定时任务的格式,或者内容有问题,系统都会发邮件提示

image-20210723153640801

16.服务管理

优化系统:

1.优化ssh
vi /etc/ssh/sshd_config
79行:GSSAPIAuthentication no
115行:UseDNS no
systemctl restart sshd

2.优化selinux
#修改配置文件,永久关闭
vi /etc/selinux/config
#第7行修改为
SELINUX=disabled
需要重启生效
#立即生效,临时的
setenforce 0

image-20210723160833331

3.关闭firewalld
systemctl stop firewalld
systemctl disable firewalld

4.优化yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

5.安装常用软件
yum install lrzsz vim tree wget net-tools screen tcpdump bash-completion -y

安装httpd

yum install httpd -y

服务管理

启动服务
systemctl  start  httpd  #start启动
停止服务
systemctl  stop   httpd  #stop停止
重启服务
systemctl  restart   httpd #restart重启
查看服务状态
systemctl  status   httpd  #查看服务状态
把服务设置为开机启动
systemctl enable httpd.service
取消服务的开机自启
systemctl disable httpd.service

软件和服务都是程序

软件一般是客户端curl

服务一般是给客户端提供某一个功能,7*24一直运行

目录
相关文章
|
7天前
|
弹性计算 双11 开发者
阿里云ECS“99套餐”再升级!双11一站式满足全年算力需求
11月1日,阿里云弹性计算ECS双11活动全面开启,在延续火爆的云服务器“99套餐”外,CPU、GPU及容器等算力产品均迎来了全年最低价。同时,阿里云全新推出简捷版控制台ECS Lite及专属宝塔面板,大幅降低企业和开发者使用ECS云服务器门槛。
|
24天前
|
存储 弹性计算 人工智能
阿里云弹性计算_通用计算专场精华概览 | 2024云栖大会回顾
阿里云弹性计算产品线、存储产品线产品负责人Alex Chen(陈起鲲)及团队内多位专家,和中国电子技术标准化研究院云计算标准负责人陈行、北京望石智慧科技有限公司首席架构师王晓满两位嘉宾,一同带来了题为《通用计算新品发布与行业实践》的专场Session。本次专场内容包括阿里云弹性计算全新发布的产品家族、阿里云第 9 代 ECS 企业级实例、CIPU 2.0技术解读、E-HPC+超算融合、倚天云原生算力解析等内容,并发布了国内首个云超算国家标准。
阿里云弹性计算_通用计算专场精华概览 | 2024云栖大会回顾
|
6天前
|
人工智能 弹性计算 文字识别
基于阿里云文档智能和RAG快速构建企业"第二大脑"
在数字化转型的背景下,企业面临海量文档管理的挑战。传统的文档管理方式效率低下,难以满足业务需求。阿里云推出的文档智能(Document Mind)与检索增强生成(RAG)技术,通过自动化解析和智能检索,极大地提升了文档管理的效率和信息利用的价值。本文介绍了如何利用阿里云的解决方案,快速构建企业专属的“第二大脑”,助力企业在竞争中占据优势。
|
4天前
|
人工智能 自然语言处理 安全
创新不设限,灵码赋新能:通义灵码新功能深度评测
自从2023年通义灵码发布以来,这款基于阿里云通义大模型的AI编码助手迅速成为开发者心中的“明星产品”。它不仅为个人开发者提供强大支持,还帮助企业团队提升研发效率,推动软件开发行业的创新发展。本文将深入探讨通义灵码最新版本的三大新功能:@workspace、@terminal 和 #team docs,分享这些功能如何在实际工作中提高效率的具体案例。
|
8天前
|
自然语言处理 数据可视化 前端开发
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
合合信息的智能文档处理“百宝箱”涵盖文档解析、向量化模型、测评工具等,解决了复杂文档解析、大模型问答幻觉、文档解析效果评估、知识库搭建、多语言文档翻译等问题。通过可视化解析工具 TextIn ParseX、向量化模型 acge-embedding 和文档解析测评工具 markdown_tester,百宝箱提升了文档处理的效率和精确度,适用于多种文档格式和语言环境,助力企业实现高效的信息管理和业务支持。
3915 2
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
|
11天前
|
负载均衡 算法 网络安全
阿里云WoSign SSL证书申请指南_沃通SSL技术文档
阿里云平台WoSign品牌SSL证书是由阿里云合作伙伴沃通CA提供,上线阿里云平台以来,成为阿里云平台热销的国产品牌证书产品,用户在阿里云平台https://www.aliyun.com/product/cas 可直接下单购买WoSign SSL证书,快捷部署到阿里云产品中。
2182 6
阿里云WoSign SSL证书申请指南_沃通SSL技术文档
|
4天前
|
安全 数据建模 网络安全
2024阿里云双11,WoSign SSL证书优惠券使用攻略
2024阿里云“11.11金秋云创季”活动主会场,阿里云用户通过完成个人或企业实名认证,可以领取不同额度的满减优惠券,叠加折扣优惠。用户购买WoSign SSL证书,如何叠加才能更加优惠呢?
835 1
|
1天前
|
算法 数据建模 网络安全
阿里云SSL证书2024双11优惠,WoSign DV证书220元/年起
2024阿里云11.11金秋云创季火热进行中,活动月期间(2024年11月01日至11月30日),阿里云SSL证书限时优惠,部分证书产品新老同享75折起;通过优惠折扣、叠加满减优惠券等多种方式,阿里云WoSign SSL证书将实现优惠价格新低,DV SSL证书220元/年起。
530 4
|
2天前
|
存储 分布式计算 流计算
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
436 7
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
|
23天前
|
编解码 Java 程序员
写代码还有专业的编程显示器?
写代码已经十个年头了, 一直都是习惯直接用一台Mac电脑写代码 偶尔接一个显示器, 但是可能因为公司配的显示器不怎么样, 还要接转接头 搞得桌面杂乱无章,分辨率也低,感觉屏幕还是Mac自带的看着舒服