Linux基础命令整理自留学习
1.用户和用户组管理
************************************************************************************************************************************添加新用户命令 useradd / adduser
参数:-u (UID,520)
-d (用户目录,/home/new_user)
-s (默认shell,/bin/bash)
-e (失效日期,17/1/2015)
-f (设定账号从过期到永久停用的天数,0表示到期立即失效,-1表示不会失效)
-g (默认的用户组或组ID, user / 100)
-M (不建立用户主目录)。
-G group[,,,] (设定用户为多个用户组,逗号隔开不夹杂空格)
/etc/passwd 存储用户相关信息:用户名,密码,主目录,主目录位置等。
/etc/shadow linux2.0以后密码转存到此处。
注:
可以对passwd或shadow中的用户密码前面加上!或者*,或者#注释整行来锁定用户,禁止用户登录。
也可以在/etc 目录下创建/etc/nologin来禁止所有普通用户的登陆,删除nologin文件,禁止取消。
************************************************************************************************************************************
************************************************************************************************************************************
修改用户账号信息命令 usermod
参数:-c (更新注释信息)
-d (更改用户目录)
-e (更改停用时间)
-f (账号时效到永久停用的天数)
-u (更改UID)
-g (更改用户组)
-l (变更登陆时名称)
-s (指定登陆时的shell)
-G group[,,,] (设定用户为多个用户组,逗号隔开不夹杂空格)
************************************************************************************************************************************
************************************************************************************************************************************
修改用户密码命令 passwd
参数:-k (密码过期重设密码采用)
-l (通过在用户密码字段前加!锁定用户)
-u (于-l相反,解除锁定,对密码为空的用户无法直接-u解锁,需要-fu强制解锁)
-u (更改UID)
-g (更改用户组)
-l (变更登陆时名称)
-s (指定登陆时的shell)
-d (快速删除用户的密码)
-n (设定最短的密码有效期)
-x (设定最长的密码有效期)
-w (设定密码过期前到账号停用的天数)
-i (设置密码过期到账号停用的天数)
-S (显示指定用户的当前密码状态)
--stdin (从标准输入重新读入密码)
-G group[,,,] (设定用户为多个用户组,逗号隔开不夹杂空格)
************************************************************************************************************************************
************************************************************************************************************************************
修改删除用户命令 userdel
参数:-r (删除主目录下的全部文档,不带-r参数只是删除用户在系统中的账户信息,用户主主目录及相关文件不删除)
注:
删除前可以检查是否和用户相关的进程在进行,ps -aux | grep "username",可以用crontab命令查看是否有该用户设定的定时任务,如有有则删除,crontab -u username -r
************************************************************************************************************************************
************************************************************************************************************************************
临时禁用用户
1. #注释掉/etc/passwd 或者/etc/shadow中的相关条目
2. 修改/etc/passwd 或者/etc/shadow 中密码记录前添加 * 或 !,禁用该用户
************************************************************************************************************************************
************************************************************************************************************************************
用户默认配置文件 /etc/login.defs
MAIL_DIR /var/spool/mail 用户的初始信箱建立在该目录下PASS_MAX_DAYS 9999 设置密码可以使用天数
PASS_MIN_DAYS 0 设置密码可以连续使用的天数,设置0表示一直使用
PASS_MIN_LEN 5设置密码的最小长度为5
PASS_WARN_AGE 7 设置密码失效前7天开始报警
UID_MIN 500 设置自动生成的UID的最小值500
UID_MAX 60000 设置自动生成的UID的最大值60000
GID_MIN 500 设置自动生成的GID的最小值500
GID_MAX 60000 设置自动生成的GID的最大值60000
CREATE_HOME yes 设定自动创建主目录
UMASK 077 设定新建文件或者目录的权限是077
USERGROUPS_ENAB yes 设定如果组内成员为空则自动删除该用户组
************************************************************************************************************************************
************************************************************************************************************************************
批量添加用户命令newusers
注:批量生成新用户
方法一:
#tial -l /etc/passwd
#tial -l /etc/shadow //查看用户名及密码信息
#!bin/bash
i = 1
//提取最大的用户ID号
awk 'BEGIN' { FS = ":" ; } { print $3 } ' /etc/passwd > uid_list
temp = ' tail -l uid_list '
while { $i -le 20 }
do
mkdir /home/student${i}
temp = $(($i + 1))
echo "student${i}:x:${temp}:100:student${i}:/home/student${i}:/bin/bash" >> /etc/passwd
echo "student${i}: :13707:0:099999:7:::" >> /etc/shadow
i = $(($i + 1))
done
方法二:
#vi /new_count //编辑内容
student1:x:501:100: :/home/student1:/bin/bash
student2:x:501:100: :/home/student2:/bin/bash
student3:x:501:100: :/home/student3:/bin/bash
#newusers < /new_count
#tail -20 /etc/passwd //查看是否记录有添加进去
#ls /home
同理,批量创建密码也可以如此
************************************************************************************************************************************
************************************************************************************************************************************
root用户切换和密码修改
#passwd root //修改密码$whoami //显示当前用户的用户名
$su //切换当前用户为root
$sudo -s //切换当前用户为root
************************************************************************************************************************************
************************************************************************************************************************************
root密码丢失的处理
方法一:
使用passwd命令重新设定root密码
a.系统启动时,按回车键进入系统选项菜单,光标选系统,按回车键进系统,
按“e”键可以编辑启动命令,按“a”修改内核的启动参数。按“c”键将直接进如GRUB命令行。
b.按“e”,对系统启动可用的命令选项进行编辑,按“b”启动该命令行,按“c”键进入GRUB命令行,
按“o”在选定行下面添加一个新行,按“O”键在选定行前面添加一个新行,按“d”键对指定的行进行删除,按“esc”返回。
c.在命令行编辑菜单中输入“single”,设定系统以单用户模式启动。返回上级菜单并按“b”启动系统。
d.重启后使用passwd命令重新设置root密码。
e.重启系统,用新设置的密码登录。
方法二:
直接删除root密码
1.用光盘引导系统,在启动菜单选择Linux Rescue模式。Linux Rescue模式会自动搜索存在的Linux文件系统,找到后自动
挂在到/mnt/sysimage目录下。
2.用vi命令打开/etc/passwd文件,按“x”键逐一删除root行中的密码字段的内容,并存盘退出。
3.重启。
************************************************************************************************************************************
************************************************************************************************************************************
添加新用户组groupadd
参数:-g 设置GID
-r 创建小于500的系统组。
-f 如果定义的组已经存在,则退出,如果指定了-g,会忽略这个值。
-o 允许指定不唯一的GID。
-K KEY=VALUE,重载/etc/login.defs的默认值。
注:
group的用户名和密码信息放在一下文件中
/etc/group
/etc/gshadow
************************************************************************************************************************************
************************************************************************************************************************************
修改用户组属性groupmod
参数:-g 为用户重新制定GID。
-n 更改用户组的名称。
注:
一个用户可以属于多个组,但用户登录系统后,默认只属于一个组,可用newgrp,
命令是:#Newgrp [-] [group]
************************************************************************************************************************************
************************************************************************************************************************************
删除组groupdel
#groupdel group
************************************************************************************************************************************
************************************************************************************************************************************
账号管理的常用命令
ID命令
#id root //用于显示用户当前的UID, GID和用户所属的组列表。
whoami命令
#whoami //用于显示当前用户的名称
groups命令
#groups //用于显示指定用户所属的用户组,未指定用户则显示当前用户的组
newgrp命令
#newgrp //显示当前用户所属的用户组
finger命令 //查找显示用户信息
#finger -l root
who命令 //显示当前登录用户的用户名,登陆终端,登录时间和登陆地址
#who
w命令 //显示当前登录的所有用户的信息。
#w
cnfin命令 //修改用户的基本信息。
#cnfin
write命令 //使用write命令把信息传给登陆的用户或者终端,不带任何选项会把命令发给所有登陆的用户
#write username
hello username
************************************************************************************************************************************
************************************************************************************************************************************
创建用户共享目录
1.使用groupadd命令创建一个公共组
#groupadd student
2.使用useradd命令创建student1,student2,student3用户
#useradd student1 -g student
#passwd student1
#useradd student2 -g student
#passwd student2
#useradd student3 -g student
#passwd student3
3.创建一个名为/home/student的新共享目录
#mkdir /home/student
#chmod 770 /home/student
4.在共享目录上配置SGID位,这将使得拥有这个目录的组中的所有用户都能够拥有所有权级的权限
#chmod g+s /home/student
5.使用chgrp命令为这个目录设置所有权
#chgrp student /home/student
************************************************************************************************************************************
Linux文件和目录管理
************************************************************************************************************************************Linux文件系统目录层次结构
/
|
||| ||| |||
/bin /dev /etc /home /lib /sbin /usr /tmp /root
|
||| ||| |
./xll ./adm ./bin ./lib ./local ./man ./src
|
|||
./src ./lib ./bin
************************************************************************************************************************************
************************************************************************************************************************************
Linux系统的默认安装目录
/Linux文件系统的最上层根目录,其他所有目录均是该目录的子目录
/bin存放用户的可执行程序,如cp和mv等,也放Shell,如bash,csh。不能放到一个单独的分区,否则Linux Rescue模式无法使用这些命令。
/boot存放系统启动时所需的文件,包括vmlinuz和initrd.img
/dev设备文件目录,如/dev/sda表示第一次块SCSI设备,/dev/hda表示第一块IDE设备
/etc系统配置和管理的文件,包括密码,守护程序及X-Window相关配置
/etc/X11X-Window System的配置目录
/home普通用户的主目录或FTP站点目录,一般存放在home目录下
/lib存放共享函数库
/mnt文件系统挂载点(Mount),如光盘挂载/mnt/cdrom,软盘挂载点/mnt/floppy,Zip驱动器/mnt/zip
/opt提供给较大的第三方应用程序使用,如Sun Staroffice,Corel WordPerfect
/proc保存目前系统内核与程序执行的相关信息,和ps命令看到的信息相同,如/proc/interrupts, /proc/cpuinfo
/root根用户的主目录
/sbinSystem Binary,存放系统启动时所需要执行的系统程序
/tmpTemporary,存放临时文件的目录
/usr存放用户使用的系统命令和应用程序
/usr/bin存放用户可执行程序,如OpenOffice
/usr/doc存放各种文档的目录
/usr/include存放c语言用到的头文件
/usr/include/X11存放X-Window程序使用的头文件
/usr/info存放GNU文档的目录
/usr/lib/X11X-Window的函数库
/usr/local提供自动安装的应用程序位置
/usr/man存放在线手册的目录
/usr/sbin存放用户经常使用的程序
/usr/src保存程序的源文件的目录,一般系统内核源码放在/usr/src/Linux目录
/usr/X11R6/bin存放X-Window的可执行程序
/varvariable,存放日志,邮件等经常变化的文件,由于var目录大小经常变动,建议单独装到一个分区
************************************************************************************************************************************
************************************************************************************************************************************
Linux文件系统的类型
/proc/filesystem文件中列出了当前可以用文件系统类型
/etc/fstab列出系统开机启动时自动加载的文件系统类型,安装点及可选参数
Linux所支持的文件系统有以下类型:
adfsacron磁盘文件系统,Risc OS使用的标准文件系统
BeFSBeOS使用的文件系统
CIFSComment Internet File System,是对SMB的改进和标准化,是一种虚拟文件系统
ExtExt文件系统的第一个版本
Ext2为Linux系统设计的,速度快,cpu占用率低,但不包含日志功能
Ext3Ext2的升级,包含日志系统
IS09660CD-ROM的标准文件系统
KAFSAFS客户端文件系统,用于分布式计算环境,可与Linux,Windows和Macintosh客户端共享文件
Minix最初UNIX的Minux版本
MSDOSMS-DOS文件系统,DOS,Windows和OS/2使用该系统
VFATMicrosoft扩展FAT文件系统
UMSDOS扩展MS-DOS文件系统
ProcProc是一个基于内存的伪文件系统,不占用外存,只是以文件的方式访问Linux内核数据提供接口
ReiserReiserfs日志文件系统
Swap用于交换(Swap)分区。交换分区是系统虚拟内存的一部分。
NFS网络文件系统,Network File System
HPFS该文件系统用于只读挂载OS/2HPFS文件系统
NCPFSNovell Netware文件系统,可以通过网络挂载
AFFSAmiga计算机使用的文件系统
UFSSun Microsystems操作系统
XFS一种高性能的日志文件系统
JFSJFS适合企业系统,为大文件和高性能环境设计的
Xiafs于Minux文件系统相比,这种xitong支持长文件名和更大的i节点
CoherentSystem V使用的文件系统类型
SMB支持SMB协议的网络文件系统,可以实现Linux与Windows系统的文件共享
************************************************************************************************************************************
************************************************************************************************************************************
创建Linux文件系统
Linux的分区方案:
1. 根分区,swap分区适用于磁盘空间有限
2. 根分区,/boot分区,swap分区较大磁盘空间的配置
3. 根分区,/boot分区,/var分区,swap分区单独分出/var避免日志文件大小失控
4. 根分区,/boot分区,/home分区,swap分区为多用户提供服务,控制用户占用空间
mkfs命令
#mkfs [ -t 文件系统类型 ] [选项] 文件系统
参数:
-t文件系统类型,如果没有指定默认为Ext2
-c建立文件系统之前检查设备是否有物理坏块
-lfilename,从文件中独处坏块列表
************************************************************************************************************************************
************************************************************************************************************************************
************************************************************************************************************************************