首页 > 代码库 > Linux命令使用

Linux命令使用

1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可

[root@bogon ~]# who | cut -d ‘ ‘ -f 1 | sort -u

admin

root


2.取出当前系统上被用户当作其默认shell的最多的那个shell。

[root@bogon ~]# cat /etc/passwd | cut -d : -f 7 | uniq -c | sort -n | tail -1

25 /sbin/nologino


3.将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。

[root@bogon ~]#  cat /etc/passwd | sort -t : -k 3 -n | tail -10 | tr  "a-z" "A-Z"> /tmp/maxusers.txt

[root@bogon ~]# cat /tmp/maxusers.txt

ABRT:X:173:173::/ETC/ABRT:/SBIN/NOLOGIN

PULSE:X:497:495:PULSEAUDIO SYSTEM DAEMON:/VAR/RUN/PULSE:/SBIN/NOLOGIN

SASLAUTH:X:498:76:SASLAUTHD USER:/VAR/EMPTY/SASLAUTH:/SBIN/NOLOGIN

RTKIT:X:499:497:REALTIMEKIT:/PROC:/SBIN/NOLOGIN

ADMIN:X:500:500::/HOME/ADMIN:/BIN/BASH

USER1:X:501:502::/HOME/USER1:/BIN/BASH

USER2:X:502:503::/HOME/USER2:/BIN/BASH

CENTOS:X:503:504::/HOME/CENTOS:/BIN/BASH

ROOT123:X:504:505::/HOME/ROOT123:/BIN/BASH

NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN

  

4、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。

[root@bogon ~]# ifconfig | grep "\(inet add\)" | head -1 | cut -d : -f 2 | tr -d Bcast

192.168.10.103 


5、显示/var目录下一级子目录或文件的总个数。

[root@bogon ~]# tree -L 1 /var | wc -l

24


6、取出/etc/group文件中第三个字段数值最小的10个组的名字。

[root@bogon ~]# cat /etc/group | sort -t : -k 3 -n | head -10 | cut -d : -f 1

root

bin

daemon

sys

adm

tty

disk

lp

mem

kmem


7、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。

[root@bogon ~]# cat /etc/fstab /etc/issue > /tmp/etc.text

[root@bogon ~]# cat /tmp/etc.text


#

# /etc/fstab

# Created by anaconda on Fri Nov 25 05:32:50 2016

#

# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1

UUID=40cea874-31c8-404a-9463-32c09bad241c /boot                   ext4    defaults        1 2

/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

CentOS release 6.8 (Final)

Kernel \r on an \m


8、请总结描述用户和组管理类命令的使用方法并完成以下练习:

用户创建:useradd

-u:UID,定义在/etc/login.defs

-g:GID指定用户所属基本组,可为组名,也可以为GID

-c:用户的注释信息

-d:已指定的路径为家目录。

-s:指定用户默认的shell程序,可用列表在/etc/shells中

-G:为用户指明附加组。

-r:创建系统用户。


组创建:groupadd

-g:指明GID号


用户属性修改:usermod

-u:新的uid

-g:新的基本组

-G:新的附加组,原来的附加组将会覆盖,若要保留原有,则同时要使用-a选项。

-s:新的shell

-c:新的注释信息

-d:新的家目录,原有家目录中的文件不会同时移动至新的家目录,若要移动,则同时使用-m选项

-l:login name:新的名字

-L:lock指定用户

-U:unlock指定用户

-e:YYYY-MM-DD指明用户账号的过期日期

-f:设定非活动的期限


组属性修改:groupmod

-n:新的名字

-g:新的GID


用户添加密码:passwd(修改指定用户的密码,仅root用户权限)

passwd:修改自己的密码

-l:锁定指定用户

-u:解锁指定用户

-n:mindays:指定最短的使用期限

-x:maxdays:最大使用期限

-i:非活动期限

--stdin:从标准输入接收用户密码。

  echo "passwd" | passwd --stdin USERNAME


组密码:gpasswd

-a:将user添加至指定的组中

-d:删除用户user的以当前为组名的附加组

-A:设置管理权限的用户列表



删除用户:userdel

-r:删除用户的家目录


删除组:groupdel

groupdel GROUP


临时切换基本组:newgrp

如果用户本不属于此组,则需要密码


修改用户的属性:chage

-d LAST_DAY

-E, --expiredate EXPIRE_DATE

-I, --inactive INACTIVE

-m, --mindays MIN_DAYS

-M, --maxdays MAX_DAYS

-W, --warndays WARN_DAYS


查看用户的相关的ID信息:ID

-u:UID

-g:GID

-G:Group

-n:Name


切换用户或以其他用户身份执行:su

su UserName:非登录式切换

su - Username:登录式切换。会读取目标用户的配置文件,完全切换。

   note:root 至其他用户无需密码,非root用户切换时需要密码。

换个身份执行命令:su - Username -c `COMMAND`


修改一些具体的信息:chfn

修改新的shell:chsh

显示用户的详细信息:finger


(1)、创建组distro,其GID为2016;

[root@bogon ~]# groupadd distro -g 2016

[root@bogon ~]# cat /etc/group | tail -1

distro:x:2016:


(2)、创建用户mandriva, 其ID号为1005;基本组为distro;

[root@bogon ~]# useradd mandriva -u 1005 -g distro


(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;

[root@bogon ~]# useradd mageia -u 1100 -d /home/linux

[root@bogon ~]# cat /etc/passwd | tail -1

mageia:x:1100:1100::/home/linux:/bin/bash


(4)、给用户mageia添加密码,密码为mageedu;

[root@bogon ~]# passwd mageia

Changing password for user mageia.

New password: 

BAD PASSWORD: it is based on a dictionary word

BAD PASSWORD: is too simple

Retype new password: 

passwd: all authentication tokens updated successfully.


(5)、删除mandriva,但保留其家目录;

[root@bogon ~]# userdel mandriva 

[root@bogon ~]# ls /home/

admin  centos  linux  mandriva  root123  user1  user2


(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;


[root@bogon ~]# groupadd peguin

[root@bogon ~]# useradd slackware -u 2002 -g distro -G peguin

(7)、修改slackware的默认shell为/bin/tcsh;

[root@bogon ~]# usermod slackware -s /bin/tcsh

[root@bogon ~]# cat /etc/passwd | tail -1

slackware:x:2002:2016::/home/slackware:/bin/tcsh



(8)、为用户slackware新增附加组admins;

usermod  slackware -aG admins

[root@bogon ~]# id slackware

uid=2002(slackware) gid=2016(distro) groups=2016(distro),2018(admins)


(9)、为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天

[root@bogon ~]# passwd -n 3 -x 180 -w 3 slackware

[root@bogon ~]# cat /etc/shadow | tail -1

slackware:!!:17155:3:180:3:::


(10)、添加用户openstack,其ID号为3003, 基本组为clouds,附加组为peguin和nova;

[root@bogon ~]# useradd openstack -u 3003 -g clouds -G peguin,nova

[root@bogon ~]# id openstack

uid=3003(openstack) gid=2020(clouds) groups=2020(clouds),2017(peguin),2019(nova)


(11)、添加系统用户mysql,要求其shell为/sbin/nologin;

[root@bogon ~]# useradd mysql -s /sbin/nologin

[root@bogon ~]# cat /etc/passwd | tail -1

mysql:x:3004:3004::/home/mysql:/sbin/nologin



(12)、使用echo命令,非交互式为openstack添加密码。

[root@bogon ~]# echo "11qqwww" | passwd --stdin openstack 

Changing password for user openstack.

passwd: all authentication tokens updated successfully.


9、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。

[root@bogon ~]# cp -r /etc/skel /home/tuser1 && chmod -R go= /home/tuser1


10、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式

[root@bogon ~]# grep -i "^s" /proc/meminfo 

[root@bogon ~]# grep  "^[sS]" /proc/meminfo 

SwapCached:            0 kB

SwapTotal:       2064380 kB

SwapFree:        2064380 kB

Shmem:              3844 kB

Slab:             139288 kB

SReclaimable:      94680 kB

SUnreclaim:        44608 kB


11、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;

[root@bogon ~]# grep -v ".*\(/sbin/nologin\)$" /etc/passwd

root:x:0:0:root:/root:/bin/bash

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

admin:x:500:500::/home/admin:/bin/bash

user1:x:501:502::/home/user1:/bin/bash

user2:x:502:503::/home/user2:/bin/bash

centos:x:503:504::/home/centos:/bin/bash

root123:x:504:505::/home/root123:/bin/bash

mageia:x:1100:1100::/home/linux:/bin/bash

slackware:x:2002:2016::/home/slackware:/bin/tcsh

openstack:x:3003:2020::/home/openstack:/bin/bash


12、显示/etc/passwd文件中其默认shell为/bin/bash的用户;

[root@bogon ~]# grep  ".*\(/bin/bash\)$" /etc/passwd

root:x:0:0:root:/root:/bin/bash

admin:x:500:500::/home/admin:/bin/bash

user1:x:501:502::/home/user1:/bin/bash

user2:x:502:503::/home/user2:/bin/bash

centos:x:503:504::/home/centos:/bin/bash

root123:x:504:505::/home/root123:/bin/bash

mageia:x:1100:1100::/home/linux:/bin/bash

openstack:x:3003:2020::/home/openstack:/bin/bash



13、找出/etc/passwd文件中的一位数或两位数;

[root@bogon ~]# grep -o "\<[0-9]\{2,3\}\>" /etc/passwd

12

10

14

11

12

100

13

30

14

50

99

99



14、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;

[root@bogon ~]# grep "^#[[:space:]]\+[^[:space:]]" /etc/rc.d/rc.sysinit 

# /etc/rc.d/rc.sysinit - run once at boot time

# Taken in part from Miquel van Smoorenburg‘s bcheckrc.

# Check SELinux status

# Print a text banner.

# Only read this once.

# Initialize hardware

# Set default affinity



15、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;

[root@bogon ~]# netstat -tan | grep ".*LISTEN[[:space:]]\+$"

tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      

tcp        0      0 0.0.0.0:39476               0.0.0.0:*                   LISTEN      

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      

tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      

tcp        0      0 :::111                      :::*                        LISTEN      

tcp        0      0 :::53232                    :::*                        LISTEN


16、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

[root@bogon ~]# grep "^\([[:alnum:]]\+\).*\1$" /etc/passwd

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

nobody:x:99:99:Nobody:/:/sbin/nologin

ntp:x:38:38::/etc/ntp:/sbin/nologin

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

bash:x:3005:3005::/home/bash:/bin/bash

basher:x:3007:3007::/home/basher:/bin/bash

nologin:x:3008:3008::/home/nologin:/sbin/nologin



Linux命令使用