Linux初级(三)

目录

压缩和解压缩

zip:既归档又压缩的工具,可以压缩目录

gzip和gunzip命令

xz、unxz命令

tar归档命令

文件上传下载

sftp命令

scp命令

rz命令与sz命令

sz命令

环境变量

设置环境变量(永久生效)

普通变量

命令别名

通配符

引号的使用

用户和组的分类

用户账号文件——/etc/passwd

用户密码文件——/etc/shadow

用户组账号文件——/etc/group

用户管理

1、useradd

为用户账号设置密码——passwd命令

修改用户属性——usermod命令

删除用户账号——userdel命令

用户间切换——su(substitute user)命令

控制用户对系统命令的使用权限--sudo命令

用户组管理

创建用户组——groupadd命令

添加/删除组成员——gpasswd命令

修改用户组属性——groupmod命令

删除组账户——groupdel命令

用户和组账户的信息显示


压缩和解压缩

zip:既归档又压缩的工具,可以压缩目录

例如:

[root@localhost ~]# zip 11.zip 11.txt 
  adding: 11.txt (stored 0%)
格式&参数:

zip -9 zipname file

#最大压缩比的压缩

zip -r zipname directory

#-r: 压缩目录,将目录中的子目录及文件也一起压缩

zip -m zipname file:

#-m: 将文件加入到已压缩的压缩包中

zip zipname filelist -x file

#-x: 在压缩的时候将file排除在外,不压缩

unzip

unzip zipname -d directory

#-d:指定解压的目录

unzip -v zipname

#-v:查看压缩包中的内容,不解压

gzipgunzip命令

例如:
[root@localhost test]# gzip test1.txt 
[root@localhost test]# ls test1* 
test1.txt.gz test1.zip

参数:-r 压缩过后,原文件删除

-c 压缩过后,原文件依然存在

bzip2和bunzip2命令

bzip2压缩,原文件压缩之后消失

示例&参数:
# bzip2 -z man.config //将man.config以bzip2压缩,此时man.config变成 man.config.bz2 
# bzip2 -9 -c man.config > man.config.bz2 //将man.config用最佳的压缩比压缩,并保留原本的档案 
# bzip2 -d man.config.bz2 //将man.config.bz2解压缩,可用bunzip2取代bzip2 -d 
# bunzip2 man.config.bz2 //将man.config.bz2解压缩

xzunxz命令

#压缩文件后,源文件消失

实例 1 :压缩文件
[root@localhost test]# xz test1.txt
[root@localhost test]# ls test1.txt.xz
test1.txt.xz

实例2:

[root@localhost test]# xz dir1/* 
[root@localhost test]# ls dir1 
fstab.xz test3.txt.xz test4.txt.xz test5.txt.xz

tar归档命令

tar归档又叫打包
格式: tar [ 选项 ] 打包文件名 被打包的源文件或目录列表
tar [ 选项 ] 打包文件名 [-C 目标文件夹 ]
选项:
选项    功能
c      创建.tar格式的包文件
x      释放.tar格式的包文件
t      查看包中的文件列表
v      表示在命令执行时显示详细的提示信息
f      用于指定包文件名。当与-c选项一起使用时,创建的tar包文件使用该选项指定的文件名;
       当与-x选项一起使用时,则释放该选项指定的tar包文件。
p      打包时保留文件及目录的权限。
C      释放包时指定释放的目标的位置。
A      新增压缩文件到已存在的压缩,catenate
k      保留源文件
t      查看包中文件列表

z      调用gzip程序,以gzip格式压缩或解压缩文件。
j      调用bzip2程序,以bzip2格式压缩或解压缩文件。
J      使用xz压缩(.tar.xz)。xz的压缩率通常比bzip2更高。
tar 打包时排除:
--exclude=PATTERN 排除以 PATTERN 指定的文件
-X, --exclude-from=FILE 排除 FILE 中列出的模式串

文件上传下载

sftp命令

ssh+ftp
sftp类似于 ftp 传输协议,属于 ssh, 但它进行加密传输,相对 FTP 来讲有更高的安全性。

 sftp [email protected], sftp去登录进行文件传输

get:  获取,从远端获取到本地

put: 推送,从本地推送到远端

示例:

  将 223.6.6.6 服务器文件下载到 223.5.5.5 home 目录 ;
sftp> get /var/www/renwole.txt /home/
223.5.5.5 服务器文件上传到 223.6.6.6 服务器的 mnt 目录 ;
sftp> put /home/renwole.txt /mnt/

scp命令

ssh+copy
scp 可以概括为: scp -P 端口 文件路径 用户名 @ 主机地址 : 远程目录
如果想拷贝本地文件到另外一台 ssh 终端,可以使用以下命令;
# scp /renwole/mariadb.tar.gz [email protected]:/renwole123/
[email protected]’s password:【输入密码回车】
mariadb.tar.gz 8% 37MB 1.3MB/s 05:29 ETA
如果你反过来操作,把远程主机的文件拷贝到当前系统,操作命令以下;
# scp [email protected]:/renwole123/mariadb.tar.gz /renwole

rz命令与sz命令

rz 命令( Receive ZMODEM ),使用 ZMODEM 协议,将本地文件批量上传到远程 Linux/Unix 服务器,注意不能上传文件夹。
命令格式: rz [选项 ]
选项:
-+, --append:      将文件内容追加到已存在的同名文件
-a,--ascii:        以文本方式传输
-b, --binary:      以二进制方式传输,推荐使用
--delay-startup N: 等待N秒
-e, --escape:      对所有控制字符转义,建议使用
-E, --rename:      已存在同名文件则重命名新上传的文件,以点和数字作为后缀
-p, --protect:     对ZMODEM协议有效,如果目标文件已存在则跳过 -
q, --quiet:        安静执行,不输出提示信息
-v, --verbose:     输出传输过程中的提示信息
-y, --overwrite:   存在同名文件则替换
-X, --xmodem:      使用XMODEM协议
--ymodem:          使用YMODEM协议
-Z, --zmodem:      使用ZMODEM协议
--version:        显示版本信息
--h, --help:      显示帮助信息

sz命令

sz 命令( Send ZMODEM )通过 ZMODEM 协议,可将多个文件从远程服务器下载到本地。注意不能下载文件夹,如果下载文件夹,请先打包再下载
格式:rz [选项 ] [filelist]
选项与rz基本相同,参考上文或者--help查询
下载多个文件:
sz file1 file2 file3
sz rz 命令在实际应用开发中非常实用,有时候我们会经常跑脚本统计数据,需要上传和下载一些大数据量的数据,这时候这两个命令就非常有用了
有的机器可能不能使用 rz/sz 命令,这个时候我们就需要安装 lrzsz
执行以下命令:
yum install lrzsz -y

环境变量

变量可分为两类:环境变量(全局变量)和普通变量(局部变量)
环境变量也可称为全局变量,可以在创建它们的 Shell 及其派生出来的任意子进程 Shell 中使用,环境变量又可分为自定义环境变量和 bash 内置的环境变量。
普通变量 也可称为局部变量,只能在创建它们的 Shell 函数或 Shell 脚本中使用,普通变量一般由开发者在开发脚本程序时创建
设置环境变量:
export 变量名=value

设置环境变量(永久生效)

用户:
[root@www ~]$ ls /root/.bashrc # 推荐再此文件中优先设置 
/root/.bashrc 
[root@www ~]$ ls /root/.bash_profile 
/root/.bash_profile

全局:

[root@www ~]$ /etc/profile 
[root@www ~]$ /etc/bashrc 
[root@www ~]$ /etc/profile.d/
在登录 Linux 系统并启动一个 bash shell 时,默认情况下 bash 会在若干个文件中查找环境变量的设置, 这些文件可统称为系统环境文件,bash 检查的环境变量文件的情况取决于系统运行 Shell 的方式,系统 运行 Shell 的方式有 3
1 )通过系统用户登录后默认运行的 Shell
2 )非登录交互式运行 Shell
3 )执行脚本运行非交互式 She

普通变量

变量的赋值,一般有五种写法:
name=value 
name1='value' 
name2="value" 
name3=`cmd` 
name4=$(cmd)

命令别名

别名是 命令 的快捷方式。为那些需要经常执行,但需要很长时间输入的长 命令 创建快捷方式很有用。
格式:alias 别名 =’ 原命令 - 选项 / 参数
查看设置的别名: alias
删除别名: unalias 别名

通配符

字符        含义
*           匹符配任意字
?          匹配单个字符
[]          匹配方括号中的任意一个,不能用于创建目录和文件
[^]         匹配方括号中的任意一个字符或数字后进行取反,等同于[! ],表示范围可以
            用".."或"—”,用于查找和删除目录和文件,不用于创建目录和文件

[!]         匹配方括号中的任意一个字符或数字后进行取反, 等同于[^ ],表示范围可以
            用".."或"—", 用于查找和删除目录和文件,不用于创建目录和文件

[?-?]      匹配方括号范围内任意一个,用于查询、删除,但不能用于创建目录和文件

{string,string} 匹配括号中的任意一个字符串,表示一个范围时,字符串之间个".."

引号的使用

符号            作用
               无引号,
'              单引号,输出时,将单引号内的所有内容都原样输出,这称为强引用
"              双引号,输出双引号内的所有内容,如果内容中有变量,特殊转义符等,会先把变量,转移
               符等解析出结果,然后再输出最终内容,这成为强引用
`              反引号,一般用于引用命令,执行的时候命令会被执行,与$()作用相同,
$()            与`作用相同

用户和组的分类

.Linux 下的用户可以分为三类:
超级用户 —— 用户名为 root ,它具有一切权限,只有进行系统维护 ( 例如:建立用户等 ) 或其他必要情形下
才用超级用户登录,以避免系统出现安全问题。
系统用户(伪用户) —— Linux 系统正常工作所必需的内建的用户。
主要是为了满足相应的系统进程对文件属主的要求而建立的,例如: bin daemon adm lp 等用户。
系统用户不能用来登录 .
普通用户 —— 是为了让使用者能够使用 Linux 系统资源而建立的,我们的大多数用户属于此类。

Linux 中的组有以下三种:
基本组 ( 私有组 ) :建立账户时 , 若没有指定账户所属的组 , 系统会建立一个和用户名相同的组 , 这个组就是基
本组 , 基本组只容纳一个用户。当把其他用户加入到该组中 , 则基本组就变成了附加组。
附加组 ( 公有组 ) :可以容纳多个用户 , 组中的用户都具有组所拥有的权利。
系统组:一般加入一些系统用户。
每个用户都有一个 UID 数值 :
超级用户的 UID——0
系统用户的 UID——1 999
普通用户的 UID—— 1000
文件功能 文件名称
用户账号文件 /etc/passwd
用户密码文件 /etc/shadow
用户组账号文件 /etc/group
用户组密码文件 /etc/gshadow

用户账号文件——/etc/passwd

passwd 是一个文本文件,用于定义系统的用户账号,由于所有用户都对 passwd 有读权限,所以该文件
中只定义用户账号,而不保存口令。
每行由 7 个字段组成,字段之间用 “:” 分隔,其格式如下:
账号名称 : 密码 :UID:GID: 个人资料 : 主目录 :Shell
字段说明:
账号名称:用户登录 Linux 系统时使用的名称。
密码:以前是以加密格式保存密码的位置 , 现在密码保存在 /etc/shadow 文件中 , 此处只是密码占位符 “x”
“*” 。若为 “x” ,说明密码经过了 shadow 的保护
UID :用户的标识,是一个数值,用它来区分不同的用户
GID :用户所在基本组的标识,是一个数值,用它来区分不同的组,相同的组具有相同的 GID
个人资料:可以记录用户的完整姓名、地址、办公室电话、家庭电话等个人信息。
主目录:类似 Windows 的个人目录,通常是 /home/username ,这里 username 是用户名,用户执行
“cd 命令时当前目录会切换到个人主目录。
Shell :定义用户登录后激活的 Shell ,默认是 Bash Shell

用户密码文件——/etc/shadow

每行定义了一个用户信息,行中各字段用 “:” 隔开 , 其格式如下:
登录名 : 加密口令 : 最后一次修改时间 : 最小时间间隔 : 最大时间间隔 : 警告时间 : 不活动时间 : 失效时间 : 标志
字段         含义
登录名       字面意思自己理解

加密口令     使用SHA-512/SHA-256/MD5算法加密后的密码,若为空,表示该用户无需密码即可登录,
            若为“*”表示该账号不能用于登录系统,若为“!!”表示该账号密码已被锁定

最后一       最近一次更改密码的日期,以距离1970年1月1日的天数表示
次修改
时间

最小时       密码在多少天内不能被修改。默认值为0,表示不限制
间间隔 

最大时       密码在多少天后必须被修改。默认值为99999,表示不进行限制
间间隔 

警告时间     提前多少天警告用户密码将过期,默认值为7天,0表示不提供警告


不活动       密码过期多少天后禁用此用户
时间 

失效时       密码失效日期,以距离1970年1月1日的天数表示,默认为空,表示永久可用
间

标志         保留未用,以便以后发展之用

用户组账号文件——/etc/group

系统中的每一个文件都有一个用户和一个组的属主。使用 “ls –l” 命令可以看到每一个文件的属主和组。 系统中的每个组,在/etc/group 文件中有一行记录
字段说明
字段          说明
Groupname    组的名字
Passwd       组的加密口令
GID          是系统区分不同组的ID,在/etc/passwd域中的GID字段是用这个数来指定用户的基本组
Userlist     是用“,”分开的用户名,列出的是附加组的成员。

用户管理

1、useradd

添加新用户

命令格式: useradd [ 选项 ]
常用选项:
-c     注释信息——设定与用户相关的说明信息(如,真实姓名、邮箱地址等)。
-d     目录——设定用户的家目录(默认为/home/用户名)。
-e     YYYY-MM-DD——设置用户的失效日期,此日期后将不能使用该账号。
-f     天数——指定密码到期后多少天账号被禁用,若指定为0,则表示账号到期后被立即禁用;若指定为-1,则表
       示账号过期后不被禁用(即密码永不过期)。
-g     组名或GID号——为用户指定所属的基本组,该组在指定时必须已存在。
-G     组名或GID号列表——为用户指定所属的附加组,各组在指定时已存在,附加组可以有多个,组之间用“,”
       分隔。
-M     不创建用户家目录。
-N     不创建与用户名同名的基本组。
-p     密码——指定用户的登录密码。
-s     shell名——指定用户登录后使用的Shell,默认是bash。
-u     用户号——设置账号的UID,默认是已有用户的最大UID加1。如果同时有-o选项,则可以重复使用其他
       用户的标识号。

示例

[root@localhost ~] # useradd zhang3
[root@localhost ~] # tail -1 /etc/passwd
zhang3:x:1001:1001::/home/zhang3:/bin/bash

为用户账号设置密码——passwd命令

Linux的账户必须设置密码后,才能登录系统
命令格式: passwd [ 账户名 ]
常用选项:
-d    清空指定用户的口令。这与未设置口令的账户不同,未设置口令的账户无法登录系统,而口令为空的
      账户可以。
-f    强迫用户下次登录时必须修改口令。
-i    口令过期后多少天停用账户。
-l    锁定(停用)用户账户。
-n    指定口令的最短存活期。
-S    显示账户口令的简短状态信息(是否被锁定)。
-u    解锁用户账户。

修改用户属性——usermod命令

命令格式: usermod [ 选项 ] username
常用选项:

 -c:改个人信息

   -d:改用户家目录

   -m:移动家目录

   -g:改gid(基本组)

   -G:改gid(附加组)

   -u:改uid

   -s:修改shell类型

   -o:可以修改用户id为不唯一的值

   -l:newlogin,改变用户登录名,且在不登录的情况下才可以更改

   -L:lock,锁定用户

   -U:unlock,解锁用户

删除用户账号——userdel命令

命令格式: userdel [-r] 账户名
-r        在删除该账户的同时,一并删除该账户对应的主目录。

用户间切换——su(substitute user)命令

命令格式:su [用户名 ]
从root用户切换到任何用户不需要密码验证 , 而从普通用户到 root 或其他普通用户均需要输入目标用户的密码且验证成功后才可切换。

控制用户对系统命令的使用权限--sudo命令

sudo: 控制用户对系统命令的使用权限 ,root 允许的操作。通过 sudo 可以提高普通用户的操作权限,不过
这个权限是需要进行配置才可使用。

用户组管理

创建用户组——groupadd命令

命令格式: groupadd [-r] 用户组名称
-g GID—— 指定新用户组的组标识号 (GID), 默认值是已有的最大的 GID 1
-r—— 建立一个系统组账号 , -g 不同时使用时 , 则分配一个 1 999 GID

创建组:

[root@rhcsa ~]# groupadd testgroup

添加/删除组成员——gpasswd命令

命令格式: gpasswd [ 选项 ] [ 用户 ] [ ]
[root@rhcsa ~]# gpasswd -a testuser1 testgroup2

Adding user testuser1 to group testgroup2
-a—— 把用户加入组
-d—— 把用户从组中删除。
-M—— 可同时添加多个用户
-A—— 给组指派管理员

修改用户组属性——groupmod命令

命令格式: groupmod 选项 用户组
常用选项:
-g GID——为用户组指定新的组标识号。
-n 新用户组——将用户组的名字改为新名字修改用户组的名称和用户组的GID值。
示例:将组group1的GID修改为2000,组名修改为group11

删除组账户——groupdel命令

命令格式: groupdel 用户组名
[root@rhcsa ~]# gpasswd -d testuser1 testgroup2
Removing user testuser1 from group testgroup2

用户和组账户的信息显示

命令格式         作用
users|w|who     显示当前用户信息(三条命令)
id [用户名]      显示当前用户或指定用户的ID,以及所属组的ID
groups [用户名]  显示当前用户或指定用户所属组账号的信息

你可能感兴趣的:(LINUX)