1. 通过su命令切换用户
su - root 从当前普通用户切换到root超级用户,需要输入密码
su - user 从root超级用户切换到其他普通用户,无需输入密码
如果是从一个普通用户到另一个普通用户,需要输入密码
2.1 useradd:添加用户账号; userdel:删除用户账号
useradd [选项] 用户名
useradd yul useradd添加用户账号,系统会新建”/home/yul”作为新用户工作目录,即:在“/home”目录下为对应账号建立一个名为同名的主目录,并且还为该用户单独建立一个与用户名同名的组;
useradd所建立的账号保存在“/etc/passwd”文本文件中,文件中每一行包含一个账号信息;
useradd必须用root权限;
adduser是useradd的符号链接
查看一下刚刚创建的用户yul的信息
输入命令:grep yul /etc/passwd /etc/shadow /etc/group
在/etc/passwd里面创建一行与账号相关的数据,包括创建UID/GID/主文件夹等
在/etc/shadow里面将此账号的密码相关参数填入
在/etc/group里面加入一个与账号名称一样的组名
userdel -r xsz 删除建立的账户xsz,连同home目录下的账户主目录也删除
2.2 passwd:更改对应用户账号密码。
passwd [选项] [用户名]
passwd yul 回车后,需要输入密码;
也可以用于普通用户修改账号密码
注意:没有设置密码的Linux用户可能是无法登陆的,所以useradd yul之后,一定要马上passwd yul
2.3 userdel -r yul 删除用户
3.1 ps:显示当前系统中由该用户运行的进程列表。
ps [选项]
ps -ef 查看所有进程及其PID进程号,系统时间,命令详细目录,执行者等。
ps -aux 显示-ef内容,还可显示CPU及内存占用率,进程状态
ps -w 显示加宽并且可以显示较多的信息,通常最多加宽三次ps –auxwww
ps –ef|grep ntp ps –ef的结果直接输入到grep ntp的程序中,使用管道;
管道即:把一个程序的输出直接连接到另一个程序的输入,而不经过任何中间文件
3.2kill:输出特定的信号给指定PID(进程号)的进程,并根据该信号而完成指定的行为。其中可能的信号有进程挂起、进程等待、进程终止等;
当选项是缺省时为输出终止信号给该进程。
kill [选项] 进程号(PID)
kill 7421 终止进程号为7421的进程
4 fdisk –l 查看硬件分区情况(文件系统分区情况);
必须拥有root权限;
IDE硬盘对应的设备名称分别为hda、hdb、hdc和hdd,SCSI硬盘对应的设备名称则为ssda、sdb、…此外,hda1代表hda的第一个硬盘分区,hda2代表hda的第二个分区,依此类推;
通过查看/var/log/messages文件,可以找到Linux系统已辨认出来的设备代号。
5 mount 磁盘挂载命令,挂载文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者;
挂载是指把分区和目录对应的过程,而挂载点是指挂载在文件树中的位置;
mount 命令就可以把文件系统挂载到相应的目录下,并且由于Linux中把设备都当作文件一样使用;
在Linux下“/mnt”目录是专门用于挂载不同的文件系统的,它可以在该目录下新建不同的子目录来挂载不同的设备文件系统。
mount [选项] [类型] 设备文件名 挂载点目录
例:Linux下使用U盘呢?
一般U盘为SCSI格式的硬盘,其格式为vfat格式,其设备号可通过“fdisk –l”进行查看,假若设备名为“/dev/sda1”,则可用如下命令就可将其挂载:
mount -t vfat /dev/sda1 /mnt/u (/mnt/u为手动建立的文件夹)
· 若想设置在开机时自动挂载,可在文件“/etc/fstab”中加入相应的设置行即可。
使用mount命令主要通过以下几个步骤。
① 确认是否为Linux可以识别的文件系统,Linux可识别的文件系统只要是以下几种。
· Windows95/98常用的FAT32文件系统:vfat。
· WinNT/2000的文件系统:ntfs。
· OS/2用的文件系统:hpfs。
· Linux用的文件系统:ext2、ext3、nfs。
· CD-ROM光盘用的文件系统:iso9660。
② 确定设备的名称,确定设备名称可通过使用命令“fdisk -l”查看。
③ 查找挂接点。
必须确定挂载点已经存在,也就是在“/mnt”下的相应子目录已经存在,一般建议在“/mnt”下新建几个如“/mnt/windows”,“/mnt/usb”的子目录,现在有些新版本的Linux(如红旗Linux、中软Linux、MandrakeLinux)都可自动挂载文件系统,Red Hat仅可自动挂载光驱。
④ 在使用完该设备文件后可使用命令umount将其卸载
6.1 cd 回主目录(缺省cd),为了改变到指定目录,用户必须拥有对指定目录的执行和读权限。
cd - 回到前次工作目录(cd加一杠,减号的那一杠)
cd .. 回上级目录
“./”代表当前目录,“../”代表上级目录。(本目录下创建目录很有用)
6.2 ls -l 查看当前目录下的所有文件,并通过选项“-l”显示出详细信息
显示格式说明如下:
文件类型与权限 链接数 文件属主 文件属组 文件大小 修改的时间 名字
ls -a 显示出所有“.”开头的文件
6.3 mkdir 创建一个目录,或者说文件夹
mkdir -p ./hello/my -p一次创建多级目录,若目录不存在,自动创建
mkdir -m 777 ./why -m创建相应权限的目录(777表示三个组的读写执行权限,读:4,写:2,执行:1)
该命令要求创建目录的用户在创建路径的上级目录中具有写权限,并且路径名不能是当前目录中已有的目录或文件名称。
6.4 cat 连接并显示指定的一个和多个文件的有关信息。
cat [选项] 文件1 文件2…
cat -n hello1.c hello2.c 打印hello1.c后紧接着打印hello2.c的所有内容;
并且从第一行开始输出所有行号;
cat -b hello1.c hello2.c 和-n类似,不过对于空白行不编号
6.5 cp 将给出的源文件复制为目标文件;
或将给出的多个源文件复制到目标目录中;
或将给出的目录复制到指定目录中。
cp [选项] 源文件或目录 目标文件或目录
cp -a ./my/why/ ./ 将/my/why目录下的所有文件复制到当前目录下,原目录文件不变
6.6 mv:为文件或目录改名或将文件由一个目录移入另一个目录中。
mv [选项] 源文件或目录 目标文件或目录
mv -I . /my/why/ ./ 将/my/why目录下的所有文件移至当前目录,原
目录下文件自动被删除
mv命令根据命令中第二个参数类型的不同(是目标文件还是目标目录)来判断是重命名还是移动文件:
①当第二个参数类型是文件时,mv命令完成文件重命名,此时,它将所给的源文件或目录重命名为给定的目标文件名,如:mv test.cpp test.c
· ②当第二个参数是已存在的目录名称时,mv命令将各参数指定的源文件均移至目标目录中;
③在跨文件系统移动文件时,mv先复制,再将原有文件删除,而链至该文件的链接也将丢失。
6.7 rm:删除一个目录中的一个或多个文件或目录。
rm [选项] 文件或目录
rm -r -I ./why -i参数表示系统会确认是否删除(即交互式删除)
-r参数表示rm将全部目录和子目录均递归地删除
rm -rf test2 命令会将 test2 子目录及子目录中所有档案删除,并且不用
一一确认
注意:如果没有使用- r 选项,则rm不会删除目录;
7.1 chown:修改文件所有者和组别。
chown [选项]... 文件所有者 [所有者组名] 文件
-------其中的文件所有者为修改后的文件所有者。
chown root uClinux-dist.tar
命令的作用:将ls -l 显示出来的一下文件属主(加粗选项)改变名称
文件类型与权限 链接数 文件属主 文件属组 文件大小 修改的时间 名字
7.2 chgrp:改变文件的组所有权。
chgrp [选项]... 文件所有组 文件
--------其中的文件所有组为改变后的文件组拥有者。
chgrp root uClinux-dist.tar
命令的作用:将ls -l 显示出来的一下文件属组(加粗选项)改变名称
文件类型与权限 链接数 文件属主 文件属组 文件大小 修改的时间 名字
说明:使用chown和chgrp必须拥有root权限。
8.自动补全:输入文件前几个字母+<Tab>键的方式
9 .chmod 改变文件的访问权限;
可使用符号标记进行更改和八进制数指定更改两种方式,因此它的格式也有两种不同的形式;
① 符号标记:chmod [选项]… 符号权限 [符号权限]… 文件
其中的符号权限可以指定为多个,也就是说,可以指定多个用户级别的权限,但它们中间要用逗号分开表示,若没有显示指出则表示不作更改。
② 八进制数: chmod [选项] … 八进制权限 文件…
其中的八进制权限是指要更改后的文件权限。
说明:文件的访问权限可表示成:- rwx rwx rwx。在此设有三种不同的访问权限:读(r)、写(w)和运行(x)。三个不同的用户级别:文件拥有者(u)、所属的用户组(g)和系统里的其他用户(o)。在此,可增加一个用户级别a(all)来表示所有这三个不同的用户级别。
① 对于第一种符号连接方式的chmod命令中,用加号“+”代表增加权限,用减号“−”删除权限,等于号“=”设置权限。
chmod a+rx,u+w uclinux.tgz 所有三个不同用户级别全部增加r和x权限,
文件拥有者(u)增加w权限
chmod u=rwx,g=rw,o=rx uclinux.tgz 文件拥有者(u)增加rwx,所属的用户组(g)增加rw,系统里的其他用户(o)增加rx
② 对于第二种八进制数指定的方式,将文件权限字符代表的有效位设为“1”,即“rw-”、“rw-”和“r--”的八进制表示为“110”、“110”、“100”,把这个2进制串转换成对应的8进制数就是6、6、4,也就是说该文件的权限为664(三位八进制数)。
10. grep 在指定文件中搜索特定的内容,并将含有这些内容的行标准输出
grep [选项] 格式 [文件及路径]
--------其中的格式是指要搜索的内容格式,若缺省“文件及路径”则默认表示在当前目录下搜索。
grep “hello” /-r “hello”是要搜索的内容,“/ -r”是指定文件,表示搜索根目录下的所有文件。
在缺省情况下,“grep”只搜索当前目录。如果此目录下有许多子目录,“grep”会以如下形式列出:“grep:sound:Is a directory”这会使“grep”的输出难于阅读。但有两种解决的方法:
①明确要求搜索子目录:grep –r(正如上例中所示);
②忽略子目录:grep -d skip。
当预料到有许多输出,可以通过管道将其转到“less”(分页器)上阅读:
如grep "h" ./-r | less分页阅读。
grep特殊用法:
grep pattern1|pattern2 files:显示匹配pattern1或pattern2的行;
grep pattern1 files|grep pattern2:显示既匹配pattern1又匹配pattern2的行;
正则表达式
在文件命令中经常会使用pattern正则表达式,它是可以描述一类字符串的模式(Pattern),如果一个字符串可以用某个正则表达式来描述,就称这个字符和该正则表达式匹配。这和DOS中用户可以使用通配符“*”代表任意字符类似。
在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作等。正则表达式的主要参数有:
· \:忽略正则表达式中特殊字符的原有含义;
· ^:匹配正则表达式的开始行;
· $:匹配正则表达式的结束行;
· <:从匹配正则表达式的行开始;
· >:到匹配正则表达式的行结束;
· [ ]:单个字符,如[A]即A符合要求;
· [-]:范围,如[A-Z],即A、B、C一直到Z都符合要求;
· 。:所有的单个字符;
· *:所有字符,长度可以为0。
11. Linux系统的压缩和解压缩,打包和解包命令
11.1 gzip hello.c 将文件hello.c压缩为hello.gz,删除源文件hello.c
gzip -c hello.c 将hellow.c压缩为hello.gz,不删除源文件(显示压缩信息)
(我的Linux版本可能有问题,-c选项指令始终无法生效
还显示一堆乱码)
gzip -v hello.c 显示压缩前后的文件名和压缩比(-l是文件大小,区分)
gzip -t hello.c 验证压缩文件的完整性。如果文件完整则不显示任何信息
gzip -f hello.c 压缩/解压缩时强制覆盖已存在的文件
gzip -r test 递归压缩/解压缩test文件夹中的所有文件(如果文件夹里面还有文件夹,也要把最底层文件夹里面的问价压缩)
gzip -d hello.gz 解压缩文件hello.gz
= gunzip hello.gz
gzip -l hello.gz 对已压缩文件,仅显示压缩前后文件大小,以及压缩比,压
缩前文件名,不解压(我的Linux版本依然无法生效)
11.2 gunzip hello.gz 解压缩文件
gunzip -l hello.gz 仅显示压缩前后文件大小,以及压缩比,不解压
gunzip -c hello.gz 仅显示压缩文件内容,不解压
=zcat hello.gz
11.3 zcat hello.gz 仅显示压缩文件的内容,不解压
综合上面所述,总结为:
压缩文件用:gzip -cv xxx -r用于文件夹所有文件 -f用于覆盖源文件
解压文件用:gunzip -dtlv xxx.gz -l用于查看文件大小及压缩比
-v用于查看文件名以及压缩比
-c用于查看内容
查看:zcat hello.gz
注意:gzip gunzip zcat都只能压缩单个文件,加-r也还是对单个单个文件
12.1 打包
-c :建立一个压缩档案的参数指令(create的意思);
-r :向打包文件中追加文件
-x :解开一个压缩档案的参数指令!
-f :对普通文件操作,使用档名,请留意,在 f之后要立即接档名喔!不要再加参数
并且文档名是自己取的。(常用)
-t :查看 tarfile里面的档案!
-v : 处理过程中输出相关信息
-o : 打印文件到标准输出
-z :调用gzip来压缩打包文件,与-x连用调用gzip完成解压缩
特别注意,在参数的下达中, c/x/t仅能存在一个!不可同时存在!
打包文件:
tar -cvf xxx.tar ./ 将当前文件夹内的文件全部打包
查看包内容:
tar -tf xxx.tar 列出xxx.tar包中的所有内容
解包:
tar -xvf xxx.tar 从xxx.tar中解包所有文件,覆盖已有同名文件
打包并且压缩文件:
tar -cvzf xxx.tar.gz ./ 将当前文件夹内的文件全部打包成xxx.tar,再将其压缩
解压,并解包
tar -xvzf xxx.tar.gz 将xxx.tar.gz内容解压为xxx.tar,再将其解包到当前文件夹