Shell命令
了解shell
文件目录类命令
系统信息类命令
通信网络类命令
shell是linux的一个外壳,它包在linux内核的外面,为用户和内核之间的交互提供一个借口。
当用户下达指令给操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理后让内核做出相应的动作。
而系统的回应和输出的信息也由shell处理,然后显示在用户的屏幕上。
关机重启命令
poweroff 直接关
shutdown -h now 直接关机
shutdown -h 10 十分钟后关机
shutdown -h 20:25 定时关机
shutdown -r now 直接重启
reboot 直接重启
浏览目录命令 cd dir lsll
浏览文件命令 cat moreless
目录操作命令 mkdirrmdir
文件操作命令 touch rm cp mv lntar
gzip gunzip
whereis whatis
Alt+F1/F2/F3 用来切换多个shell命令窗口,可以同时执行多个命令
------------------
ls (list) 显示目录下的文件和目录列表
ls -a 和 dir都可以显示隐藏的文件和目录,隐藏的文件目录前带一个点,如:.gconf
如果要建立一个隐藏的文件和目录,加一个"."就可以。
ls -l 显示文件的详细信息,如建立时间等。
ls -l /etc 可以显示etc目录下文件的详细信息。
ll是ls -l的缩写
-l 查出来的每列含义:
文件/文件夹属性(其中首位代表是否是文件夹);
该文件/文件夹所含文件数;
文件所属用户;
文件所属用户所在组group;
文件字节数;
文件建立日期时间;
文件名;
-----------------
clear 清屏
pwd 显示当前所在目录
-----------------
cd (change directry)切换当前目录.例如:
cd pp 切换到当前目录下的pp子目录
cd .. 切换到上一层目录
cd / 切换到系统根目录
cd 切换到用户自家目录
cd /usr/bin 切换到/usr/bin目录
-----------------
[root@ycc ~]# 这中的"~"表示root目录,root目录的上层目录是根目录。
-----------------
mkdir (make directory)创建子目录。
格式:mkdir [参数] <目录名>
下面的范例会在所在目录内创建子目录:
mkdir dir 在当前目录下建立dir目录
mkdir -p dir1/dir2 在当前目录下创建dir1目录,并在dir1目录下创建dir2目录,也就是连续创建两个目录(dir1和dir1/dir2)。
rmdir (remove directory)删除"空"的子目录
格式:rmdir [参数] <目录名>
rmdir dir 删除"空"的子目录dir
rmdir -p dir1/dir2 删除dir1下的dir2目录,若dir1目录为空也删除它
man mkdir 可以看到mkdir命令所有的参数说明。
------------------
cp (copy) 将文件从一处复制到另一处。
一般在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,
需要指定源文件名与目标文件名或目录。
格式:cp [参数] <源文件路径><目标文件路径>
cp test1.txt test2.txt 将test1.txt复制成test2.txt
cp test3.txt /tmp 将test3.txt复制到/tmp目录中
-------------------
cat 用户显示文件的内容,也可以将数个文件合并成一个文件。
格式:cat[参数] <文件名>
cat test.txt 显示test.txt文件内容
cat test.txt | more 逐页显示test.txt文件中的内容
cat test.txt>> test1.txt 将test.txt的内容附加到test1.txt文件之后
cat test.txt test2.txt> readme.txt 将test.txt和text2.txt文件合并成readme.txt文件
-----------------
rm 删除文件或目录
格式:rm [参数] <目标文件路径>
rm myfiles 删除当前目录下名为myfiles的文件
rm * 删除当前目录下的所有文件
-f参数:强迫删除文件
rm -f *.txt 强迫删除所有以后缀名为txt的文件
rm -rf /tmp/test 删除/tmp/test目录下的所有文件和目录
-----------------
> 定向输出符号(会覆盖接收数据的文件中的内容)
>> 定向输出符号(将内容附加到接收数据的文件尾部)
< 定向输入符号
--------------
more 一般用于要显示的内容会超过一个画面长度的情况。
为了避免画面显示时瞬间就闪过,用户可以使用more命令,
让画面在显示满一页时暂停,此时可按空格键继续显示下一个画面,
或按Q键停止显示。
more /etc/named.conf 显示etc/named.conf文本文件的内容
当用ls命令查看文件列表,如果文件太多,则可配合more命令使用:
ls -al | more 分页显示当前目录下的所有文件(包括隐藏文件)的详细信息。
-----------------
less 与more命令类似,也可以用来浏览超过一页的文件。
所不同的是less命令除了可以按空格键向下显示文件外,还可以利用上下键来卷动文件。
当要结束浏览时,只要在less命令的提示如":"下按Q键即可。
less named.conf 显示named.conf的文本文件内容,可以滚动查看内容。
ls -al | less 以长格形式列出当前目录下所有的内容,用户可以按上下键浏览。
------------------
head 用于显示文件前几行的内容
格式:head [参数] <文件名>
head -10 /etc/passwd 显示/etc/passwd文件的前10行内容
tail 用于显示文件后几行的内容
格式:tail [参数] <文件名>
tail -10 /etc/passwd 显示/etc/passwd文件倒数10行内容
tail +10 /etc/passwd 显示/etc/passwd文件从第10行开始到末尾的内容
---------------
mv 移动或更改文件、目录名称。可以将文件及目录移到另一目录下,
或更改文件及目录的名称。
格式:mv [参数] <源文件或目录><目标文件或目录>
mv a.txt ../ 将a.txt文件移动到上层目录
mv a.txt b.txt 将a.txt改名为b.txt
mv dir2 ../ 将dir2目录上移一层
-----------
find 用来寻找文件或目录
格式:find[<路径>] <匹配条件>
find / -name httpd.conf 搜索根目录(/)下名字(-name)叫httpd.conf的文件
find /etc -namehttpd.conf 搜索/etc目录下名字叫httpd.conf的文件
------------
grep 在文件中搜索匹配的字符并进行输出
格式:grep [参数] <要找的字串><要寻找字串的源文件>
grep linux test.txt 搜索test.txt文件中字符串linux并输出
rpm -qa | grep httpd 搜索rpm包中含有httpd包的文件名
------------
touch 生成一个空文件和修改文件或目录的存取/修改的时间记录值。
格式:touch [参数] <文件名>
touch * 将当前目录下的文件时间修改为系统的当前时间。
touch -d 20040210test.txt 将test.txt文件的日期改为20040210
touch abc.xml 若abc.xml文件存在,则修改为系统的当前时间;
若不存在,则生成一个为为当前时间的空文件。
-------------
who 或 w 查看当前系统中有哪些用户登录
格式:who/w [参数]
who
假如显示:
root tty1 1个本地登录用户
pp pts/0 1个远程登录用户
----------
ln 在文件和目录之间建立链接
格式:ln [参数] <源文件和目录><目标文件或目录>
链接分"软链接"和"硬链接"
1、软链接:相当于一个快捷方式
ln -s /usr/share/doc doc 创建一个链接文件doc,并指向目录/usr/share/doc
2、硬链接:
ln /usr/share/test hard 创建一个硬链接文件hard,
这时对于test文件存储区域来说,又多了一个文件指向它;
对硬链接的任何文件进行修改,其他硬链接文件也都发生变化。
------------
RPM 软件包管理命令
RPM的全名是Red Hat PackageManager,它是有RedHat公司所开发的一个开放软件包管理系统。其优点:
易于安装、升级与删除软件包
有强大的查询功能
能够进行软件包验证
支持代码形式的软件包
----------------------
软件包的安装:
使用RPM命令的安装模式可以将软件包内所有的组件放到系统中的正确路径,安装软件包的命令是:
rpm -ivhwu-ftpd-2.6.2-8.i386.rpm
i:作用rpm的安装模式
v:校验文件信息
h:以#号显示安装进度
软件包的删除:
删除模式会将制定软件包的内容全部删除,但并不包括已更改过的配置文件,删除RPM软件包的命令如下:
rpm -e wu-ftpd
e:删除参数
wu-ftpd:软件包名称
注意:这里必须使用软件名"wu-ftpd"或"wu-ftpd-2.6.2-8"而不是使用当初安装时的软件包名"wu-ftpd-2.6.2-8.i386.rpm"。
软件包的升级
升级模式会安装用户所指定的更新版本,并删除已安装在系统中的相同软件包,升级软件包命令如下:
rpm -Uvhwu-ftpd-2.6.2-8.i386.rpm
软件包的更新
更新模式下,rpm命令会检查在命令行中所指定的软件包是否比系统中原有的软件包更新。如果情况属实,rpm命令会自动更新指定的软件包;
反之,若系统中并没有指定软件包的较旧版本,rpm命令并不会安装此软件包。
而在升级模式下,不管系统中是否有较旧的版本,rpm命令都会安装指定的软件包。
rpm -Fvhwu-ftpd-2.6.2-8.i386.rpm
软件包查询
若要获取RPM软件包的相关信息,可以使用查询模式。使用-q参数可查询一个已安装的软件包的内容。
rpm -q wu-ftpd-2.6.2-8 显示软件包的名称、版本及次版本
查询软件包所安装的文件:
安装某个软件包之后,常常困扰用户的是,不知道该软件包究竟安装到哪里,此时执行
rpm -qlpackage-name命令可得知
rpm -ql xv (l参数的意思是:显示文件列表)
----------
mount /dev/cdrom /mnt 把光驱(cdrom)中的内容挂载到根下的mnt目录中。
---------
tar 打包命令
tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。
一般Unix上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。
注意:tar不仅可以打包文件,也可以将硬盘数据备份。
常用参数:
-c:创建一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar文件
tar命令范例:
tar -cvf test.tar * 将所有文件打包成test.tar,扩展名.tar需自行加上。
tar -zcvf test.tar.gz * 将所有文件打包成test.tar,再用gzip命令压缩。
tar -tf test.tar 查看test.tar文件中包括了哪些文件
tar -xvf test.tar 将test.tar解开
tar -zxvf foo.tar.gz 解压缩
------------
gzip 和 gunzip
出了.zip文件的压缩格式外,在Linux系统下更常见的是.gz文件的压缩格式,
这种文件一般是由gzip命令所产生。zip命令具有将许多文件压缩成一个文件的功能,但gzip却不能,所以gzip一般会和tar一起使用。
目前,大部分或见到的压缩文件都是用tar将所有文件打包成一个文件,再用gzip进行压缩,所以我们所看到的扩展名.tar.gz或.tgz的文件,大多数都是这种类型的文件。
gzip test.xml 压缩文件时,不需要任何参数
gzip -l test.txt.gz 显示压缩率
gunzip test.txt.gz 解压缩
----------
date、cal、clock
date 显示/修改当前的日期时间(具体查文档)
cal 显示日历
clock 显示日期时间
cal 4 2004 显示2004年4月的日历
cal -y 2003 显示2003年的日历
-----------
系统信息类命令
dmesg 显示计算机开机信息,其中有:系统诊断信息、操作系统版本号、物理内存的大小及其他信息
df 用于查看文件系统的各个分区的占用情况
du 查看某个目录中各级子目录所使用的硬盘空间数
格式:du [参数] <目录名>
free 用于查看系统内存,虚拟内存(交互空间)的大小占用情况
top 显示、管理执行中的程序
history 查看历史输入的命令
last 列出目前与过去登入系统的用户相关信息。
-----------
系统各种日志放在 /var/log下
----------
第六章 Linux用户和用户组的管理
用户管理
组的管理
查看账户信息
Linux下的三类用户:
超级用户(root)具有操作系统的一切权限UID值均为0
普通用户具有操作系统有限的权限UID值500~6000
伪用户是为了方便系统管理,满足相应的系统进程文件属主的要求,伪用户不能登录,UID值1~499
口令文件
/etc/passwd
影子口令文件
/etc/shadow
注:只有root用户对以上文件具有修改权限
例如:passwd中
root:x:0:0:root:/root:/bin/bash
从左向右依次表示:
用户名:加密的口令:UID:GID:用户全名:家目录(用户登录系统后所进入的目录):用户环境(shell的类型)
shadow中
mail:*:15173:0:99999:7:::
从左向右依次表示:
用户名:加密的口令:从某一刻起到最后一次修改的间隔时间:最大时间间隔(口令最大有效天数):最小时间间隔(再次修改口令之间的最小天数):警告天数(从系统开始警告到口令正式失效的天数):不活动时间(口令过期几天后,该账号被禁用):失效时间(口令失效的绝对天数,从1970年1月1日开始计算):标志(未使用)
创建账户
格式:useradd[<选项>] <用户名>
useradd -g stuff -e 8/31/2005pp
useradd命令选项:
-u uid 指定新用户的uid,默认用当前最大UID加1。
-g group 指定新用户所在的组(私有组),该组必须存在。
-G group 指定新用户的附加组。
-d dir 指定新用户的自家目录。
-s shell 指定新用户使用的Shell,默认为bash。
-c comment 新用户的附加信息,如全名等。
-e expire 指定用户的登录失效时间(8/31/2005)。
-m 建立新用户的自家目录。
用户账户的维护
userdel pp 删除名叫pp的用户
useradd pp 创建pp账户
passwd pp 设置密码
禁用
usermod -L username禁用账户
passwd -l username 禁用密码
恢复
usermod -U username恢复禁用账户
passwd -u username 恢复禁用密码
删除
userdel -r username删除账户及宿主目录
-r:删除宿主目录
注意:在禁用和恢复账号功能上,命令usermod不等同于passwd。
将账号停用的意思是暂时不允许用户登录系统,而其数据仍要予以保留。
可以编辑/etc/passwd文件,把要停止使用的账号所在行标注就可以了:
#pp:x:502:502::/home/pp:/bin/bash
在账号前面加上"#"将该行注释掉便可停用该账号,或者更改/bin/bash为/sbin/nologin都可以。
su – username 可以临时切换到其他用户登录
---------------
组的管理
组分为
私有组(g)
当在创建一个新用户user时,若没有指定他所属于的组,RedHat就建立一个和该用户同名的私有组。
标准组(G)
标准组可以容纳多个用户,若使用标准组,在创建一个新用户时就应该指定他所属于的组。
组文件
/etc/group
组文件实例:
bin:x:1:root,bin,daemon
从左到右依次表示:
组名(用户登录时所在的组):组口令(一般不使用):GID(组标识号):组内用户列表(属于该组的所有用户名表)
创建、删除、修改组
groupadd -g 888 group2 创建一个组group2,其GID为888
groupdel group2 删除组group2
groupmod -n group22group2 修改group2组名为group22
id命令查看一个用户的UID和GID
格式:id [选项] 用户名
id pp 查看pp这个用户的UID、GID、groups
选项:
-g 只显示用户的组的GID
-G 只显示用户的附属组的GID
-u 只显示UID
联系客服