Linux基础详解

详解Linux(基础篇) 本篇博客详细介绍了Linux的基础知识,从CentOS 7.6 的手把手安装,到用户组和权限的管理,每一步都有非常详细的截图和理论解释。适合新手快速入门Linux,也适合老手用来复习巩固。整理不易,望您支持 阅读详情

目录

一、安装Linux分区方案

二、Linux常用简单命令

1、 破解其他Linux系统密码

2、命令使用帮助系统

3、Man看命令的使用手册

4、Linux文件系统 

5、ls命令

6、cp命令

7、mv命令

8、pwd命令

9、rm命令

10、stat命令

11、touch命令

12、mkdir命令

13、rmdir命令

14、file命令

三、Linux的用户

1、在Linux中什么是用户?

2、groupadd命令

3、gpasswd命令

4、newgrp命令

5、usermod命令

6、userdel命令

四、Linux权限

1、rwx权限

2、ACL权限

文件硬链接(索引)

文件软连接(快捷方式)

权限实践

(1)、chown命令

(2)、chgrp命令

3、特殊权限

SUID

SGID

lsattr

五、shell

1、通配符

2、变量

本地变量

环境变量

全局环境变量

用户环境变量

3、shell脚本

4、计划任务

crontab工具

六、IO

1、IO重定向

2、find命令

3、管道“|”命令

3、wc命令

七、循环语句

1、for循环


一、安装Linux分区方案

分区类型分区作用

分区大小

/boot 分区

启动分区

200MB引导

/根分区

使用LVM

50G

swap

交换分区

64G或256G

以前内存只有8G的时候swap建议是内存的两倍:

  • 4-16G内存,建议swap分4G
  • 16-64G内存,建议swap分16G
  • >64G内存,建议swap分64G

安装系统最少三个区:/boot、/和swap。

系统盘超过2TB,装完系统是无法启动的,超过2TB的硬盘格式要转换为GPT格式,正常硬盘是MBR模式。

系统盘超过2TB转换为GPT后需要再分一个区/boot/efi 200MB

高危命令:

rm -rf /*

二、Linux常用简单命令

Linux用户信息在/etc/passwd中

Linux用户密码信息在/etc/shadow中

备份存放密码文件,改掉不知道的用户密码,用完了再cp回去就可以了,这样恢复密码了,这样会影响所有用户(如果很多人改密码),那就只单独复制这个用户的这段。

离职的人,在密码前加个感叹号,需要用的时间取消掉就行。

usermod -L user1就是锁定用户,原理就是密码前加了一个感叹号。

usermod -U user1就是解锁用户,原理就是密码的感叹号取消掉。

在Linux中root因为他的UID是0所以是管理员,改了root的UID他就不是了。

admin的UID为0,这个时候他就是管理员了。

1、 破解其他Linux系统密码

把root的X去掉,这样随便su - XX都不会需要输入密码

进救援模式恢复密码,用光盘启动,只要光盘能引导

(1)、进入第三个菜单

(2)、进入第二个子菜单

(3)、输入1

(4)、回车得到一个命令行

(5)、输入chroot /mnt/sysimage进了真系统,用光盘启动,把真正的硬盘挂载到了假系统(光盘的系统)的sysimage系统上了

change root切换根

去掉X

 su 加“-”才能完整切换到其他用户的身份

2、命令使用帮助系统

正常的命令由三部分组成,每个部分用空格隔开,并且严格区分大小写。

命令组成方式

command

options

arguments

命令选项参数

3、Man看命令的使用手册

例如date:
man date
date [OPTION]...[+FORMAT]
[]:可选项
...:代办列表
-a | -b | -c | -d:代办多选一
大写字母:代办必选项
<>:代办必选项

 

4、Linux文件系统 

文件系统结构:一切从根开始,Linux一切皆文件。

目录位置目录作用
/根目录
/rootroot的家目录

路径分为:相对路径和绝对路径

  • 相对路径:从当前目录开始。
  • 绝对路径:一切从根开始。

Linux下每个目录都有两个隐藏的文件夹

提示符意义

"."

代表当前目录

“..”

代表上一级目录

 

安装软件:

[root@classroom tmpl# ls
vsftpd-3.0.3-28.el8.x86_64.rpm
[root@classroom tmp]# rpm -ivh vsftpd-3.0.3-28.el8.x86_64.rpm

 查看软件包装的位置:

[root@classroom tmp]#rpm -ql vsftpd
/etc/logrotate.d/vsftpd

5、ls命令

ls:列出当前目录的下文件和文件夹。

文件颜色作用
蓝色

标识文件夹、目录。

黑色

标识普通文件。

绿色

标识可执行文件、命令。

青色

标识链接文件、快捷方式。

ls参数作用
-a

all,显示所有文件,包括隐藏文件,以“.”开头的文件。

-l

用长格式的方式显示。

-R

递归显示当前目录和子目录的内容

-ld

显示目录本身

-i

inode number索引号

 删除隐藏文件用rm -rf .*,删除当前目录所有隐藏文件,但是“.”和“..”无法删除。

6、cp命令

cp:复制文件和目录。

cp参数作用
-r

递归复制

-p

保留权限和时间戳

-a

等同于执行了-p、-r、-d

-i

人机交互,默认带

CP操作

cp操作

作用

cp /etc/passwd /tmp/

复制单个文件到目的目录,复制/etc/passwd到/tmp/目录下。

cp /etc/group /etc/profile /tmp/

复制多个文件到目的目录,复制 /etc/group和 /etc/profile到/tmp/目录下。

cp -r /etc/ /tmp/

整个文件夹复制

7、mv命令

mv:移动或改名

mv操作作用

mv passwd.t passwd.2

将passwd.t改名为passwd.2

8、pwd命令

pwd:显示当前工作目录。

9、rm命令

rm:remove删除

rm -rf /*,牢底坐穿操作。

extundelete工具恢复rm -rf删除的目录(ext3和ext4类型文件系统)

rm参数作用

-r

递归操作

-f

force,强制删除

删除一个文件只是删除了索引,一个文件由索引和数据块组成(索引和block)

索引:记录了文件名、大小、权限、时间、指针。

10、stat命令

stat:查看文件三个时间戳(最近访问、最近更改、最近改动)

11、touch命令

touch:创建空文件或者更新时间戳。

12、mkdir命令

mkdir:创建文件夹。

13、rmdir命令

rmdir:删除空文件夹。

14、file命令

file:查看文件类型。

三、Linux的用户

1、在Linux中什么是用户?

Linux系统重,每个用户都拥有一个唯一的UID,user id number。

UID为0就是管理员,root默认UID=0。

普通用户UID>=1000(老版本从500开始,新的是红帽7开始)。

1-999系统用户使用。

[root@Believe ~]# cat /etc/passwd |grep sky
sky:x:1000:1000:sky:/home/sky:/bin/bash
sky用户各项参数介绍
skyx10001000

sky

/home/sky

/bin/bash

用户名

用户是否需要身份验证,取消掉就能免密登录

UID标识用户,不可重复

GID标识用户组

用户描述信息

用户家目录,自动创建的,用户登录默认进入家目录

shell命令解释器,常用的/bin/bash

默认一个用户没有设置密码,是处于锁定状态

,标识为“!!”

还有一个是/sbin/nologin,usermod -s /sbin/nolgin user3 该用户就无法登录了。

像某些邮箱服务器、ftp服务器场景,这样操作能不影响使用邮件收发和ftp使用,但是不能登录本机,提高了系统安全性。

 执行创建user1用户会自动执行以下操作:


[root@Believe ~]# useradd user1
  • 创建user1用户
  • 创建user1组
  • 创建user1的家目录
  • 将user1用户加入user1组

Linux中所有关于用户的信息

存放用户信息:

[root@Believe ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 2693 12月  5 15:31 /etc/passwd

存放密码信息:

[root@Believe ~]# ls -l /etc/shadow
----------. 1 root root 1974 12月 17 16:33 /etc/shadow

2、groupadd命令

groupadd:创建一个组

[root@Believe ~]# groupadd IT
[root@Believe ~]# cat /etc/group | grep IT
IT:x:1002:

 查看IT组中有哪些成员

[root@Believe ~]# cat /etc/group |grep IT
IT:x:1001:user2,user3,user1,root

存在组信息:

[root@Believe ~]# ls -l /etc/group
-rw-r--r--. 1 root root 1071 12月  5 15:31 /etc/group

存放组密码信息:

[root@Believe ~]# ls -l /etc/gshadow
----------. 1 root root 954 12月  5 15:31 /etc/gshadow

Linux中把用户信息/etc/passwd、用户密码信息/etc/shadow、组信息/etc/group、组密码信息/etc/gshadow这四个文件迁移到其他Linux系统,就把用户迁移过去了。

3、gpasswd命令

gpasswd:设置组密码。

4、newgrp命令

newgrp:登录组。

5、usermod命令

usermod:修改用户信息。

参数作用
-G

将用户加入指定组

命令作用

[root@Believe ~]# usermod -G IT user1

将user1加入到IT组中

[root@Believe ~]# usermod -G IT user1
[root@Believe ~]# id user1
uid=1001(user1) gid=1002(user1) 组=1002(user1),1001(IT)

6、userdel命令

userdel:删除用户。
 

四、Linux权限

在Linux系统当中,我们把访问文件的用户分为三类:
  • 文件的拥有人(user)
  • 文件的拥有组(group)
  • 其他人(other)
[root@Believe sky]# ll passwd
-rw-r--r--. 1 root IT 2607 11月 11 09:49 passwd
-rw-r--r--.1rootIT2607

11月 11 09:49

-:普通文件

d:文件夹

文件拥有人的权限

文件所属组的权限

其他人的权限(既不是文件拥有人又不在文件所属组的人)

如果变为“+”代表有更深层次的权限

文件:对于文件来说,这个代办文件的链接树,软链接是1,硬链接会变2。

文件夹:对于文件夹来说,这个代表文件夹下有多少个子目录。

文件拥有人

文件所属组

代办文件的大小,默认是字节,加-h查看

文件最后一次被修改时间

1、rwx权限

r:read读

w:write写

x:execute执行,文件有x代表有执行权限

2、ACL权限

权限还有个功能叫ACL:

看深层次的权限

深层权限

[root@Believe ~]# setfacl -m u:user1:rw- passwd
[root@Believe ~]# ll passwd
-rw-rw-r--+ 1 root root 2693 12月 18 14:26 passwd
[root@Believe sky]#  getfacl passwd
file: passwd
owner: root
group: root
user::rw-
user:user1:rw-
group::r--
mask::rw-
other::r--
[root@Believe sky]# setfacl -b passwd
[root@Believe sky]# ll
总用量 4
-rw-r--r--. 1 root root 2607 11月 11 09:49 passwd
  • 文件硬链接(索引)

[root@Believe sky]# link passwd test/passwd.1
[root@Believe sky]# ls test/
[root@Believe sky]# ll passwd
-rw-r--r--. 2 root root 2607 11月 11 09:49 passwd
  • 文件软连接(快捷方式)

[root@Believe sky]# ll /etc/ssh/ssh_config
-rw-r--r--. 1 root root 1726 11月  8 14:59 /etc/ssh/ssh_config
[root@Believe sky]# ln -s /etc/ssh/ssh_config /sky/test/ssh_config.1
[root@Believe sky]# ll /etc/ssh/ssh_config
-rw-r--r--. 1 root root 1726 11月  8 14:59 /etc/ssh/ssh_config

看文件大小

[root@Believe sky]# ll passwd -h
-rw-r--r--. 2 root root 2.6K 11月 11 09:49 passwd
  • 权限实践

修改文件所有者为user1

[root@Believe sky]# ll passwd
-rw-r--r--. 2 root root 2607 11月 11 09:49 passwd
[root@Believe sky]# chown user1 passwd
[root@Believe sky]# ll passwd
-rw-r--r--. 2 user1 root 2607 11月 11 09:49 passwd

减文件所有者权限

[user1@Believe sky]$ ll passwd
-rw-r--r--. 2 user1 root 2607 11月 11 09:49 passwd
[user1@Believe sky]$ chmod u-rwx passwd
[user1@Believe sky]$ ll passwd
----r--r--. 2 user1 root 2607 11月 11 09:49 passwd

(1)、chown命令

chown:修改文件的拥有人。

语法:chown XX(用户) XX...XX(单个或多个文件)

参数作用
-R递归执行

(2)、chgrp命令

chgrp:修改文件所属组。

(3)、chmod命令

chmod:change modify改变文件权限,有两种修改方式数字或字符

字符方式
参数作用
u

文件拥有人

g

文件所属组

o

其他人

-

去掉权限

+

增加权限

=

不管原来什么权限,赋值对应的权限

u、g、o可以灵活组合

[root@Believe sky]# chmod ugo+rwx passwd
[root@Believe sky]# ll passwd
-rwxrwxrwx. 2 user1 root 2607 11月 11 09:49 passwd
[root@Believe sky]# chmod ug-rx passwd
[root@Believe sky]# ll passwd
--w--w-rwx. 2 user1 root 2607 11月 11 09:49 passwd

权限ACL

ACL权限赋值
setfacl -m u:user10:rwx /data
u:用户
[root@Believe /]# setfacl -m u:user10:rx believe/

去掉acl权限
[root@Believe /]# setfacl -x u:user10 believe/

但是有+号
[root@Believe /]# ls -ld believe/
drwxrwxrwx+ 2 root root 6 12月  3 10:38 believe/
-b移除所有ACL
[root@Believe /]# setfacl -b /believe/
[root@Believe /]# ls -ld believe/
drwxrwxrwx. 2 root root 6 12月  3 10:38 believe/

3、特殊权限

SUID

SUID:如果在一个命令上添加了SUID后,那么任何人在执行命令时,会临时得到该命令拥有人的权限。

SGID

SGID:如果在一个目录上添加SGID,那么任何人在该目录中创建的文件,会继承该目录拥有组的权限。

[root@Believe /]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 34512 8月  13 2018 /usr/bin/passwd

[root@Believe ~]# ls -l /usr/bin/mkdir
-rwxr-xr-x. 1 root root 106256 1月  11 2019 /usr/bin/mkdir
[root@Believe ~]# ls -ld /believe/dat
drwsr-xr-x. 2 root root 6 12月  4 17:10 /believe/dat

[root@Believe ~]# su - user10
[user10@Believe ~]$ ls -ld /believe/dat
drwsr-xr-x. 2 root root 6 12月  4 17:10 /believe/dat
[user10@Believe ~]$ cd /believe/dat
[user10@Believe dat]$ mkdir user10
[user10@Believe dat]$ ls
user10

sticky:QQ群空间,t权限,如果在一个目录上添加了sticky权限,那么仅root和文件拥有人可以删除文件。

[root@Believe ~]# chmod o+t /believe

有4个权限,suid=4,sgid=2,sticky=1

chmod 3777 /believe

这个3就是sgid和sicky

chattr

lsattr

lsattr:查看文件隐藏权限。

重启

1、reboot

2、shutdown -r now

3、init 6

关机

1、shutdown -n now

2、init 0

3、poweroff

五、shell

1、通配符

参数作用
*

匹配所有、匹配零个或者多个字符。

[root@Believe ~]# rm -rf passw*
[root@Believe ~]# rm -rf 1?.txt
[root@Believe ~]# rm -rf [abc].txt
[root@Believe ~]# rm -rf [^abc].txt

写个shell——1

需求:/目录使用率大于15%进行告警的shell

(1)、[root@Believe ~]# df -h
文件系统               容量  已用  可用 已用% 挂载点
devtmpfs               7.8G     0  7.8G    0% /dev
tmpfs                  7.8G     0  7.8G    0% /dev/shm
tmpfs                  7.8G  9.3M  7.8G    1% /run
tmpfs                  7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/mapper/rhel-root   26G  4.5G   21G   18% /
/dev/sda2             1014M  164M  851M   17% /boot
/dev/sda1              599M  6.6M  593M    2% /boot/efi
tmpfs                  1.6G   28K  1.6G    1% /run/user/42
tmpfs                  1.6G  4.0K  1.6G    1% /run/user/0
(2)、[root@Believe ~]# df -h |grep -w /
/dev/mapper/rhel-root   26G  4.5G   21G   18% /
(3)、[root@Believe ~]# df -h |grep -w / |awk '{print $5}'
18%
(4)、[root@Believe ~]# df -h |grep -w / |awk '{print $5}' |sed 's/%//'
18
#!/bin/bash
rootpart=`df -h |grep -w / |awk '{print $5}' |sed 's/%//'`

if [ $rootpart -ge 15 ]; then

        echo " $rootpart root partition is full"

        fi
[root@Believe ~]# ./disks.sh
root partition is full

使用``也是$()引用命令的作用

[root@Believe ~]# touch a{1,3,5,7,9}.txt
[root@Believe ~]# ll
-rw-r--r--. 1 root root    0 12月 11 11:01 a1.txt
-rw-r--r--. 1 root root    0 12月 11 11:01 a3.txt
-rw-r--r--. 1 root root    0 12月 11 11:01 a5.txt
-rw-r--r--. 1 root root    0 12月 11 11:01 a7.txt
-rw-r--r--. 1 root root    0 12月 11 11:01 a9.txt 

2、变量

本地变量

本地变量:仅在当前shell中有效的变量(新打开一个shell窗口就无效了)

环境变量

环境变量:所有子shell中能继承的变量

export将本地变量转换为环境变量

[root@Believe ~]# export a1

所有变量只在内存中,重启就没有了。

全局环境变量

全局环境变量:写入/etc/profile中的变量就是全局变量。

[root@Believe ~]# vim /etc/profile

切换用户会读这个文件

排错思路:如果你写的脚本报错,不知道哪一行有问题,可以分段排错,在一段里写echo“测试”,执行输出代办上边内容没问题,然后就往下排。

[root@Believe ~]# source /etc/profile

把/etc/profile重新读到内存中

用户环境变量

用户环境变量:针对用户单独,用户环境变量优先于全局环境变量。

[user10@Believe ~]$ vim .bash_profile

history:显示历史命令,默认全局环境变量保留1000条记录,个人用户可以自定义修改。

历史记录越长越不安全

 

$PATH
[root@Believe ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
执行ls等同于执行/usr/bin/ls
[root@Believe ~]# /usr/bin/ls

如果我想在任何目录执行disks.sh可以如下操作:

[root@Believe ~]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root
或者是以下操作(变量可以嵌套自己)
[root@Believe tmp]# PATH=$PATH:/root
[root@Believe tmp]# disks.sh
18 root partition is full

下面这样就跟PATH变量没有关系了

[root@Believe ~]# ./disks.sh
18 root partition is full

/etc/bashrc、/etc/profile和用户下的.bash_profile、.bashrc这四个配置文件都是关于变量的

符号作用
\

去除特殊符号的意义(转义符)和''效果一样

''

遇到任何字符均不转义(原样输出)。

""

遇到任何字符均不转义(原样输出),除了以下四种情况:

(1)$

(2)\

(3)``等同于$()

(4)!:也有特殊意义

[root@Believe ~]# echo Your cost $5.00
Your cost .00
[root@Believe ~]# echo Your cost $5.00
Your cost $5.00
[root@Believe ~]# echo "Your cost $5.00"
Your cost .00
[root@Believe ~]# echo 'Your cost $5.00'
Your cost $5.00
[root@Believe ~]# touch a\ b
[root@Believe ~]# ls
1234.txt   视频   音乐     a5.txt   abc.txt           b.txt
123.txt    图片   桌面     a7.txt   ab.txt            c.txt
公共       文档   a1.txt   a9.txt   anaconda-ks.cfg   disks.sh
模板       下载   a3.txt  'a b'     a.txt

[root@Believe ~]# rm a\ b
rm:是否删除普通空文件 'a b'?y

单引号

[root@Believe ~]# echo '$A'
$A
[root@Believe ~]# echo '$A'
$A

引用命令历史记录里第十条命令

[root@Believe ~]# !10
usermod -G IT user1

 

使用感叹号进行反选,如果是双引号“”那就是执行某一个命令了

[root@Believe ~]# iptables -A INPUT ’!‘ -s 192.168.1.0/24 -j ACCEPT

3、shell脚本

脚本:创建一个文本文件,然后将你要执行的命令写入到文件中,并且给他一个执行权限。

写shell脚本步骤
步骤方法
步骤一

脚本的命名:

(1)、文件名尽量有意义。

(2)、以.sh结尾

步骤二

脚本第一行:

#:#是一个注释,描述,给未来维护的时候用。
 

#遇到!就会变得有意义,意思是声明。
 

#!/bin/bash:声明接下来写的脚步都用/bin/bash解释,这样移植到其他计算机,不加这个,其他计算机默认不是bash解释的话无法执行会失败,加了这个声明,移植到任何地方都是使用bash解释。

步骤三

写完给脚本一个执行权限

[root@Believe scripts]# chmod u+x mail_full.sh

4、计划任务

周期性计划任务

crontab工具

crontab:实现周期性计划任务的工具

参数

功能

-e

编辑

-l

查看

-r

删除

man 5 crontab

分、时、日、月、周

[root@Believe /]# crontab -e
* * * * * mkdir /sky10

[root@Believe /]# ll /
总用量 28
drwxr-xr-x.   3 root root   41 12月 12 16:39 back
drwxrwxrwx.   4 root root   29 12月  4 17:10 believe
lrwxrwxrwx.   1 root root    7 8月  12 2018 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 11月  8 14:54 boot
drwxr-xr-x.   2 root root    6 12月  3 10:38 data
drwxr-xr-x.  20 root root 3420 12月 17 15:16 dev
drwxr-xr-x. 135 root root 8192 12月 17 17:51 etc
drwxr-xr-x.   8 root root   86 12月  5 15:31 home
lrwxrwxrwx.   1 root root    7 8月  12 2018 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 8月  12 2018 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 8月  12 2018 media
drwxr-xr-x.   2 root root    6 8月  12 2018 mnt
drwxr-xr-x.   2 root root    6 8月  12 2018 opt
dr-xr-xr-x. 323 root root    0 12月 17 15:15 proc
dr-xr-x---.  15 root root 4096 12月 18 16:07 root
drwxr-xr-x.  40 root root 1180 12月 17 15:16 run
lrwxrwxrwx.   1 root root    8 8月  12 2018 sbin -> usr/sbin
drwxr-xr-x.   2 root root  109 12月 17 15:59 scripts
drwxr-xr-x.   4 root root   60 11月 14 17:33 sky
drwxr-xr-x.   2 root root    6 12月 13 15:03 sky10
drwxr-xr-x.   2 root root    6 8月  12 2018 srv
dr-xr-xr-x.  13 root root    0 12月 17 15:15 sys
-rw-r--r--.   1 root root    0 12月 13 14:42 test12.txt
drwxrwxrwt.  13 root root 4096 12月 18 16:07 tmp
drwxr-xr-x.  12 root root  144 11月  8 14:38 usr
drwxr-xr-x.  21 root root 4096 11月  8 14:54 var


[root@Believe /]# tail /var/log//cron
Dec 13 15:01:54 Believe crontab[29726]: (root) BEGIN EDIT (root)
Dec 13 15:02:01 Believe CROND[29731]: (root) CMD (/usr/bin/echo hello)
Dec 13 15:02:01 Believe CROND[29728]: (root) CMDOUT (hello)
Dec 13 15:02:15 Believe crontab[29726]: (root) REPLACE (root)
Dec 13 15:02:15 Believe crontab[29726]: (root) END EDIT (root)
Dec 13 15:03:01 Believe crond[1180]: (root) RELOAD (/var/spool/cron/root)
Dec 13 15:03:01 Believe CROND[29762]: (root) CMD (mkdir^I/sky10)
Dec 13 15:03:18 Believe crontab[29782]: (root) LIST (root)
Dec 13 15:04:01 Believe CROND[29785]: (root) CMD (mkdir^I/sky10)
Dec 13 15:04:01 Believe CROND[29783]: (root) CMDOUT (mkdir: 无法创建目录 “/sky10”: 文件已存在)

六、IO

Standard input(STDIN)标准输入,来自于键盘。

Standard output(STDOUT)标准输出,默认是终端。

Standard error(STDERR)错误输出,默认是终端。

1、IO重定向

IO重定向
符号

作用

>

输出重定向

2>

错误输出重定向

&>

所有输出重定向

>>

追加

2>>

错误追加

&>>

所有追加

语法格式:命令、重定向符号、文件名

command > filename

[root@Believe ~]# ls > /tmp/filelist.txt
[root@Believe ~]# cat /tmp/filelist.txt
1234.txt
123.txt
公共
模板
视频
图片
文档
下载
音乐
桌面
a1.txt
a3.txt
a5.txt
a7.txt
a9.txt
abc.txt
ab.txt
anaconda-ks.cfg
a.txt
b.txt
c.txt
disks.sh
initial-setup-ks.cfg

2、find命令

find:查找。

[root@Believe ~]# find /etc/ -name passwd > find1.out > fin2.err
输出如果没有文件,默认会创建一个空文件。

3、管道“|”命令

管道语法:command1 | command2

将command1的执行结果作为command2的输入

3、wc命令

wc:检查文件行数。

[root@Believe scripts]# wc -l ping.sh
12 ping.sh
[root@Believe scripts]#

[root@Believe scripts]# ls -l /etc/ | wc -l
261

测试案例:统计CPU使用最高的前五个,并邮件发给user1

[root@Believe scripts]# ps axo %cpu,%mem,pid,comm |sort -rn |head -n 5
%CPU %MEM   PID COMMAND
0.0  1.3  1848 gnome-shell
0.0  0.9   807 systemd-journal
0.0  0.3  2216 ibus-x11
0.0  0.2  2173 Xwayland

邮件发给user1
[root@Believe scripts]# ps axo %cpu,%mem,pid,comm |sort -rn |head -n 5  |mail -s "process info" user1

七、循环语句

1、for循环

NAME:变量

#!/bin/bash
for num in $(seq 1 1000)
do
touch /tmp/$num
done

 测试案例:创建文件内的用户,并且随机生成密码,账号密码输出到文件中,然后把账号密码已邮件邮件形式发送给root。

[root@Believe scripts]# cat /etc/passwd |grep /bin/bash |grep -v root |cut -d: -f1
admin
user1
user2
user3
user10
user11
#!/bin/bash
for users in $(cat /scripts/userlist.txt)
do
        useradd $users
        password=$(openssl rand -base64 6)
        echo $password | passwd --stdin $users
        echo "username: $users password: $password" | $(echo username: $users password: $password >> /root/userspassword.txt) | mail -s "username and password" root
done

--stdin标准输入,在下边这里就不用重复输入两次密码了

[root@Believe scripts]# echo redhat | passwd --stdin user1

在Linux中,任何操作都会有一个返回值。

Linux 基础 WEB 服务搭建详解 IP地址在OSI模型中的第三层(网络层),而它的上一层是传输层,其中包含了部分端口。由此可见,网络层可以定义到主机,而端口可以定位到应用,通常给IP加端口也叫套接字(socket)。动态共享对象(DSO,在Windows中叫动态链接库,DLL)不能主动运行,只有在程序调用的时候才能运行,通常一个程序可以调用多个动态共享对象。如果文件已存在,则会覆盖原文件的内容。命令关闭防火墙,此时可以根据虚拟机的ip在浏览器中访问测试页面。蓝色部分是注释,一部分是描述性的注释,一部分是配置性的注释,系统不会运行。 阅读详情

相关推荐

Linux基础命令详解

linux基础命令详解,附ssh添加软链接后门测试,前提是需要开启ssh服务并且以root权限开启

The current road is different, love needs to distinguish between right and wrong 1006

Linux基础指令详解

目录前言Linux基本指令1.ls指令1.1 ls1.2 ls -l 1.3 ls -a1.4 ls -d1.5 绝对路径和相对路径2.pwd指令3.cd指令4.touch指令5.mkdir指令6.rmdir指令和rm指令1.rmdir指令2.rm指令3.通配符7.man指令8.cp指令9.mv指令9.1 移动文件(windows系统下的剪切)9.2 将文件重命名 10、cat,more与less指令10.1 cat指令10.2 more指令10.3 less指令11、重定向11.1输入重定向11.2输出重

weixin_59371851的博客 8119

深度学习十大算法之Word2Vec

Word2Vec的提出,标志着词嵌入技术的一次重大进步。Word2Vec是一种高效的词嵌入模型,由Google的研究团队于2013年开发。它使用一种称为神经网络的机器学习方法,通过学习大量文本数据,生成能够表达词语间丰富语义关系的词向量。Word2Vec的核心优势在于它能够捕捉到词语之间的细微关系。例如,在Word2Vec模型中,可以通过计算向量之间的距离来估计词语之间的相似度。这不仅能帮助理解语言的复杂性,还可以应用于各种NLP任务,如机器翻译和搜索引擎优化。

第欧根尼的酒桶的博客 1864

【网络安全】Linux基础详解

【网络安全】Linux基础知识及常用命令

GRXHunter的博客 967

8.26华为OD机试真题 新系统【仓库查询】

华为OD机试真题 新系统【仓库查询】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【仓库查询】多语言题解。

qq_45776114的博客 544

无人驾驶Autoware导读

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对无人驾驶Autoware介绍做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 2397

Linux 操作系统基础指令详解(一)

本文系统介绍了Linux操作系统的基础文件操作指令及其核心概念。重点讲解了`ls`、`cd`、`touch`、`mkdir`、`rm`等常用指令的功能和使用选项,并深入阐释了Linux文件管理的树形结构本质。文章强调理解“文件=内容+属性”这一基础理念,区分了绝对路径与相对路径的差异,解释了隐藏文件`.`和`..`的实际作用。同时揭示了家目录、路径分隔符、文件后缀在Linux中的特殊处理方式。通过指令演示与原理结合的方式,为初学者构建了从操作到理解的系统性认知框架。

近津薪荼的博客 1876

1985-2021年30m全国逐年土地覆被数据(含分省数据)

基于CLCD,揭示了1985年至2019年期间中国土地覆被变化的趋势和模式,如不透水表面(+148.71%)和水(+18.39%)的扩大,耕地(-4.85%)和草地(-3.29%)的减少,以及森林(+4.34%)的增加。由于中国的一系列造林政策,如1980年代启动的三北防护林工程和2000年后启动的绿色增益工程,从1985年到 2019年,森林增加了4.34%,灌木减少了259万公顷,与 ESACCI_LC的减少趋势相似。尽管为了养活不断增长的人口,中国东北和西北地区进行了广泛的开垦,但耕地普遍减少。

J_Giser的博客 1469

linux基础命令详解

Linux基础命令详细讲解

记录学习路上的一些拙见 1142

温升试验详解

温升试验是电子设备可靠性验证的重要手段,用于评估器件在正常工作或极限条件下的热稳定性。试验通过测量器件表面或关键点温度与环境温度的差值(ΔT),判断是否存在过热风险。主要依据行业标准,采用热电偶、热像仪等设备测量稳态温度。热阻分析可建立温升与功耗的关系,指导器件选型、PCB热设计和散热结构优化。典型应用包括电源模块和LED电路测试。温升试验通过系统性热分析,能有效提升产品在高负载、高温环境下的可靠性和安全性,对现代小型化、高密度电子设备尤为重要。

硬核科技 1329

高通Camx功能feature分析之一:remosaic功能导通

本文详细介绍了S5K3P9S传感器前置场景中SW Remosaic功能的实现流程。首先需在sensorxml中确认支持SW Remosaic类型,并集成remosaic相关库文件(libremosaic_wrapper.so等)。核心实现包括:初始化阶段调用InitFrontSamsungRemosaic();执行线程DeferFrontInitThread()读取校准数据;通过DoSamsungRemosaic()执行remosaic算法处理;最后在析构函数中调用DeinitFrontSamsungRem

1695

Linux基础命令详解手册

《Linux命令行简明手册》精选核心运维命令,涵盖文件操作(cd/ls/cp)、权限管理(chmod/chown)、系统监控(top/df)、网络工具(ping/ssh)及文本处理(grep/sed/awk)。重点标注危险操作(如rm -rf)和高频参数组合,特别推荐管道符|与重定向>的进阶用法。手册按功能模块分类,包含apt/yum等主流包管理器对比,每个命令均附实用示例。建议新手从基础文件操作入手,逐步掌握组合命令技巧,强调使用man命令查阅手册的安全意识。

qq_63961628的博客 835

【Windows Server 2019】活动目录 (Active Directory) ——理论

博文介绍了活动目录 (Active Directory) 的定义,作用以及与 DNS 的关系。同时也介绍了AD的组织结构,包括域控制器,子域,对象,属性,容器,组织单位,域间信任等术语的解释,实验拓扑图。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 7746

Linux基础指令详解:掌握Linux系统的必备技能

Linux指令行界面(CLI)是其核心部分之一,通过命令行可以执行各种系统管理和文件操作任务。掌握这些基础指令,不仅能帮助你更高效地管理Linux系统,还能为深入学习Linux内核和高级编程打下坚实的基础。以上介绍的是Linux系统中最为基础且常用的指令。掌握这些指令,你将能够执行基本的文件管理、目录操作、权限管理以及进程管理等任务。随着学习的深入,你还可以探索更多高级指令和脚本编程,进一步提升在Linux系统上的操作能力。希望这篇文章能帮助你快速上手Linux,享受这个强大操作系统带来的便利和乐趣!

软件工匠师的博客 1052

2025B卷最新华为OD机试持续收录中 - 真题题库清单,按考点划分(Python / JS / C++ / JAVA / C语言)

2025B卷最新华为OD机试持续收录中 - 真题题库清单,按考点划分(Python / JS / C++ / JAVA / C语言)

算法大师! 3056

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

linux基础命令(详解)linux基础使用

linux基础命令(详解)1.Linux基础命令lscd2.linux下文件操作命令1.创建2.查看3.查找查找规则1)根据文件名查找2)根据文件的时间戳信息查找文件3)根据文件所属用户和所属组来查找文件4) -perm: 根据权限来查找文件5) -type: 根据文件类型查找文件4.编辑3.linux下管道模式与输出信息(输出信息查找,awk)4.linux下的软件下载yum1).yum 语法2) yum 常用命令wget1.使用方法2.例子:5.linux下用户权限理解什么是权限目录权限与文件权限用户的

weixin_44102152的博客 497

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Linux基础知识详解

一、什么是Linux(利尼克斯)系统? Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机 单用户操作系统和多用户操作系统 单用户操作系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源 Windows XP 之前的版本都是单用户操作系统 多用户操作系统:指一台计算机在同一时间可以由 多个用户 使用,多个用户共同享用系统的全部硬件

glass__sky的博客 5362

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Linux环境搭建详解及基础命令详解

计算机简介Linux系统介绍Linux环境搭建Linux基础命令概述全称叫电子计算机, 英文名叫Computer, 俗称叫: 电脑, 简称叫: PC, 就是有硬件和软件组成的电子设备.组成计算机硬件CPU, 中央处理器, 由 运算器 + 控制器 组成存储器内存: 内存条, DDR4, 3233睿频, 8G...外存: 硬盘(SSD, HSD, HDD), U盘, 光盘...计算机软件系统软件: windows...应用软件: 微信, QQ...操作系统介绍作用。

2201_75415080的博客 1340

详解linux的基础命令

详解linux的基础命令

FuncPlotCalc 448

Linux权限基础详解

作为多用户操作系统,为每个文件都添加了很多属性来维护数据安全,避免配置不当造成数据泄露、服务瘫痪甚至服务器遭受攻击。例如使用导致数据库被恶意篡改。我们可以通过ls -al命令查看文件或者目录的权限信息。ls -al。

guaixiaohuo的博客 1004

Linux 基础详解

Linux 概述 什么是Linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 ...

人生起落,生活苦甜,坚持追求! 2986
上一篇: 网络问题排障专题-数据分析
数通工程师小明
数通工程师小明 新星创作者: 信息安全技术领域 新星创作者: 信息安全技术领域
博客等级 码龄8年 2533粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数通工程师小明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值