chsh

chsh命令用来更换登录系统时使用的shell。若不指定任何参数与用户名称,则chsh会以应答的方式进行设置。

语法

chsh(选项)(参数)

选项

-s<shell 名称>或--shell<shell 名称>:更改系统预设的shell环境。;
-l或--list-shells:列出目前系统可用的shell清单;
-u或--help:在线帮助;
-v或-version:显示版本信息。

参数

用户名:要改变默认shell的用户。

实例

查看系统安装了哪些shell的两种方法:

第一种:

[rocrocket@localhost ~]$ chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh

第二种:

[rocrocket@localhost ~]$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh

其实chsh -l也是来查看这个文件。

查看当前正在使用的shell:

[rocrocket@localhost ~]$ echo $SHELL
/bin/bash

注意SHELL一定要是大写。可以看到,目前使用的shell是/bin/bash

把我的shell改成zsh:

[rocrocket@localhost ~]$ chsh -s /bin/zsh
Changing shell for rocrocket.
Password:
Shell changed.
[rocrocket@localhost ~]$

使用chsh加选项-s就可以修改登录的shell了!你会发现你现在执行echo $SHELL后仍然输出为/bin/bash,这是因为你需要重启你的shell才完全投入到zsh怀抱中去。chsh -s其实修改的就是/etc/passwd文件里和你的用户名相对应的那一行。现在来查看下:

[rocrocket@localhost ~]$ cat /etc/passwd|grep ^rocrocket
rocrocket:x:500:500:rocrocket,China:/rocrocket/PSB/home:/bin/zsh

你可以发现输出内容的最后部分已经变成了/bin/zsh了,下次重启的时候,linux就会读取这一命令来启动shell了!

把shell修改回/bin/bash:

[rocrocket@localhost ~]$ chsh -s /bin/bash
Changing shell for rocrocket.
Password:
Shell changed.

groupdel

groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

语法

groupdel(参数)

参数

组:要删除的工作组名。

实例

groupadd damon  //创建damon工作组
groupdel damon  //删除这个工作组

ctrlaltdel

ctrlaltdel命令用来设置组合键“Ctrl+Alt+Del”的功能。

语法

ctrlaltdel(参数)

参数

  • Hard:当按下组合键“Ctrl+Alt+Del”时,立即执行重新启动操作系统,而不是先调用sync系统调用和其他的关机标准操作。
  • Soft:当按下组合键“Ctrl+Alt+Del”时,首先向init进程发送SIGINT(interrupt)信号。由init进程处理关机操作。

grpck

grpck命令用于验证组文件的完整性,在验证之前,需要先锁定(lock)组文件/etc/group/etc/shadow

grpck命令检查数据是否正确存放,每条记录是否都包含足够的信息,是否有一个唯一的组名,是否包含正确的用户,是否正确设置了组的管理员等。grpck检查发现错误以后,在命令行提示用户是否删除错误的记录。如果用户没有明确回答删除记录,grpck终止运行。

语法

grpck(选项)

选项

-r:只读模式;
-s:排序组id

实例

对组账号和影子文件进行验证:

grpck   //必须以管理员身份运行
grpck /etc/group /etc/gshadow   //后面两句一样,如果没有输出信息,则表示没有错误。

测试错误的实例:

echo check_user:x: >> /etc/group    //添加一行错误的格式数据
cat /etc/group | grep check_user
check_user:x:  //这儿GID字段为空,是错误的。

grpck /etc/group
invalid group file entry
delete line 'check_user:x:'? y      //提示是否删除
grpck: the files have been updated  //这时已经删除了错误的行,提示文件已经更新。

cat /etc/group  | grep check_user   //没有查到,已经删除了。

mke2fs

mke2fs命令被用于创建磁盘分区上的“etc2/etc3”文件系统。

语法

mke2fs(选项)(参数)

选项

-b<区块大小>:指定区块大小,单位为字节;
-c;检查是否有损坏的区块;
-f<不连续区段大小>:指定不连续区段的大小,单位为字节;
-F:不管指定的设备为何,强制执行mke2fs;
-i<字节>:指定"字节/inode"的比例;
-N<inode数>:指定要建立的inode数目;
-l<文件>:从指定的文件中,读取文件西中损坏区块的信息;
-L<标签>:设置文件系统的标签名称;
-m<百分比值>:指定给管理员保留区块的比例,预设为5%;
-M:记录最后一次挂入的目录;
-q:执行时不显示任何信息;
-r:指定要建立的ext2文件系统版本;
-R=<区块数>:设置磁盘阵列参数;
-S:仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap;
-v:执行时显示详细信息;
-V:显示版本信息。

参数

  • 设备文件:指定要创建的文件系统的分区设备文件名;
  • 块数:指定要创建的文件系统的磁盘块数量。

实例

创建指定的ext2文件系统。

mke2fs -q /dev/hda1

fsck

fsck命令被用于检查并且试图修复文件系统中的错误。当文件系统发生错误四化,可用fsck指令尝试加以修复。

语法

fsck(选项)(参数)

选项

-a:自动修复文件系统,不询问任何问题;
-A:依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统;
-N:不执行指令,仅列出实际执行会进行的动作;
-P:当搭配"-A"参数使用时,则会同时检查所有的文件系统;
-r:采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式;
-R:当搭配"-A"参数使用时,则会略过/目录的文件系统不予检查;
-s:依序执行检查作业,而非同时执行;
-t<文件系统类型>:指定要检查的文件系统类型;
-T:执行fsck指令时,不显示标题信息;
-V:显示指令执行过程。

参数

文件系统:指定要查看信息的文件系统。

实例

linux的文件系统损坏会导致linux不正常关机,出错的时候如果系统告诉你是哪一块硬盘的分区有问题,比如是/dev/hda2,接着用如下的命令去对付它:

fsck -y /dev/hda2

结束后使用reboot命令重启系统这样就好了!

如果不知道时哪个地方出了问题,可以直接:

fsck

在随后的多个确认对话框中输入:y

结束后同样使用reboot命令重启系统这样就好了!

mount

mount命令用于加载文件系统到指定的加载点。此命令的最常用于挂载cdrom,使我们可以访问cdrom中的数据,因为你将光盘插入cdrom中,Linux并不会自动挂载,必须使用Linux mount命令来手动完成挂载。

语法

mount(选项)(参数)

选项

-V:显示程序版本;
-l:显示已加载的文件系统列表;
-h:显示帮助信息并退出;
-v:冗长模式,输出指令执行的详细信息;
-n:加载没有写入文件“/etc/mtab”中的文件系统;
-r:将文件系统加载为只读模式;
-a:加载文件“/etc/fstab”中描述的所有文件系统。

参数

  • 设备文件名:指定要加载的文件系统对应的设备名;
  • 加载点:指定加载点目录。

实例

mount -t auto /dev/cdrom /mnt/cdrom
mount: mount point /mnt/cdrom does not exist           /mnt/cdrom目录不存在,需要先创建。

cd /mnt
-bash: cd: /mnt: No such file or directory

mkdir -p /mnt/cdrom    创建/mnt/cdrom目录
ls
bin   dev  home    lib         media  mnt  proc  sbin     srv  tmp  var
boot  etc  initrd  lost+found  misc   opt  root  selinux  sys  usr

mount -t auto /dev/cdrom /mnt/cdrom     挂载cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only     挂载成功

ll /mnt/cdrom    查看cdrom里面内容
total 859
dr-xr-xr-x  4 root root   2048 Sep  4  2005 CentOS
-r--r--r--  2 root root   8859 Mar 19  2005 centosdocs-man.css
-r--r--r--  9 root root  18009 Mar  1  2005 GPL
dr-xr-xr-x  2 root root 241664 May  7 02:32 headers
dr-xr-xr-x  4 root root   2048 May  7 02:23 images
dr-xr-xr-x  2 root root   4096 May  7 02:23 isolinux
dr-xr-xr-x  2 root root  18432 May  2 18:50 NOTES
-r--r--r--  2 root root   5443 May  7 01:49 RELEASE-NOTES-en.html
dr-xr-xr-x  2 root root   2048 May  7 02:34 repodata
-r--r--r--  9 root root   1795 Mar  1  2005 rpm-GPG-KEY
-r--r--r--  2 root root   1795 Mar  1  2005 RPM-GPG-KEY-centos4
-r--r--r--  1 root root 571730 May  7 01:39 yumgroups.xml

grpunconv

grpunconv命令用来关闭群组的投影密码。它会把密码从gshadow文件内,回存到group文件里。

语法

grpunconv

实例

未关闭的情况

cat /etc/gshadow | grep cdy
cdy:123456::

关闭影子密码

cat /etc/gshadow
cat: /etc/gshadow: 没有那个文件或目录

查看密码已经复制到/etc/group中了。

cat /etc/group | grep cdy
cdy:123456:1000:

chpasswd

chpasswd命令是批量更新用户口令的工具,是把一个文件内容重新定向添加到/etc/shadow中。

语法

chpasswd(选项)

选项

-e:输入的密码是加密后的密文;
-h:显示帮助信息并退出;
-m:当被支持的密码未被加密时,使用MD5加密代替DES加密。

实例

先创建用户密码对应文件,格式为username:password,如abc:abc123,必须以这种格式来书写,并且不能有空行,保存成文本文件user.txt,然后执行chpasswd命令:

chpasswd < user.txt

以上是运用chpasswd命令来批量修改密码。是linux系统管理中的捷径。

dumpe2fs

dumpe2fs命令用于打印“ext2/ext3”文件系统的超级块和快组信息。

语法

dumpe2fs(选项)(参数)

选项

-b:打印文件系统中预留的块信息;
-ob<超级块>:指定检查文件系统时使用的超级块;
-OB<块大小>:检查文件系统时使用的指定的块大小;
-h:仅显示超级块信息;
-i:从指定的文件系统映像文件中读取文件系统信息;
-x:以16进制格式打印信息块成员。

参数

文件系统:指定要查看信息的文件系统。

实例

dumpe2fs /dev/hda1
dumpe2fs 1.39 (29-May-2006)
Filesystem volume name:   /
last mounted on:          <not available>
Filesystem UUID:          845ccd40-1f3b-4729-a63d-cb80f51b082a
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              5242880
Block count:              5241817
Reserved block count:     262090
free blocks:              4434157
Free inodes:              5170836
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1022
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         32768
Inode blocks per group:   1024
Filesystem created:       Sun Mar 24 02:09:14 2013
Last mount time:          Thu Aug  1 16:42:07 2013
Last write time:          Thu Aug  1 16:42:07 2013
Mount count:              10
Maximum mount count:      -1
Last checked:             Sun Mar 24 02:09:14 2013
Check interval:           0 (<none>)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal inode:            8
First orphan inode:       3735559
Default directory hash:   tea
Directory Hash Seed:      e3f7162e-1194-4161-805d-763db89dbc69
Journal backup:           inode blocks
Journal size:             128M

Group 0: (Blocks 0-32767)
  Primary superblock at 0, Group descriptors at 1-2
  Reserved GDT blocks at 3-1024
  Block bitmap at 1025 (+1025), Inode bitmap at 1026 (+1026)
  Inode table at 1027-2050 (+1027)
  0 free blocks, 32757 free inodes, 2 directories
  Free blocks:
  Free inodes: 12-32768

...