From http://student.csdn.net/space.php?uid=106923&do=blog&id=9998
在书店和网络中会有许多关于linux操作指令的书籍和页面,许多介绍的都很全面,我们要想系统的掌握这方面的知识,这些资料是很不错的选择。但是作为一个初学着,或者想要在较短的时间内就能简单的应用linux,这样做似乎会比较慢,其实我们大可不必储备很多操作知识才去进行应用,就像我们学习认字一样,当我们学的字还很少时,我们虽然写不成文章,但是我们可以组词、造句子、写便条、识别一些简单的标识。这也符合2/8法则说的那样,在这些指令中有80%是我们不常用到的,常用的只有20%,我们就可以把这80%的深入内容稍后学习,先学习那20%的常用内容,就可以进行应用。在应用中加强所学的知识,同时再慢慢学习剩下的那80%的内容,这样即实现了尽快上手又能在实践中加强所学的内容。
初学者要注意几个问题:linux指令的使用要涉及到权限问题,因为linux支持多用户模式这样会造成一定混乱,所以要设置用户的权限,一些管理命令只有root用户可以使用,例如:userad、userdel等。或者当我们想在非用户目录下实现一些有权限许可的操作时也会受到限制,例如:我们是一个普通用户先要在其它用户的私有文件夹下建立文件,虽然普通用户有mkdir指令的使用权限,但是在其它用户的私有目录下是不能使用的。其次linux还涉及参数的使用可以实现不同的功能。
下面就我的学习经验简单介绍一下一些linux的必备指令。我把所学的指令大体分为四个方面:系统管理、磁盘管理、文件管理、其它。
一.系统管理
通常的系统管理工作主要是:开关机管理、用户管理、进程管理以及一些信息查看
1.halt
权限 :系统管理者
格式 :halt -参数
功能 :若系统的 runlevel 为 0 或 6 ,则关机,否则以 shutdown 指令(加上 -h 参数) 来取代
参数:
-n : 在关机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) -f : 强迫关机, 不呼叫 shutdown 这个指令
-i : 在关机之前先把所有网络相关的装置先停止
-p : 当关机的时候,顺便做关闭电源(poweroff)的动作
示例:
halt -p 关机后关闭电源。
halt -d 关机但不留下纪录。
2.reboot
权限 :系统管理者
格式 :reboot –参数
功能 :若系统的 runlevel 为 0 或 6 ,则重新开机,否则以 shutdown 指令(加上 -r 参数)来取代
参数:
-n : 在重开机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) -f : 强迫重开机,不呼叫 shutdown 这个指令
-i : 在重开机之前先把所有网络相关的装置先停止
示例:
reboot 重开机。
reboot -w 做个重开机的模拟(只有纪录并不会真的重开机)。
3. shutdown
权限 : 系统管理者
格式 : shutdown [-t seconds] [-rkhncfF] time [message]
功能 : shutdown 可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。
参数 :
-t seconds : 设定在几秒钟之后进行关机程序
-k : 并不会真的关机,只是将警告讯息传送给所有只用者
-r : 关机后重新开机
-h : 关机后停机
-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机
-c : 取消目前已经进行中的关机动作
-f : 关机时,不做 fcsk 动作(检查 Linux 档系统)
-F : 关机时,强迫进行 fsck 动作
time : 设定关机的时间
message : 传送给所有使用者的警告讯息
4.adduser
权限 :系统管理员
格式 :adduser –参数 相应内容
功能 :新增使用者帐号或更新预设的使用者资料
参数 :
-c comment 新使用者位于密码档(通常是 /etc/passwd)的注解资料
-d home_dir 设定使用者的家目录为 home_dir ,预设值为预设的 home 后面加上使用者帐号 loginid
-e expire_date 设定此帐号的使用期限(格式为 YYYY-MM-DD),预设值为永久有效
-f inactive_time
adduser是增加使用者.
相对的,也有删除使用者的指令,userdel.
语法:userdel [login ID]
5.su
权限:所有使用者
格式:su –参数 相应的内容
说明:变更为其他使用者的身份,除 root 外,需要键入该使用者的密码
参数:
-f 或 --fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
-m -p 或 --preserve-environment 执行 su 时不改变环境变数
-c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
-s shell 或 --shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell
--help 显示说明文件
--version 显示版本资讯
- -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root
USER 欲变更的使用者帐号
ARG 传入新的 shell 参数
示例:
su -c ls root 变更帐号为 root 并在执行 ls 指令后退出变回原使用者。
su root -f 变更帐号为 root 并传入 -f 参数给新执行的 shell。
su - clsung 变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)。
6.ps
权限:所有使用者
格式:ps [options] [--help]
功能:显示瞬间行程 (process) 的动态
参数:ps 的参数也是非常多的, 在此仅列出几个常用的参数
-A 列出所有的行程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
示例:
ps
7.top
权限:所有使用者
格式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
功能:实时显示 process 的动态
参数:
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
n : 更新的次数,完成后将会退出 top
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
示例:
top -n 10
8.kill
权限:所有使用者
格式:
kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]
功能:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
参数:
-s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表著重跑, 砍掉, 结束; 详细的信号可以用 kill -l
-p : 印出 pid , 并不送出信号
-l (signal) : 列出所有可用的信号名称
示例:
kill -9 323(将 pid 为 323 的行程关闭(kill) )
kill -HUP 456(将 pid 为 456 的行程重启(restart) )
9.who
权限: 所有使用者都可使用
格式: who - [husfV] [user]
功能: 显示系统中有那些使用者正在上面,显示的资料包含了使用者 ID,使用的终端机,从那边连上来的,上线时间,呆滞时间,CPU 使用量,动作等等。
参数:
-h : 不要显示标题列
-u : 不要显示使用者的动作/工作
-s : 使用简短的格式来显示
-f : 不要显示使用者的上线位置
-V : 显示程序版本
二.磁盘管理
通常的磁盘管理工作主要是进入磁盘、查看磁盘内容、查看磁盘空间等。
1. cd
权限 :所有使用者
格式 :cd [dirName]
功能 :变换工作目录至 dirName。 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home directory (也就是刚 login 时所在的目录)。是linux中使用频率非常高的指令。
说明 :"~" 表示为根目录,"." 则是表示当前目录,".." 则表示前一级目录。
示例 :cd /usr/bin(跳到 /usr/bin/ )
cd ~ (跳到自己的 home directory )
2.ls
权限 :所有使用者
格式 :ls [-alrtAFR] [name...]
功能 :显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。
参数 :
-a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)
-l 除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出
-r 将档案以相反次序显示(原定依英文字母次序)
-t 将档案依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的档案名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有档案,则以下之档案亦皆依序列出
示例:
ls –l (显示当前目录下的详细资料)
ls –a (显示当前目录的文件,包括隐藏文件)
3.pwd
功能 :显示当前所在的工作目录的绝对路径。
格式 :pwd [--help][--version]
参 数:
--help 在线帮助。
--version 显示版本信息。
4.df
权限 :所有使用者>
格式 :df [选项]... [FILE]...
功能 :显示档案系统的状况,或是看所有档案系统的状况(预设值)
5.du
功能 :显示指定的目录或文件所占用的磁盘空间。
格式 :du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]
参数:
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或--dereference-args 显示指定符号连接的源文件大小。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-k或--kilobytes 以1024 bytes为单位。
-l或--count-links 重复计算硬件连接的文件。
-L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-m或--megabytes 以1MB为单位。
-s或--summarize 仅显示总计。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
--max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
--help 显示帮助。
--version 显示版本信息。
6. mkdir
权限:于目前目录有适当权限的所有使用者
格式:mkdir [-p] dirName
功能:建立名称为 dirName 之子目录。
参数:-p 确保目录名称存在,不存在的就建一个。
示例:
mkdir AAA (在工作目录下,建立一个名为 AAA 的子目录 )
7. mount
权限 : 系统管理者或/etc/fstab中允许的使用者
格式 :
mount [-hV]
mount -a [-fFnrsvw] [-t vfstype]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
功能 : 用于挂载包括文件、磁盘等。
参数 ;