提供《Linux命令大全.chm》文件,下载地址为:
/Files/amazon/Linux命令大全.rar
shutdown指令:
shutdown命令用于终止操作系统、重开机或者向所有用户传送信息,具体路径为/sbin/shutdown,只有root权限才有权运行此命令。
shutdown [-t seconds] [-arkhncfF] minutes [警告信息]
-h shutdown后立即halt
-k 不shutdown,仅发送警告信息给所有用户
-r shutdown后重新开机
-n 非正常方式关机,用强迫的方式kill掉所有程序然后关机
-t sec 在警告信息和关机信号之间有sec秒的延迟
-f 关机并开机后,略过fsck工具的磁盘检查
-F 关机并开机后,强制fsck工具的磁盘检查
-c 取消shutdown指令,不需要使用minutes参数,但是可以有警告信息
注意:minutes参数是强制性的,可以用now表示立即关机。
linux文件属性:
-rwxrwx---
第一个属性代表文件是目录(d)、文件(-)、链接文件(l)、设备文件中供存储的接口设备(b)、设备文件中的串口设备如键盘鼠标(c)。
接下来的属性3个为一组,其中r代表可读、w代表可写、x代表可执行、-代表不具备某个属性。第一组为拥有者的权限,第二组为群组的权限,第三组为其他非本群组的用户的权限。
对于目录的权限要额外注意。如果对某目录的权限是rwx,那么可读可写可执行;如果权限是r-x,那么可读可进入,但无法写入;如果权限是r--,那么不可进入该目录。注意:目录与x的关系很重要,如果某用户对某目录没有x权限,自然也就无法执行ls、cd等指令,所以也就无法进入目录。如果某用户对某目录仅有r的权限,是不能进入该目录的。
linux下的文件是否可执行与后缀名无关,而是由x这个属性来决定的,后缀仅起到修饰的作用。文件名之前如果有一个".",说明该文件是隐藏文件,例如“.bashrc_history”,使用ls -al可以显示隐藏文档。
改变所在群组/bin/chgrp:
chgrp group file/dir
注意:改变的群组名必须在/etc/group中存在,否则会显示错误。
改变拥有者/bin/chown:
chown [-R] owner file/dir
chown [-R] owner:group file/dir
-R 循环地将该目录下的所有文件都改成owner与group的名称,而不仅仅是该目录
改变权限/bin/chmod:
chmod [-R] xyz file/dir
-R 循环地将该目录下的文件都改变,而不仅仅是该目录
xyz为三组rwx属性数值的相加,其中r为4,w为2,x为1,那么-wx就是3,rwx就是7。
chmod [-R] u=,o=,g= file/dir
其中:
u是user,g是group,o是others,a是所有三组。例如:chmod u=rwx,og=rx file,chmod u=rwx,g=rx,o=r file。
+是加入,-是除去。chmod a+w file/dir,chmod u-x file/dir。
chattr/lsattr:
待查。
------------------------------------------------------------------------------------------------
cd命令:
cd 相对路径/绝对路径登入linux系统后,root的工作路径会自动切换到root目录下,而用户会自动转到/home/user下。
/bin/pwd命令:
pwdpwd用于显示当前所在目录。
/bin/mkdir和/bin/rmdir命令:
mkdir [-p] 目录名称
-p 顺序创建目录和子目录,例如mkdir -p a/b/c,则顺序建立a、a/b和a/b/c。
mkdir建立新的目录,尤其注意:
当建立/home/amazon/test的目录时,必须确保前面的目录都存在。
rmdir 目录名称
-p 顺序删除目录和子目录,同上。
rmdir删除旧有的目录,目录需要层层删除,而且
被删除的目录中不能有其他的目录或文件,除非使用rm -rf 目录名称 这样的命令。
/bin/ls命令:
ls [-ailS]-a 列出所有文件(包括隐藏文档)
-i 打印inode的值
-l 详细列出,包括文件大小,属性数据等
-S 以文件大小排序
--color=never 不显示颜色
--color=always 总显示颜色
--color=auto 由系统自行判断
如果想使ls默认没有颜色,可以在/root/.bashrc或者根用户的.bashrc文件中加入下面的代码:
alias ls='ls --color=never'
/bin/cp命令:
cp [-drsu] 源文件 目标文件-r 可以进行目录的复制
-s 做成符号链接文件,与ln指令功能相同
-u 如果源文件较新,或者没有目标文件,才会进行复制动作,可用于备份操作
-d 如果是复制链接文件,若不加任何参数则默认情况下会将链接到的源文件复制到目的地;若加-d,则链接文件可原封不动地链接这个快捷方式到目的地,即保留软硬链接
注意:只有目标路径而缺少目标文件的话,只要源目录与目标目录不相同即可,复制后的目标文件与源文件同名。 /bin/rm命令:
rm [-irf] 文件名-i 提供用户确认(默认值)
-r 循环删除,直到没有东西为止
-f 强制删除
注意:-rf可以连续删除某目录下所有文件与目录,以及该目录本身。/bin/mv命令:
mv [-u] 源文件 目标文件
-u 为update的缩写,当源文件比目标文件还新时才会动作
示例:
mv file file.new //更改文件名
mv file1 file2 /tmp //最后一个/tmp才是目标文件目录,file1和file2是源文件
/bin/cat和/bin/tac命令:
cat [-n] 文件名
-n 显示时,连行号一起输出到屏幕上
tac 文件名tac刚好将cat反写过来,从最后一行到第一行反向显示在屏幕上。
/bin/more和/usr/bin/less命令:
more 文件名more命令可以一页一页地显示文件内容,而通常情况下用cat没法看清楚。more也可以用来配合管道使用,例如ls -al | more可以将显示的内容一页一页地列出。
less 文件名使用more时无法向前翻看,而使用less就可以使用pageup和pagedown向前向后翻看。
/usr/bin/head和/usr/bin/tail命令:
head [-n number] 文件名显示一个文件的前几行,若没有加上-n参数,默认显示前10行,若只想显示一行,可以输入head -n 1 filename。
tail [-n number] 文件名同上。
例子:要求输出某文件的第n行到第n+m行,可以使用head -n n+m file | tail -n m这样的指令。
/usr/bin/nl命令:
nl 文件名nl指令的用法和cat -n用法相似,即查看文件的同时也可以显示行号。
/usr/bin/od命令:
od 文件名od用于读取非ASCII文件,例如二进制文件,使用cat或者vi读取二进制文件是乱码。
--------------------------------------------------------------------------------------------
硬链接/符号链接:
hard link就是重新建立一个inode链接到文件放置的block块,并在查询时利用原来的inode与后来添加的inode均可指定到该文件放置的地点,读取两个indoe的结果都是存取同一个文件的内容。但是使用硬链接有两个最大限制:
1.不能跨文件系统,因为不同文件系统有不同的inode table;
2.不能链接目录,因为目录本身不是文件,仅仅消耗inode而没有block,而inode是链接到block块的。
symbolic link就是再建立一个独立文件,这个文件会让数据读取操作指向它链接的那个文件。其缺点在于,当源文件被删除,符号链接的文件就打不开了,屏幕显示“无法开启某文件”。
ln [-s] 源文件 目标文件
-s 提供符号链接,不加该参数为硬链接
假设a为文件,a.hard为硬链接文件,a.sym为符号链接文件,那么使用rm a之后,more a.hard依然正常显示文件内容,而more s.sym显示“不存在该目录或文件”。这是因为a.sym为符号链接文件,对其进行操作相当于对a指定的block内文件进行操作;而a.hard为硬链接文件,相当于a的另外一个别名,去掉a只是去掉了其中一个别名而已,但文件还在block中。
-----------------------------------------------------------------------------------------
/usr/bin/which、/usr/bin/whereis和/usr/bin/find等指令:
which commandwhich查看命令所在可执行文件的位置(仅仅是可执行文件),即通过PATH环境变量到该路径内寻找可执行文件。
whereis [-bmsu] command-b 只寻找二进制文件
-m 只寻找在说明文件manual路径下的文件
-s 只寻找source源文件
-u 只寻找非说明文档的文件
whereis将命令行所在文件的路径列出来。
find 路径 [参数]
find命令将某一路径下的文件列印出来。
-atime n 将n×24小时内被存取过的文件列出来
-ctime n 将n×24小时内被改变、新增的文件或目录列出来
-mtime n 将n×24小时内被修改过的文件列出来
-newer file 把比file还要新的文件列出来
-gid n 寻找群组ID为n的文件
-group name 寻找群组名称为name的文件
-uid n 寻找拥有者ID为n的文件
-user name 寻找用户名为name的文件
-name file 寻找文件名为file的文件
-type type 寻找文件属性为type的文件,包括b、c、d、p、l、s等。
locate dir/file使用locate查找数据比find快,因为locate是从已经建立的数据库/var/lib/slocate中查找数据,不用直接在硬盘中存取数据。
----------------------------------------------------------------------------------------------
查看硬盘或目录的容量指令/bin/df和/bin/du:
df [-ikm]查看硬盘的总容量、已用容量与inode等。
-i 使用inodes显示结果
-k 使用KBytes显示结果(默认)
-m 使用MBytes显示结果
du [-abckms] [目录名称] (省略表示当前所在目录)
统计某目录下的文件容量。
-a 列出所有的文件与目录,默认值是列出目录的值
-b 列出的值以bytes输出
-c 最后求总total
-k 列出的值以KB输出(默认)
-m 列出的值以MB输出
-s 只列出最后求总的值
---------------------------------------------------------------------------------------------
/bin/echo指令:
echo $variable显示当前variable变量。
/bin/env指令:
env显示系统的所有环境变量,某些重要的环境变量如下:
ENV=/home/amazon/.bashrc 用户自定义环境变量的配置文件,root用户的是/root/.bashrc
HISTSIZE=1000 当前指令记忆数量
HOME=/home/amazon 登入者的根目录
HOSTNAME=localhost.localdomain 主机的名字
HOSTTYPE=i386 主机硬件的等级状态(i386、i686)
LANGUAGE =C 默认语言的资料
LOGNAME=amazon 登入者的帐号
MAIL=/var/spool/mail/amazon 邮件文件
PATH=...... 指令路径
PWD=/home/amazon 当前所在路径
USERNAME=amazon 登入者的帐号
USER=amazon 用户帐号
/bin/set指令:
set显示当前的环境变量,也会显示自定义的变量。注意:自定义变量只能自己使用,而不会干扰到别人,除非修改了系统的配置文件。
变量设定规则:
var='......'1.变量与变量内容用=连结;
2.等号两边不能直接接空格符,如name = variable错误;
3.变量只能是英文字母与数字,数字不能开头;
4.
有空格符的情况下,使用双引号或者单引号括住变量,双引号的特殊字符可以保留变量特性,如"$PATH",单引号不可以;
5.\为转义字符,可以将特殊字符(Enter、$、\、空格符、'等)变成一般符号,而不需要双引号;
6.扩增变量需要用"$PATH":/home、"$PATH:/home"或者$PATH:/home这样的形式累加;
7.若该变量需要在其他子程序执行,以export使变量可以动作,如export PATH;(什么意思?)
8.系统预设变量用大写,自定义变量用小写;
9.
用unset variable取消变量。
别名alias指令:
alias name='.....'别名和变量的定义基本一致。
alias查询所有别名,包括系统默认别名和自定义别名。
unalias name取消别名。
-----------------------------------------------------------------------------------------
/usr/bin/compress指令:
compress [-d] filename-d 解压缩参数,也可以使用
uncompress filename指令
zcat filename.Z
zcat可以读取.Z压缩文件的内容。
注意:compress用来压缩与解压缩后缀名为.Z的文件。使用compress压缩后,如果没有给出其他参数,
原始文件会被后来的.Z文件取代,使用uncompress指令也是一样。
/usr/binbzip2和/usr/binbzcat指令:
bzip2 [-dz] filename -d 解压缩,可以使用
bunzip2 filename取代
-z 压缩(默认)
bzcat filename.bz2 //读取压缩文件内容,而不需要解压缩
注意:当文件后缀为.bz、.bz2、tbz、tbz2等时,可以使用bzip2进行解压。
原始文件会被压缩文件.bz2等取代。
/bin/gzip和/bin/zcat指令:
gzip [-d#] filename
-d 解压缩参数
-# 压缩等级,1最不好,9最好,默认为6
zcat filename.gz注意:zcat不仅可以读取.gz后缀的压缩文件,也可以同时读取compress的压缩文件(.Z)。
原始文件会被压缩文件.bz2等取代。/bin/tar指令:
tar [-zxcvfpP] tarfile file-z 同时具有gzip
-j 同时具有bzip
-x 解开一个压缩文件
-t 查看tarfile的文件
-c 建立一个压缩文件
-v 压缩过程中显示文件
-p 使用原文件的属性
-P 可以使用绝对路径
-f file 使用file文件名作为目标
-N 'yyyy/mm/dd' 比后面接的日期还要新的文件才会被打包进新建的文件中
--exclude FILE 在压缩过程中,不要将FILE打包
例子:
tar -cvf file.tar file //
可以打包目录,并且原文件/目录依然存在tar -zcvf file.tar.gz file
tar -xvf file.tar //不使用-zxvf,因为是.tar文件而不是.tar.gz文件,且
压缩文件依然存在
tar -zxvf file.tar.gztar -ztvf file.tar.gz //查看tar.gz里面的文件信息,而不需要解压缩
tar -tvf file.tar
tar -N '2002/06/25' -zcvf home.tar.gz /home //将/home目录中,比日期还要新的文件打包进入home.tar.gz中
tar -zcvf host.tar.gz /home --exclude /amazon --exclude /host //除amazon和host外,home目录打包
tar -cvf - /home | tar -xvf - //直接打包后解压缩,没有中间文件
-------------------------------------------------------------------------------------------
正则表达式/bin/grep:
grep "word" filename将某filename文件中含有word的那一行显示出来。
例子:
grep root /var/log/secure
grep "*[a-d]*" /var/log/secure
grep boot /etc/* //输出的是/etc下文件内容含有boot的所有行
grep \* /etc/*
grep "a\{5\}" file //必须要有双引号
符号:
^ 句首字符相符
$ 句尾字符相符
? 任何一个单一字符
* 任意几个字符,包括0个
\ 转义字符,使^、?、*等变为普通字符
[list] 列表中的字符,例如[123456789]
[range] 列表范围内的字符,例如[1-9]
\{n\} 与前一个相同字符连续n个
\{n,m\} 与前一个相同字符连续n到m个
------------------------------------------------------------------------------------------
如何增加用户:
1.如果用户所属群组不存在,先新增群组。(增加用户前,该群组必须存在)
2.新增用户帐号。
如何删除群组:
3.如果某群组中有用户,先删除用户。(删除群组前,该群组必须为空)
4.删除群组。
groupadd [-g GID] groupname-g GID 自行设定GID的大小,否则默认提供
groupdel groupname注意:在删除群组之前,必须将该群组下的用户删除。
useradd [-u UID] [-g GID] [-d HOME] [-mM] [-s shell] username-u 直接给出一个UID
-g 直接给出一个GID(此GID必须已存在)
-d 直接将其根目录指向已经存在的目录(系统不会再默认建立)
-M 不建立根目录
-s 定义其使用的shell
userdel [-r] username-r 将该帐号的[home directory]和[/var/spool/mail/username]一并删除,默认情况下是保留的
密码管理与设定:
root可以设定任何样式的密码,而且可以帮助user设定他们的密码,而user仅能修改自己的密码。
passwd [username]用户身份切换:
su 使用su可以进行身份切换,但是需要注意:
1.
环境依然属于当初登入的那个用户,例如以test的身份登入linux,再切换到root,但是个人的mail、PATH等环境变量都还是test的。
2.对于环境变量,最麻烦的当属PATH,为了避免一般用户使用root的管理指令,通常linux会将指令分类放在两个目录下,分别是/bin和/sbin,其中/sbin存放的大多是root用来管理系统的指令。所以,当从一般用户切换到root后,某些指令不可用,就是因为PATH中没有/sbin这个路径。
具体解决方法如下:
1.使用命令的完整路径。
2.将/sbin和/usr/sbin路径添加到普通用户的PATH路径中。
3.
使用su -命令切换,-是指同时切换用户的环境变量。
sudo [-u username/#uid] [command]-u 将分身变成username的身份
使用sudo可以不需要root的密码也能执行root身份的工作。具体情况略。
用户查询:
id [username]直接输入id查询当前帐号的UID、GID与所属群组,输入id username生成username的相关信息。不需要察看/etc/passwd和/etc/group。
finger [-s] [username]-s 完整列出
使用finger可以知道某用户的相关信息,基本都在/etc/passwd上,还包括/var/spool/mail这个邮件存放地点,所以还会显示是否有邮件信息。
groups直接输入groups就可以显示当前用户所属的群组。
手动添加用户:
大致步骤如下:
1.先建立需要的群组(vi /etc/group)
2.建立帐号的各个属性(vi /etc/passwd)
3.将passwd与shadow同步(pwconv)
4.建立该帐号的密码(passwd acount)
5.建立用户根目录(cp -r /etc/skel /home/account)
6.更改根目录属性(chown -R account.group /home/account)
删除帐号步骤:
1.删除/etc/passwd与/etc/shadow中的相关信息
2.转到/home下删除该帐号的根目录
3.转到/var/spool/mail下删除该帐号的邮件