linux学习-文件管理

文章中实例都是基于CentOS7
Linux是一个多人多任务环境的操作系统,各个用户要想拥有保密的文件数据,文件的权限管理就变得非常重要,Linux将文件的权限分为三类,属主(Owner),属组(Group),其他(Others),且以上三种身份又各有读(Read),写(Write),执行(eXecute)等权限。

Linux文件属性

ls [list]显示文件或文件夹的名称和相关属性
-al 列出所有的文件详细的权限与属性(包含隐藏的文件)
-R(recursive) 递归显示当前目录下的文件和目录(及目录下的文件)
-r(reserve) 逆序显示列表
-i (inode)显示inode信息
-d 显示当前目录的信息

[root@lotus ~]# ls -al
总用量 60
dr-xr-x---. 15 root root 4096 126 22:18 .
dr-xr-xr-x. 17 root root  224 125 23:40 ..
-rw-------.  1 root root 2060 123 23:38 anaconda-ks.cfg
-rw-------.  1 root root 1619 126 21:59 .bash_history
-rw-r--r--.  1 root root   18 1229 2013 .bash_logout
-rw-r--r--.  1 root root  176 1229 2013 .bash_profile
-rw-r--r--.  1 root root  176 1229 2013 .bashrc
drwx------. 14 root root 4096 123 23:42 .cache
drwxr-xr-x. 14 root root  261 123 23:41 .config
-rw-r--r--.  1 root root  100 1229 2013 .cshrc
drwx------.  3 root root   25 123 23:39 .dbus
-rw-------.  1 root root   16 123 23:40 .esd_auth
-rw-------.  1 root root  310 123 23:40 .ICEauthority
-rw-r--r--.  1 root root 2091 123 23:40 initial-setup-ks.cfg
[1]         [2] [3]  [4] [5]  [     6     ]    [7]

[1]权限
[2]链接数
[3]属主
[4]属组
[5]文件大小
[6]修改时间
[7]文件名称权限说明

  • 第1栏代表文件的类型和权限(permission)----Page154
    (-)(rw-)(r–)(r–)】一共有十个字符,第1个字符代表文件的类型,后9个字符代表文件的权限
    第1个字符表示的文件类型有目录(d)、文件(-)、链接(l)、块文件(b)、字符文件©等
    剩余的9个字符三个分为一组:
  • 第1组:属主可具备的权限
  • 第2组:属组可具备的权限
  • 第3组:其他人所具有的权限(非本人,非本组的其他用户的权限)
  • 第2栏:表示有多少文件链接到此节点(inode)
  • 第3栏:属主(文件的拥有者账号)
  • 第4栏:属组(文件所属的用户组)
  • 第5栏:文件的容量大小,默认为Bytes
  • 第6栏:文件的创建日期或是最近修改日期
  • 第7栏:文件名称(注:如果文件名前多一个【.】表示这个文件为隐藏文件),例如上表中的【.config】文件,这个时候可以使用ls -a查看所有文件来查看
    Linux文件权限主要是为了数据的安全
  • 系统保护功能
    在系统中,系统服务的文件通常只有root才能读写或是执行,例如/etc/shadow这个账号管理的文件,由于此文件中记录的是所有账号的数据,当然不能所有人都可以读取,只有root能读取,该文件的权限为【----------】
  • 团队开发软件或数据共享的功能
    在软件团队进行开发时,你如果想让团队成员在一个目录上共享查看一些项目文件信息,可以创建一个frsgroup群组,在群组下创建三个用户test1,test2,test3,那么我们可以将团队所需的文件权限设置为【-rwxrws—】
  • 未将权限设置妥当的危害

如何修改文件属性和权限

chgrp【change group】:修改属组
chown【change owner】:修改属主
chmod【change mode】:修改文件的权限,SUID,SGID,SBIT等特性

chgrp

改变组用户权限
-R:进行递归(recursive)修改,即连同子目录下的所有文件、目录更新成为这个用户组,常用于修改一个目录下所有的文件情况
使用方法:
chgrp [OPTION]… GROUP FILE…

#修改文件的属组
[root@localhost ~]# ll | grep test.txt 
-rw-r--r--. 1 root root    0 Dec 15 08:42 test.txt
[root@localhost ~]# chgrp testgroup test.txt 
[root@localhost ~]# ll | grep test.txt 
-rw-r--r--. 1 root testgroup    0 Dec 15 08:42 test.txt
#修改文件夹下的所有文件的属组
[root@localhost ~]# ll chgrptest;ll -d chgrptest
total 0
-rw-r--r--. 1 root root 0 Dec 15 08:44 a1
-rw-r--r--. 1 root root 0 Dec 15 08:44 a2
-rw-r--r--. 1 root root 0 Dec 15 08:44 a3
-rw-r--r--. 1 root root 0 Dec 15 08:44 a4
drwxr-xr-x. 2 root root 107 Dec 15 08:44 chgrptest
[root@localhost ~]# chgrp -R testgroup chgrptest/
[root@localhost ~]# ll chgrptest;ll -d chgrptest
total 0
-rw-r--r--. 1 root testgroup 0 Dec 15 08:44 a1
-rw-r--r--. 1 root testgroup 0 Dec 15 08:44 a2
-rw-r--r--. 1 root testgroup 0 Dec 15 08:44 a3
-rw-r--r--. 1 root testgroup 0 Dec 15 08:44 a4
drwxr-xr-x. 2 root testgroup 107 Dec 15 08:44 chgrptest
chown

修改文件的属主
使用方法:
chown [OPTION]… [用户名称] 文件或目录
chown [OPTION]… [用户名称【:冒号】用户组名称] 文件或目录
chown [OPTION]… [用户名称【.小数点】用户组名称] 文件或目录
chown [OPTION]… [【.小数点或:冒号】用户组名称] 文件或目录—只修改属组(用户组)
-R:进行递归(recursive)修改,即连同子目录下的所有文件、目录

#将test.txt文件的属主修改为test1
[root@localhost ~]# ll
total 4
-rw-------. 1 root root      1737 Dec 11 17:57 anaconda-ks.cfg
drwxr-xr-x. 2 root testgroup  107 Dec 15 08:44 chgrptest
-rw-r--r--. 1 root testgroup    0 Dec 15 08:42 test.txt
[root@localhost ~]# chown test1 test.txt 
[root@localhost ~]# ll
total 4
-rw-------. 1 root  root      1737 Dec 11 17:57 anaconda-ks.cfg
drwxr-xr-x. 2 root  testgroup  107 Dec 15 08:44 chgrptest
-rw-r--r--. 1 test1 testgroup    0 Dec 15 08:42 test.txt
#修改chgrptest目录下的所有文件的属主为test1
[root@localhost ~]# chown -R test1 chgrptest/
[root@localhost ~]# ll
total 4
-rw-------. 1 root  root      1737 Dec 11 17:57 anaconda-ks.cfg
drwxr-xr-x. 2 test1 testgroup  107 Dec 15 08:44 chgrptest
-rw-r--r--. 1 test1 testgroup    0 Dec 15 08:42 test.txt
[root@localhost ~]# ll chgrptest/
total 0
-rw-r--r--. 1 test1 testgroup 0 Dec 15 08:44 a1
-rw-r--r--. 1 test1 testgroup 0 Dec 15 08:44 a2
-rw-r--r--. 1 test1 testgroup 0 Dec 15 08:44 a3
-rw-r--r--. 1 test1 testgroup 0 Dec 15 08:44 a4
#修改test.txt文件的属主和属组都为root
[root@localhost ~]# ll
total 4
-rw-------. 1 root  root      1737 Dec 11 17:57 anaconda-ks.cfg
drwxr-xr-x. 2 test1 testgroup  107 Dec 15 08:44 chgrptest
-rw-r--r--. 1 test1 testgroup    0 Dec 15 08:42 test.txt
[root@localhost ~]# chown root:root test.txt
[root@localhost ~]# ll
total 4
-rw-------. 1 root  root      1737 Dec 11 17:57 anaconda-ks.cfg
drwxr-xr-x. 2 test1 testgroup  107 Dec 15 08:44 chgrptest
-rw-r--r--. 1 root  root         0 Dec 15 08:42 test.txt
chmod (change mode)

修改用户权限,权限的设置分为两种:使用数字和符号
-R 递归修改目录及子目录下的所有文件

数字类型修改权限

linux的基本权限有9个,分别是属主(owner),属组(group),其他人(others),三种身份有读(read),写(write),执行(eXecute)。
文件的权限字符为:【-rwxrwxrwx】,这9个权限3个为一组,我们可以使用数字来代表各个权限:

  • r : 4(100)
  • w : 2(010)
  • x : 1(001)
    每种身份(owner,group,others)各自的三个权限(r,w,x)数字也是累加的,例如当权限为【-rwxrwxr–】,使用数字表示
    owner=rwx=4+2+1=7
    group=rwx=4+2+1=7
    others=r–=4+0+0=4
#修改test.txt文件的权限为774【-rwxrwxr--】
[root@localhost ~]# ll
total 4
-rw-------. 1 root  root      1737 Dec 11 17:57 anaconda-ks.cfg
drwxr-xr-x. 2 test1 testgroup  107 Dec 15 08:44 chgrptest
-rw-r--r--. 1 root  testgroup    0 Dec 15 08:42 test.txt
[root@localhost ~]# chmod 774 test.txt
[root@localhost ~]# ll
total 4
-rw-------. 1 root  root      1737 Dec 11 17:57 anaconda-ks.cfg
drwxr-xr-x. 2 test1 testgroup  107 Dec 15 08:44 chgrptest
-rwxrwxr--. 1 root  testgroup    0 Dec 15 08:42 test.txt
符号类型修改权限

九个权限分为user,group,others三种身份,我们使用u,g,o来代表三种身份,a代表所有身份,读写执行的权限可以写成r,w,x
在这里插入图片描述

#将test.txt文件的所有身份添加上w权限
[root@localhost ~]# ll
total 4
-rw-------. 1 root  root      1737 Dec 11 17:57 anaconda-ks.cfg
drwxr-xr-x. 2 test1 testgroup  107 Dec 15 08:44 chgrptest
-rwxrwxr--. 1 root  testgroup    0 Dec 15 08:42 test.txt
[root@localhost ~]# chmod a+w test.txt
[root@localhost ~]# ll
total 4
-rw-------. 1 root  root      1737 Dec 11 17:57 anaconda-ks.cfg
drwxr-xr-x. 2 test1 testgroup  107 Dec 15 08:44 chgrptest
-rwxrwxrw-. 1 root  testgroup    0 Dec 15 08:42 test.txt

目录与文件的权限的意义

权限对于文件的重要性

文件是含有数据的地方,包括一般文本文件、数据库文件、二进制可执行文件(binary program)等。

  • r(read):可读取此文件的实际内容,如读取文本文件的文字内容等
  • w(write):可以编辑,新增或修改该文件的内容(不包含删除该文件)
  • x(eXecute):该文件具有可被系统执行的权限。
权限对于目录的重要性

文件中存放的是实际的数据,目录主要用来记录文件名列表,文件名与目录有强关联。

  • r (read contents in directory)
    可以读取目录结构列表,所以当对一个目录具有r权限时,表示可以查询该目录下的文件名列表,即通过ls将目录的内容列表显示出来。
  • w(modify contents of directory)
    可以改变该目录结构列表的权限:可以建立新的文件或目录;删除已存在的文件与目录;将已存在的文件或目录进行更名;移动该目录内的文件、目录位置,总之w权限与该目录下的文件名的变动有关系。
  • x(access directory)
    用户可以进入到此目录成为工作目录。
    举个现实中的例子,文件就像现实当中的文件盒子,你可以在上面写/读一些数据,而目录就像抽屉,你可以将文件盒子放置到不同的抽屉,因此抽屉的最大的目的就是拿出/放入文件盒。
    在这里插入图片描述
    综上分析,对一般文件而言,rwx主要是针对文件的内容来设计权限的,对于目录来说,rwx则是针对目录内的文件名列表来设计权限。
    目录权限例子1:
    /tmp目录下有一个chgrptest目录,权限如下
drwxr--r--. 2 root  root      107 Dec 16 08:36 chgrptest

系统有一个账号test1,这个账号并不在root用户组中,请问test1对这个目录有何种权限?是否可以进入到此目录?
test1目录对此目录只具有r权限,因此test1可以查询此目录下的文件名列表,test1不具有x权限,无法进入到此目录中。【注:能否进入目录,与目录的x权限有关】
有朋友在搭建网站时候在权限上会出现一些问题,他需要开放数据目录给因特网上的任何人浏览,却只给了r权限,那么网站服务器软件无法读取到数据目录下的文件,最终用户总是无法正确查看到文件的内容(显示权限不足),如要开放目录给任何人浏览时,应该至少要开放r和x权限,但w权限不能随便给

mkdir(make directory)

创建文件夹
-m 设置文件的权限(如chmod)

#通过符号u=rwx,g=r,o=r添加权限方式来创建目录
[root@localhost tmp]# mkdir -m u=rwx,g=r,o=r testing
#通过数字744权限来创建目录
[root@localhost tmp]# mkdir -m 744 testing

-p 递归创建目录或文件

#直接创建级联目录会报错
[root@localhost tmp]# mkdir testing/testing
mkdir: cannot create directory ‘testing/testing’: No such file or directory
#加入-p参数创建级联目录
[root@localhost tmp]# mkdir testing/testing -p
用户操作功能与权限

例子
假设有两个文件名,分别是/tst1/file1和/tst2
创建系统使用test2用户,分别使用最小的权限来完成各项任务
在这里插入图片描述
从上面的表格中,如要查看目录下文件,r非必备的,具有x即可,只是没有r的话,tab就无法补全文件名

Linux文件种类与扩展名

任何设备在linux下面都是文件,不仅如此,连数据沟通的接口也有专属的文件在负责。

文件种类
  • 常规文件(regular file)
    一般我们在进行读写的类型的文件,由ls -al 所显示出来的属性方面,第一个字符为【-】,如【-rwxrwxrwx】,另外依照文件的内容,又可分为:
  • 纯文本文件(ASCII):人类可以直接读取到的数据
  • 二进制文件(binary):计算机系统仅能认识和执行二进制文件,如系统中的命令(cat,vim等)
  • 数据文件(data):有些程序在运行的过程中会读取某些特定格式的文件。
  • 目录(directory):就是目录,第一个属性为【d】,例如【drwxrwxrwx】
  • 链接文件(link ):类似于windows下的快捷方式,第一个属性为【l】,例如【lrwxrwxrwx】
  • 设备和设备文件(device):系统周边及存储等相关的一些文件,通常都集中在/dev目录下,通常分为两类
  • 区块(block)文件:一些存储数据,以提供系统随机存取的接口设备,如硬盘和软盘,这种设备称为块设备,第一个属性为【b】
  • 字符设备文件(character):一些串行端口的接口设备,例如键盘,鼠标等,这些设备一次性读取,不能够截断输出,第一个属性为【c】
  • 数据接口文件(socket):既然被称为数据接口文件,这种类型的文件通常被用在网络上的数据交换,我们可以启动一个程序来监听客户端的请求,而客户端可以通过这个socket来进行数据的沟通,第一个属性为【s】,常在/run或/tmp这些目录中看到这类文件。
  • 数据输送文件(FIFO,pipe)这是一种特殊的文件类型,它主要为解决多个程序同时读写一个文件所造成的错误问题,FIFO(first in first out)即管道,第一个属性为【p】
Linux文件扩展名

linux文件没有所谓的扩展名,文件能不能执行,与它的第一栏的10个属性有关,与文件名根本一点关系都没有,这与windows不同,window中,能被执行的文件通常是.com,.bat,.ext等,而linux下面,只要权限当中具有x权限,【-rwxrwxrwx】代表这个文件具有可以被执行的能力。
注:具有可执行权限以有具可执行的程序代码是两回事,在Linux下面,你可以让一个文件文件具有执行的权限,但文件明显无法执行,因为不具备可执行的代码,如果将cat的x权限拿掉,那么cat将无法被执行。
虽然如此,我们还是希望通过扩展名来了解该文件是什么东西,所以通常我们还是会以合适的扩展名来标识文件的类型,如下:

  • *.sh:脚本或批处理文件(scripts),因批处理文件通过shell写成,所以扩展名编写为.sh
  • Z、.tar、.tar.gz、.zip、*.tgz:经过打包的压缩文件,这是因为压缩软件分别为gunzip,tar等
  • .html、.php:网页相关文件,分别代表html或php网页文件。
    基本上Linux上的扩展名只为让你了解文件可能的用途而已。
Linux文件名长度限制

在Linux下面,使用传统的ext2,3,4文件系统以及xfs,针对文件的文件名长度限制为:
单一文件或目录最大容许文件名为255个字节,以一个ASCII英文占用一个字节来说,大约可达255个字符长度,若以汉字占用两个字节计算,汉字可达128个。

Linux文件名的限制

Linux下避免使用如下字符做为文件名

  • ? > < ; & ! [ ] | \ ’ " ` () {}
    因为上述字符在命令行模式下有特殊意义,文件名以【.】开头,表示这个文件是隐藏文件。文件名的开头也不要使用【-,+】来命名。

Linux目录配置

Linux目录配置的依据–FHS(FileSystem Hierarchy Standard)

FHS主要是希望让用户可以了解到已安装软件通常放置于哪个目录下.

根目录(/)的意义与内容

根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来,同时根目录与启动、还原、系统修复等操作有关,由于系统启动时需要特定的启动软件、内核文件、启动所需程序、函数库等文件数据,若系统出现错误,根目录必须要包含有能够修复文件系统的程序才行,因为根目录很重要,所以FHS的要求,希望根目录不要放在非常大的分区内,因为越大的分区你将放入越多的数据,如些一来根目录所在分区可能会有较多发生错误的机会。
因此FHS建议,根目录(/)所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区,保持根目录越小越好,如此性能较佳,根目录所在的文件系统也不容易发生问题。
FHS定义出根目录(/)下面有以下子目录的存在才好:
在这里插入图片描述
早期的linu在设计时,若发生问题,恢复模式通常仅挂载根目录而已,因此有5个重要目录被要求一定要与根目录放置在一起,那就是/etc、/bin、/dev、/lib、/sbin

/usr的意义与内容

根据FHS定义,/usr里面放置的数据属于可分享与不可变动(sharable,static),/usr目录可以分享给网络内的其他主机使用。
usr(UNIX Software Resource)UNIX操作系统资源所放置的目录,而不是用户数据,FHS建议应该将数据合理的分别放置到这个目录下的子目录,而不要自行建立该软件独立的目录。
这个目录有点像windows系统的C:\Windows\其中一部分+C:\Program Files\这两个目录的结合体。
/usr目录内容建议如下:
在这里插入图片描述

var的意义与内容

如果说/usr是安装时会占用较大的磁盘空间,那么/var就是系统运行后才会渐渐占用硬盘容量的目录。因为/var存放经常变动性的文件,包括缓存(cache),日志文件(log file)以及某些软件运行所产生的文件,包括程序文件(lock file,run file)或MySQL数据库的文件等。
在这里插入图片描述

目录树(directory tree)

在linux下,所有的文件与目录是由根目录开始的,那是所有目录与文件的源头,然后一个一个分支下来,有点像树枝,因此称这种目录配置方式为目录树,目录树的特性

  • 目录树的启始点为根目录(/)
  • 每个目录不止能使用本地文件系统,还可以使用网络上的文件系统如NFS(Network FileSystem)
  • 每个文件在些目录树中的文件名都是独一无二的
绝对路径与相对路径
  • 绝对路径:由根目录(/)开始写起的文件名或目录名称,如/home/test1;
  • 相对路径:相对于当前目录的文件名写法,如./home/test1。
    .:代表当前目录,也可以使用./表示
    …:代表上一层目录,也可以使用…/表示
    LSB(Linux Standard Base)
查看文件状态
[root@localhost ~]# stat a
  File: ‘a’
  Size: 2         	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 25185186    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-12-29 09:37:27.896075089 -0500
Modify: 2020-12-29 09:37:25.287072905 -0500
Change: 2020-12-29 09:37:25.287072905 -0500
 Birth: -
文本处理
cut:

-d :指定字段分隔符,默认是空格
-f:指定要显示的字段
-f 1,3表示1和3列
-f 1-3 表示1到3列
join:

文本排序:

sort:默认ASCII顺序进行排序
-n按数值大小进行排序
-t --field-separator 指定字段分隔符
-k以哪个字段为关键字进行排序
-u(unique)排序后去重(相同行显示一次)
-f忽略字符大小写

[root@localhost tmp]# sort a.txt
113
12
23
45
67
#按数字大小顺序进行排序
[root@localhost tmp]# sort -n a.txt
12
23
45
67
113
#-r(reverse)反序显示
[root@localhost tmp]# sort -rn a.txt
113
67
45
23
12
#-t指定字段分隔符,-k以哪个字段为关键字进行排序
[root@localhost tmp]# sort -n -t : -k 3 /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
ntp:x:38:38::/etc/ntp:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
test1:x:1000:1000::/home/test1:/bin/bash
test2:x:1001:1000::/home/test2:/bin/bash
test3:x:1002:1000::/home/test3:/bin/bash
test4:x:1003:1003::/home/test4:/bin/bash
#-u排序后去重(相同行显示一次)
[root@localhost tmp]# sort -un a.txt
12
23
45
67
113

unique显示忽略重复的行
-d 只显示重复的行
-D 显示所有重复的行
-c 显示每一行重复的次数

[root@localhost tmp]# cat a.txt
23
12
45
67
113
113
[root@localhost tmp]# uniq a.txt
23
12
45
67
113
[root@localhost tmp]# uniq -d a.txt
113
[root@localhost tmp]# uniq -D a.txt
113
113
[root@localhost tmp]# uniq -c a.txt
      1 23
      1 12
      1 45
      1 67
      2 113

文本统计:
wc(word count)统计有多少行,多少个单词,多少个字节
-c:字节数
-m:字符数
-l:行数
-w:单词数
-L:最长的行的字符长度

[root@localhost tmp]# wc a.txt
 6  6 20 a.txt
[root@localhost tmp]# wc -m a.txt
20 a.txt
[root@localhost tmp]# wc -c a.txt
20 a.txt
[root@localhost tmp]# wc -L a.txt
3 a.txt

字符处理命令
tr()转换或删除字符
-d删除字符(逐个字符处理)

[root@localhost tmp]# tr 'ab' 'AB'
abc
ABc
abef
ABef
account
Account
begin
Begin
[root@localhost tmp]# tr 'a' 'A' < /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
#将所有小写转换为大写
[root@localhost tmp]# tr 'a-z' 'A-Z' < /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
#-d删除字符(逐个字符处理)
[root@localhost tmp]# tr -d 'root' < /etc/passwd
:x:0:0::/:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nlgin
daemn:x:2:2:daemn:/sbin:/sbin/nlgin
adm:x:3:4:adm:/va/adm:/sbin/nlgin
lp:x:4:7:lp:/va/spl/lpd:/sbin/nlgin
sync:x:5:0:sync:/sbin:/bin/sync
shudwn:x:6:0:shudwn:/sbin:/sbin/shudwn

创建临时文件

Linux系统有特殊的目录,专为临时文件使用。Linux使用/tmp目录来存放不需要永久保留的文件,系统中所有用户都可以读写/tmp目录中的文件,mktemp这个特殊的命令可以创建临时文件。

#【X】为大写
[root@localhost scripts]# mktemp testing.XXXXXX
testing.bKnhNh
#在当前目录下创建一个临时文件
[root@localhost scripts]# ll -t
total 136
-rw-------. 1 root root   0 Jan 27 18:02 testing.bKnhNh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值