Linux基本命令试题

20.3.5
小白日记第二篇:一些基本的Linux命令。
如果有错误,请一定指出,我会实验修改,十分感谢。

题目:

(1)命令rmdir -p用来删除一串目录, 比如rmdir -p /tmp/test/1/2/3。如果/tmp/1/2/目录下除了3目录外还有个4目录,4目录里还有5目录,那么是否以成功删除?用命令rmdir -p删除一个不存在的目录时,是否会报错呢?

rmdir -p 不能成功删除非空目录,rmdir -p 删除一个不存在的目录时会报错,提示“没有那个文件或目录”
[root@test1 ~]# mkdir -p tmp/test/1/2/3/4/5
[root@test1 ~]# ll
total 4
-rw-------. 1 root root 1062 Mar  4 15:42 anaconda-ks.cfg
drwxr-xr-x. 3 root root   17 Mar  5 01:31 tmp
[root@test1 ~]# rmdir -p tmp/
rmdir: failed to remove ‘tmp/’: Directory not empty
[root@test1 ~]# cd tmp/test/1/2/
[root@test1 2]# ll
total 0
drwxr-xr-x. 3 root root 14 Mar  5 01:31 3
[root@test1 2]# rm -rf 3
[root@test1 2]# ll
total 0
[root@test1 2]# rmdir -p 3
rmdir: failed to remove ‘3’: No such file or directory

(2)删除一个目录或者文件时,在删除之前会先询问我们是否删除,如果直接回车,是否能删除呢?如果输人的不是y也不是n,会发生什么呢?

直接回车不会删除,如果输入的不是'y' 也 不是'n'也不会删除
[root@test1 1]# ls -R 2
2:
[root@test1 1]# rm -r 2
rm: remove directory ‘2’? 
[root@test1 1]# ls -R 2
2:
[root@test1 1]# rm -r 2
rm: remove directory ‘2’? a
[root@test1 1]# ls -R 2
2:
[root@test1 1]# 

(3)如何创建一串目录(如/home/1/2/3/4) ?

[root@test1 1]# mkdir -p /home/1/2/3/4
[root@test1 1]# ls -R /home/
/home/:
1

/home/1:
2

/home/1/2:
3

/home/1/2/3:
4

/home/1/2/3/4:

(4)使用mv命令时,如果目标文件不是目录,但该文件存在,会怎么样?

提示是否覆盖该文件
[root@test1 2]# cat a.txt 
fdjfslfsla
[root@test1 2]# cat c.txt 
12345dkisj
[root@test1 2]# mv a.txt c.txt 
mv: overwrite ‘c.txt’? y
[root@test1 2]# ll
total 4
-rw-r--r--. 1 root root 11 Mar  5 01:37 c.txt
[root@test1 2]# cat c.txt 
fdjfslfsla

(5)使用less命令查看文件/etc/passwd,搜索一下共出现了几个root?按哪个键可以向上向下逐行移动?

[root@test1 1]# less /etc/passwd |grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

K向上,J向下

(6)为什么目录必须要有x权限才可以查看目录下面的文件呢?

对于一个目录来讲,打开这个目录即为执行这个目录,所以任何一个目录必须要有x权限才能打开并查看该目录下的内容。

(7)如果设置umask为001,那么用户默认创建的目录和文件的权限是什么样子的?

创建的目录为766,文件为666

[root@test1 1]# umask 001
[root@test1 1]# touch test.txt
[root@test1 1]# mkdir test2
[root@test1 1]# ll
total 0
drwxrwxrw-. 2 root root 6 Mar  4 21:44 test2
-rw-rw-rw-. 1 root root 0 Mar  4 21:44 test.txt

(8)用find找出/var/目录下最近一天内变更的文件,再用find找出/root/目录下一小时内变更的文件。

f 普通文件 l 符号连接 d 目录 c 字符设备 b 块设备s 套接字
find . -type f 时间戳
UNIX/Linux文件系统每个文件都有三种时间戳:
访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间

[root@test1 1]# find /var/ -type f -mtime -1
………………
/var/.updated
[root@test1 1]# find /root/ -type f -mmin -60

(9)用find找出/etc/目录下一年内从未变更过的文件。

[root@test1 1]# find /etc/ -type f -mtime -365
/etc/
……
/etc/aliases.db

(10)为什么硬链接不能链接目录?硬链接的文件是否占用空间大小?硬链接文件是否可以跨分区创建?

不能,因为每个目录下面都会有一个"."".."也就是说每个目录下面的子目录肯定会有它本身和它上一级目录,
那么一旦设置了硬链接则会造成一种混乱,设置会导致死循环。硬链接的文件并不会占用空间大小,
它只是复制了该文件的一份inode信息,硬链接文件是不可以跨分区创建的。

(11) Linux系统里,分别用什么符号表示纯文本文件、二进制文件、目录、链接文件、块设备以及字符设备?

属性"-"的文件就是普通文件。它又可分成纯文本文件( ASCI)和二进制文件( binary)。
纯文本文件可以通过cat、more、less等工具直接查看内容,而二进制文件不能。
例如,我们用的命令/usr/bin/Is就是一个二进制文件。属性"d"是目录。"I"是链接文件。
属性b是块设备。属性c是字符设备。

(12)如何把dira目录以及该目录下的所有文件和目录修改为所有者为user1所属组为users?

[root@test1 test1]# useradd user1
[root@test1 test1]# ls -l dira
total 0
drwxrwxrw-. 3 root root 14 Mar  4 22:30 1
-rw-rw-rw-. 1 root root  0 Mar  4 22:30 1.txt
[root@test1 test1]# chown -R user1:users dira/
[root@test1 test1]# ls -l dira
total 0
drwxrwxrw-. 3 user1 users 14 Mar  4 22:30 1
-rw-rw-rw-. 1 user1 users  0 Mar  4 22:30 1.txt

(13) Linux系统中默认目录的权限是什么?文档的权限是什么?分别用三个数字表示。我们可以通过修改umask的值更改目录和文档的默认权限值,那么如何通过umask的值得到默认权限值呢?

目录:drwxr-xr-x. //755
文档:-rw-r--r-- //644
umask

(14)修改dirb目录的权限,使其所有者可读、可写且可执行,所属组可读且可执行,其他用户不可读、不可写也不可执行,使用什么命令呢?

[root@test1 test1]# ll
total 0
drwxrwxrw-. 4 user1 users 46 Mar  4 22:43 dira
[root@test1 test1]# chmod 750 dira
[root@test1 test1]# ll
total 0
drwxr-x---. 4 user1 users 46 Mar  4 22:43 dira
[root@test1 test1]# 

(15)如何使文件只能写且不能删除呢?如何使文件不能被删除、重命名、设定链接、写人且新增数据呢?

chattr [±=] [ASaci]
A:增加该属性后,表示文件或目录的atime将不可修改。
S:增加该属性后,会将数据同步写人磁盘中。
a:增加该属性后,表示只能追加不能删除,非root用户不能设定该属性。
c:增加该属性后,表示自动压缩该文件,读取时会自动解压。
i:增加该属性后,表示文件不能删除、重命名、设定链接、写人以及新增数据。

[root@test1 test1]# chattr +a dira/
[root@test1 test1]# rm -rf dira/
rm: cannot remove ‘dira/1’: Operation not permitted
rm: cannot remove ‘dira/1.txt’: Operation not permitted
rm: cannot remove ‘dira/2.txt’: Operation not permitted
rm: cannot remove ‘dira/2’: Operation not permitted
[root@test1 test1]# chattr +i dira/
[root@test1 test1]# rm -rf dira/
1/     1.txt  2/     2.txt  
[root@test1 test1]# rm -rf dira/1
rm: cannot remove ‘dira/1’: Permission denied

(16) Linux下的一个点“." 和两个点“. ." 分别表示什么?

"."指的是当下目录,".."指的是上一级目录。

(I7)cd -表示什么含义?

指的是前一次所在目录。

(18)用ls命令查看目录或者文件时,第2列的数值表示什么意思?如果一个目录的第2列的值为3,那么这个3是如何得到的呢?

查看某文件夹下文件的个数
[root@test1 ~]# ll
total 4
-rw-------. 1 root root 1062 Mar  4 15:42 anaconda-ks.cfg
drwxr-xr-x. 3 root root   14 Mar  4 16:00 tmp
[root@test1 ~]# ls -R tmp/
tmp/:
1

tmp/1:
test.txt
[root@test1 ~]# ls -al tmp/ |grep '^d'|wc -l
3

(19)如果系统中没有locate命令,我们需要安装哪个软件包?初次使用locate命令会报错can not open lvar/ib/mlocate/mnlocate.dbo: No such file or directory,我们需要如何做呢?

没有locate命令,需要安装mlocate包,yum install -y mlocate, 初次使用报错,
是因为对应的数据库文件还没有生成,手动生成的命令是:updatedb

Installed:
  mlocate.x86_64 0:0.26-8.el7                                                   
Complete!
[root@test1 1]# locate inittab
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
[root@test1 1]# updatedb
[root@test1 1]# locate inittab
/etc/inittab
[root@test1 1]# 

(20)当复制一个文件时,如果目标文件存在会询问我们是否覆盖,如何做就不再询问了呢?

使用cp的绝对路径
[root@test1 1]# cat a.txt 
dsdifja
[root@test1 1]# /bin/cp a.txt test.txt 
[root@test1 1]# cat test.txt 
dsdifja
[root@test1 1]# 

(21)假如一个文件内容一 直在增加,如何动态显示这个文件的内容呢?

-f 动态显示最后10行
tail -f [路径]

(22)更改文件读写执行权限的命令是什么?如何把一个目录下的所有文件(不含目录)的权限改为644?

xargs从标准输入(stdin)中读取数据进行处理
数据以空格进行分隔
可以根据参数进行一次或多次处理,默认的处理命令是/bin/echo
空行不进行处理,会被忽略
遇到命令状态为255时,xargs会立刻停止,譬如发生错误时.

更改文件权限命令:chmod

find [路径] -type f |xargs chmod 644
[root@test1 1]# ll
total 8
-rw-r--r--. 1 root root 8 Mar  5 00:14 a.txt
-rw-rw-rw-. 1 root root 8 Mar  5 00:14 test.txt
[root@test1 1]# find ./ -type f |xargs chmod 644 
[root@test1 1]# ll
total 8
-rw-r--r--. 1 root root 8 Mar  5 00:14 a.txt
-rw-r--r--. 1 root root 8 Mar  5 00:14 test.txt

(23)如何查看当前用户的目录?

命令:pwd

(24)假如一个目录可以让任何人可写,那么如何能做到该目录下的文件只允许文件的所有者更改?

t 保存程序的文本到交换设备上
chmod o+wt [路径]
测试过但不知道是否算成功。

(25)简述软链接和硬链接的区别。

软连接可以理解为,源文件的快捷方式,软连接文件记录的是源文件的路径,占用空间非常小。
当把源文件删除后,那么软连接文件也就变成一个坏文件了,不能使用了。硬链接和源文件的
inode信息是一模一样的,可以说硬链接文件只是复制了一份源文件的inode信息,在我们看
来硬链接文件和源文件没有什么区别,删除任何一个文件对方都不受影响,唯一的是少了一份
inode,硬链接只能在同一个分区下创建,而软连接不受限制。硬链接文件和源文件虽然看起
来像是两个文件,但是只占用一个文件的磁盘空间。

更详细的参考:https://blog.csdn.net/gao_zhennan/article/details/79127232

(26) cat a. txt会更改a.txt的什么时间?chmod 644 a. txt会更改a.txt的什么时间?Vim呢?直接touch呢?

修改前:
[root@test1 1]# stat a.txt 
  File: ‘a.txt’
  Size: 27              Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 67540228    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1001/   user1)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-03-05 01:12:12.768297774 +0800
Modify: 2020-03-05 00:41:27.066563427 +0800
Change: 2020-03-05 00:41:27.099563420 +0800
 Birth: -
[root@test1 1]# cat a.txt 
dkjidjfdsfdsfdjiwpofriewnf
[root@test1 1]# chmod 644 a.txt 
修改后:
[root@test1 1]# stat a.txt 
  File: ‘a.txt’
  Size: 27              Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 67540231    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1001/   user1)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-03-05 01:16:56.349165148 +0800
Modify: 2020-03-05 01:16:56.349165148 +0800
Change: 2020-03-05 01:16:56.371165137 +0800
 Birth: -
 
用touch 命令可以设置文件时间
参数:
-a参数只修改读取时间
-m参数只修改修改时间
-d 参数设定读取和修改时间(使用指定的时间)
[root@test1 1]# touch -am a.txt 
[root@test1 1]# stat a.txt 
  File: ‘a.txt’
  Size: 27              Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 67540231    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1001/   user1)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-03-05 01:23:05.807966448 +0800
Modify: 2020-03-05 01:23:05.807966448 +0800
Change: 2020-03-05 01:23:05.807966448 +0800
 Birth: -
 修改后变成了系统时间。

20.3.9
用户和用户组简单试题:
1. 查看配置文件/etc/shadow第一行中root账号的第三个字段(以’:'分隔)中的数字,请算一下这个数字是怎么来的?

第3个字段为上次更改密码的日期,这个数字以1970年1月1日和上次更改密码的日期为基准计算而来。例如,上次更改密码的日期为2012年1月1日,则这个值就是365*(2012-1970)+(2012-1970)/4+1=15341。如果是闰年,则有366天。

2. 写出一个您认为很强悍的密码.

[root@mling ~]# mkpasswd -l 15 -d 5 -s 4
94nz(u\(L0l|2B3

3. 查资料搞明白 /sbin/nologin 和 /bin/false 的区别,您知道他们分别用在什么场合吗?

都是不允许登录,nologin会礼貌的向用户显示一条信息,并拒绝用户登录,/bin/false什么也不做只是返回一个错误状态,然后立即退出。

区别:一些ftp服务器软件,对于本地非虚拟账户,只有用户有有效的shell才能使用ftp服务。这时候就可以使用nologin使用户即不能登录系统,还能使用一些系统服务,比如ftp服务。/bin/false则不行,这是二者的重要区别之一。

4. 当我们创建一个新的账号时,系统会修改哪几个文件呢?

三个分别是:/etc/passwd,/etc/shadow ,/etc/group,/etc/gshadow
用户密码文件 加密密码文件 用户组文件 用户组密码文件

5. 假如我们已经创建了一个普通用户user1, 默认这个用户的家目录为/home/user1, 做实验证明能否直接修改/etc/passwd配置文件中user1的家目录那个字段而改变user1的家目录呢? (提示: 您可以使用 “cd ~ ”命令来进入当前用户家目录的方法来验证)

[root@mling ~]# useradd user1
[root@mling ~]# su - user1
[user1@mling ~]$ cd ~
[user1@mling ~]$ pwd
/home/user1
[user1@mling ~]$ logout
[root@mling ~]# mkdir /userhome
[root@mling ~]# vi /etc/passwd
修改/home/user1为/userhome:
user1:x:1001:1001::/userhome:/bin/bash
[root@mling ~]# su - user1
Last login: Mon Mar  9 14:00:05 CST 2020 on pts/0
-bash-4.2$ cd ~
-bash-4.2$ pwd
/userhome
-bash-4.2$ logout
`
user1:x:1001:1001::/home/user1:/bin/bash

**6. /etc/passwd 文件以" :"为分隔符,第3、4个字段表示什么含义?如果把某一行的第三个字段改为'0' ,会发生什么?**

第三个和第四个字段分别表示用户id和组id,如果把某一行的第三个字段改为0,则该用户变成root用户。

**7.  先新增一个组group11,然后再新增一个账号user12, 使该账号所属组为刚刚新增的组。**

```powershell
[root@mling ~]# groupadd group11
[root@mling ~]# tail -n2 /etc/group
user1:x:1001:
group11:x:1002:
[root@mling ~]# useradd -g group11 user12
[root@mling ~]# id user12
uid=1002(user12) gid=1002(group11) groups=1002(group11)

8. 如果删除一个组时报错: “cannot remove the primary group of user ‘aming’” 这是什么意思?如何解决该问题呢?

被删除的组了仍是aming用户的所属组,要把组里的用户移出在删除组。

9. 如何在删除某个账户时一并删除账户的家目录删除?
userdel -r 用户名

[root@mling ~]# tail -n1 /etc/passwd
user12:x:1002:1002::/home/user12:/bin/bash
[root@mling ~]# ls /home/
test10  user1  user12
[root@mling ~]# userdel -r user12
[root@mling ~]# ls /home/
test10  user1

10. 如果您的Linux没有命令"mkpasswd", 需要安装哪个包?

需要安装expect包,使用命令 yum install -y expect 进行安装。

11. 普通账户可以修改自己的密码吗?

可以

[root@mling ~]# su - test10
Last login: Sun Mar  8 23:34:31 CST 2020 on pts/0
[test10@mling ~]$ mkpasswd -l 15 -d 2 -s 3
pm)9_&ghZh7Uwks
[test10@mling ~]$ passwd
Changing password for user test10.
Changing password for test10.
(current) UNIX password: 
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

12. 使用su时,后面加了 ‘-’ 表示什么含义?

切换用户的同时切换用户环境变量

13. sudo的作用是什么呢?

让普通用户可以临时拥有root用户权限,通常用来执行某些命令,不需要知道root密码,只需要知道自己的密码即可,提高安全性。

14. 创建系统账号时,帐户名要符合什么样的规范?

长度大于10个字符,密码中包含大小写字母、数字以及特殊字符,不规则(不要出现happy、love、111111等单词或数字),密码中不要带自己的名字、电话、生日、公司名字等。

15. Linux系统里,你知道最大uid能有多大吗?默认创建一个普通帐号的uid最小是多少?

普通用户的uid最大为65535,目前的 linux 核心 (2.6.x 版)已经可以最大支持到 4294967295 (2^32-1) 。默认普通账号的最小uid为500。

16. 一个用户可以同时属于多个用户组吗?如果可以,如何把一个用户加入到另外的组里? 同时加入多个组怎么做?
一个用户可以同时属于多个组;使用-G选项可以指定要加入的组;
usermod -G [组名,组名] 用户名

[root@mling ~]# usermod -G user1,group11 test10
[root@mling ~]# id test10
uid=1000(test10) gid=1000(test10) groups=1000(test10),1001(user1),1002(group11)

查资料时发现的同样的题:https://www.iyunv.com/thread-313441-1-1.html


实验完毕,有错误请指出,感谢。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Rocky Linux是一款基于RHEL(Red Hat Enterprise Linux)的开源Linux发行版。以下是一些常用的Rocky Linux基本命令: 1. 查看版本信息:`cat /etc/os-release` 2. 更新系统:`sudo yum update` 3. 安装软件包:`sudo yum install 软件包名称` 4. 卸载软件包:`sudo yum remove 软件包名称` 5. 查找软件包:`sudo yum search 软件包名称` 6. 清理缓存:`sudo yum clean all` 7. 查看已安装的软件包:`sudo yum list installed` 8. 启动或停止服务:`sudo systemctl start 服务名称` 或 `sudo systemctl stop 服务名称` 9. 开机自启动服务:`sudo systemctl enable 服务名称` 10. 取消开机自启动服务:`sudo systemctl disable 服务名称` 11. 查看系统资源使用情况:`top` 12. 查看磁盘使用情况:`df -h` 13. 查看内存使用情况:`free -m` 14. 查看进程列表:`ps aux | grep 关键词` 15. 杀死进程:`sudo kill 进程ID` 16. 查看网络连接:`netstat -tuln` 17. 查看防火墙状态:`sudo firewall-cmd --state` 18. 开启/关闭防火墙:`sudo systemctl start firewalld` 或 `sudo systemctl stop firewalld` 19. 添加用户:`sudo useradd 用户名` 20. 修改密码:`sudo passwd 用户名` 21. 切换用户:`su - 用户名` 22. 查看文件内容:`cat 文件路径` 23. 编辑文件:`nano 文件路径`(或其他文本编辑器,如vi、vim等) 24. 查看帮助信息:`man 命令名称`(例如:`man ls`) 这些命令只是Rocky Linux中常用命令的一部分,更多命令可以通过查阅官方文档或使用`man`命令查看。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值