tar命令
使用tar命令对文件进行打包压缩与解压缩:
使用gzip方式对文件进行压缩,并指定压缩名为 tar_gzip.tar.gz
[root@ikta ~]# tar -czvf tar_gzip.tar.gz find_test1 find_test2
find_test1
find_test2
使用bzip2方式对文件夹进行压缩,并指定压缩名为 tar_bzip2.tar.bz2
[root@ikta ~]# tar -cjvf tar_bzip2.tar.bz2 tar_test/
tar_test/
tar_test/find_test1
tar_test/find_test2
使用xz方式对文件进行压缩,并指定压缩名为 tar_xz.tar.xz
[root@ikta ~]# tar -cJvf tar_xz.tar.xz find_test1
find_test1
新建文件file1.txt,file2.txt,file3.txt
[root@ikta ~]# touch file{1..3}.txt
对文件file1.txt和file2.txt,进行压缩(使用gzip方式),排除file3.txt(即不对file3进行压缩)
并指定压缩名为tar_file.tar.gz
[root@ikta ~]# tar --exclude=file3.txt -czvf tar_file.tar.gz file1.txt file2.txt
file1.txt
file2.txt
新建文件file4.txt,将file4.txt添加到tar_file.tar.gz中
[root@ikta ~]# tar -rvf tar_file.tar file4.txt
file4.txt
查看压缩包tar_file.tar.gz有哪些文件及目录(不解压,只查看)
[root@ikta ~]# tar -tvf tar_file.tar.gz
-rw-r--r-- root/root 0 2021-11-17 00:29 file1.txt
-rw-r--r-- root/root 0 2021-11-17 00:29 file2.txt
-rw-r--r-- root/root 0 2021-11-17 23:24 file4.txt
解压tar_gzip.tar.gz到指定目录tar_test(没有这个目录就创建)
[root@ikta ~]# tar -xvf tar_file.tar.gz -C tar_test/
file1.txt
file2.txt
file4.txt
解压tar_xz.tar.xz
[root@ikta ~]# tar -xvf tar_xz.tar.xz
find_test1
2.在Linux上的/root目录创建一个Linux.txt,在windows上创建windows.txt
在cmd上连接linux
现在所在的目录为根目录,我们近端为PC端,远端为Linux端
注意:cd切换的是远端的目录;lcd切换的是本地的目录
通过sftp的 get和put命令,将windows上的windows.txt推送到linux上
同理
通过sftp的 get和put命令,将linux上的linux.txt推送到windows上
使用rz上传文件windows.txt到linux上
使用sz下载文件linux.txt到windows上
环境变量
普通变量的操作
创建普通变量local_data=1并访问
[root@ikta ~]# local_data=1
[root@ikta ~]# echo $local_data
1
用户变量的操作
创建环境变量root_data, 只有root用户可以访问到
[root@ikta ~]# vim .bash_profile ------编辑root的环境变量(root_data=root)
[root@ikta ~]# source .bash_profile ------使文件生效
[root@ikta ~]# echo $root_data ------打印
root
创建环境变量normal_user_data, 只有普通用户testuser1可以访问到
[root@ikta ~]# su - testuser1 ------切换到testuser1用户
[testuser1@ikta ~]$ vim .bash_profile ------编辑用户的环境变量(normal_user_data=testuser1)
[testuser1@ikta ~]$ source .bash_profile ------生效
[testuser1@ikta ~]$ echo $normal_user_data ------打印
testuser1
全局变量的操作
创建环境变量root用户和普通用户都可以访问到
[root@ikta ~]# vim /etc/profile -------全局环境变量(global_data=global)
[root@ikta ~]# source /etc/profile -------生效
[root@ikta ~]# echo $global_data
global
alias别名
创建3个文件test1.txt, test2.txt, test3.txt
使用find查找test1.txt,test2.txt, test3.txt
[root@ikta ~]# touch test{1..3}.txt
[root@ikta ~]# find . -name "test*.txt"
./test1.txt
./test2.txt
./test3.txt
使用别名
使用别名: 将上边命令命名为myfind
[root@ikta ~]# alias myfind='find . -name "test*.txt"'
[root@ikta ~]# myfind
./test1.txt
./test2.txt
./test3.txt
取消别名(unlias)
[root@ikta ~]# unalias myfind
history命令
查看最近使用的10条历史命令(history)
[root@ikta ~]# history 10
同时执行两条命令
在一行上打印123和以及从root切换到普通用户 (分号)
[root@ikta ~]# echo "123";su - testuser1
123
[testuser1@ikta ~]$
通配符使用
创建3个文件 file1, file2, file3
1.* 去匹配3个文件
[root@ikta ~]# ls -l file*
2.? 匹配3个文件
[root@ikta ~]# ls -l file?
3.[]匹配file1和file3
[root@ikta ~]# ls -l file[13]
4.[^]匹配file2
[root@ikta ~]# ls -l file[^13]
5.[!]匹配file2
[root@ikta ~]# ls -l file[!13]
6.{}匹配file1和file3
[root@ikta ~]# ls -l file{1,3}
无引号,单引号,双引号,反引号,$()的使用
引号的使用举例: 无引号,单引号,双引号,反引号,$()
无引号
[root@ikta ~]# data=1
[root@ikta ~]# echo $data
1 -----字符串1
单引号
[root@ikta ~]# data='1'
[root@ikta ~]# echo $data
1 -------无论写什么都原样输出
双引号
[root@ikta ~]# data=1
[root@ikta ~]# echo $data
1
[root@ikta ~]# data2="$data 123"
[root@ikta ~]# echo $data2
1 123 --------先去提取变量的值再去输出
反引号
[root@ikta ~]# data3=`pwd`
[root@ikta ~]# echo $data3
/root ----------一般用于命令,先去执行反引号里面的命令,再把值传给变量
$()
[root@ikta ~]# data4=$(pwd)
[root@ikta ~]# echo $data4
/root ------------和反引号一样
Linux三种用户类型详解
(1)linux中用户的类型
超级用户——用户名为root,它具有一切权限,只有进行系统维护(例如:建立用户等)或其他必要情形下 才用超级用户登录,以避免系统出现安全问题。
系统用户(伪用户)——是Linux系统正常工作所必需的内建的用户。 主要是为了满足相应的系统进程对文件属主的要求而建立的,例如:bin、daemon、adm、lp等用户。 系统用户不能用来登录.
普通用户——是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类。
超级用户的UID——0
系统用户的UID——1~999
普通用户的UID——≥1000
(2)linux中用户组的类型
基本组(私有组):建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是基 本组,基本组只容纳一个用户。当把其他用户加入到该组中,则基本组就变成了附加组。
附加组(公有组):可以容纳多个用户,组中的用户都具有组所拥有的权利。
系统组:一般加入一些系统用户。
/etc/下passwd、shadow、group、gshadow各文件中字段说明
在Linux中,用户账号、密码、用户组信息和用户组密码均是存放在不同的配置文件中的。
文件功能 | 文件名称 |
---|---|
用户账号文件 | /etc/passwd |
用户密码文件 | /etc/shadow |
用户组账号文件 | /etc/group |
用户组密码文件 | /etc/gshadow |
1)用户账号文件——/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 |
2)用户密码文件——/etc/shadow
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/shadow文件中的每行9个字段的含义分别为:
字段 | 含义 |
---|---|
登录名 | 登录名 |
加密口令 | 使用SHA-512/SHA-256/MD5算法加密后的密码,若为空,表示该用户无需密码即可登录, 若为“*”表示该账号不能用于登录系统,若为“!!”表示该账号密码已被锁定 |
最后一次修改时间 | 最近一次更改密码的日期,以距离1970年1月1日的天数表示 |
最小时间间隔 | 密码在多少天内不能被修改。默认值为0,表示不限制 |
最大时间间隔 | 密码在多少天后必须被修改。默认值为99999,表示不进行限制 |
警告时间 | 提前多少天警告用户密码将过期,默认值为7天,0表示不提供警告 |
不活动时间 | 密码过期多少天后禁用此用户 |
失效时间 | 密码失效日期,以距离1970年1月1日的天数表示,默认为空,表示永久可用 |
标志 | 保留未用,以便以后发展之用 |
3)用户组文件——/etc/group
系统中的每个组,在/etc/group文件中有一行记录
任何用户均可以读取用户组账户信息配置文件。
用户组的真实密码保存在/etc/gshadow配置文件中。
group文件字段说明:
字段 | 说明 |
---|---|
Groupname | 组的名字 |
Passwd | 组的加密口令 |
GID | 是系统区分不同组的ID,在/etc/passwd域中的GID字段是用这个数来指定用户的基本组 |
Userlist | 是用“,”分开的用户名,列出的是附加组的成员。 |
4)用户组密码——/etc/gshadow
存放的是组密码
略