找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
Linux 是一种自由和开放源码的类 UNIX 操作系统。
Linux 英文解释为 Linux is not Unix
Linux 是在 1991 由林纳斯·托瓦兹在赫尔辛基大学上学时创立的,主要受到 Minix 和 Unix 思想的启发。
我感觉Linux 其实很容易学,相信能很快学会。
老师上课教的第一个指令是ifconfig,但其实我认为第一个该教的指令应该是halt,哈哈
如何开机和关机是非常重要的,所以我打算先从关机命令halt总结起。
首先它的语法是halt [-n] [-w] [-d] [-f] [-i] [-p],这个里面每个参数的含义为:
  • -n : 在关机前不做将记忆体资料写回硬盘的动作
  • -w : 并不会真的关机,只是把记录写到 /var/log/wtmp 文件里
  • -d : 不把记录写到 /var/log/wtmp 文件里(-n 这个参数包含了 -d)
  • -f : 强迫关机,不呼叫 shutdown 这个指令
  • -i : 在关机之前先把所有网络相关的装置先停止
  • -p : 当关机的时候,顺便做关闭电源(poweroff)的动作
例如,# halt它的就是关闭系统;# halt -p就是关闭系统并关闭电源
ifconfig,这个命令用于显示或设置网络设备。
语法为:ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP

目前我们只用它查询IP地址,所以就不深入讨论了。


su:(英文全拼:swith user)命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。使用权限:所有使用者。
语法:su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
由于目前我们只用它来切换用户,所以只介绍USER
  • USER 欲变更的使用者帐号
下面介绍实例:
切换用户:
  1. hnlinux@runoob.com:~$ whoami //显示当前用户
  2. hnlinux
  3. hnlinux@runoob.com:~$ pwd //显示当前目录
  4. /home/hnlinux
  5. hnlinux@runoob.com:~$ su root //切换到root用户
  6. 密码:
  7. root@runoob.com:/home/hnlinux# whoami
  8. root
  9. root@runoob.com:/home/hnlinux# pwd
  10. /home/hnlinux
复制代码


在知道IP地址后,我们就可以使用Xshell进行连接了。同时可以使用ping查看是否连接。
ping:这个命令用于检测主机。
语法:ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
下面展示操作实例:
  1. # ping www.w3cschool.cc //ping主机
  2. PING aries.m.alikunlun.com (114.80.174.110) 56(84) bytes of data.
  3. 64 bytes from 114.80.174.110: icmp_seq=1 ttl=64 time=0.025 ms
  4. 64 bytes from 114.80.174.110: icmp_seq=2 ttl=64 time=0.036 ms
  5. 64 bytes from 114.80.174.110: icmp_seq=3 ttl=64 time=0.034 ms
  6. 64 bytes from 114.80.174.110: icmp_seq=4 ttl=64 time=0.034 ms
  7. 64 bytes from 114.80.174.110: icmp_seq=5 ttl=64 time=0.028 ms
  8. 64 bytes from 114.80.174.110: icmp_seq=6 ttl=64 time=0.028 ms
  9. 64 bytes from 114.80.174.110: icmp_seq=7 ttl=64 time=0.034 ms
  10. 64 bytes from 114.80.174.110: icmp_seq=8 ttl=64 time=0.034 ms
  11. 64 bytes from 114.80.174.110: icmp_seq=9 ttl=64 time=0.036 ms
  12. 64 bytes from 114.80.174.110: icmp_seq=10 ttl=64 time=0.041 ms

  13. --- aries.m.alikunlun.com ping statistics ---
  14. 10 packets transmitted, 30 received, 0% packet loss, time 29246ms
  15. rtt min/avg/max/mdev = 0.021/0.035/0.078/0.011 ms

  16. //需要手动终止Ctrl+C
复制代码
ls:(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
语法:ls [-alrtAFR] [name...]
参数:
  • -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
  • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  • -r 将文件以相反次序显示(原定依英文字母次序)
  • -t 将文件依建立时间之先后次序列出
  • -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
  • -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
  • -R 若目录下有文件,则以下之文件亦皆依序列出
例如我列出根目录(\)下的所有目录:
  1. # ls /
  2. bin               dev   lib         media  net   root     srv  upload  www
  3. boot              etc   lib64       misc   opt   sbin     sys  usr
  4. home  lost+found  mnt    proc  selinux  tmp  var
复制代码


cd:(英文全拼:change directory)命令用于切换当前工作目录。
其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。
另外,~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, .. 则表示目前目录位置的上一层目录。

语法很简单,就是:
cd [dirName
例如我要跳到 /usr/bin/ :
  1. cd /usr/bin
复制代码
很简单。

mkdir:(英文全拼:make directory)命令用于创建目录。
语法:
mkdir [-p dirName
  • -p 确保目录名称存在,不存在的就建一个。

例如我在工作目录下,建立一个名为 runoob 的子目录 :
  1. mkdir runoob
复制代码
touch:命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
语法:touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
参数说明:
  • a 改变档案的读取时间记录。
  • m 改变档案的修改时间记录。
  • c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
  • f 不使用,是为了与其他 unix 系统的相容性而保留。
  • r 使用参考档的时间记录,与 --file 的效果一样。
  • d 设定时间与日期,可以使用各种不同的格式。
  • t 设定档案的时间记录,格式与 date 指令相同。
  • --no-create 不会建立新档案。
  • --help 列出指令格式。
  • --version 列出版本讯息。

使用指令"touch"时,如果指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件"file",输入如下命令:
  1. $ touch file            #创建一个名为“file”的新的空白文件
复制代码
rm:(英文全拼:remove)命令用于删除一个文件或者目录。
语法:rm [options] name...
参数说明:
  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  • -r 将目录及以下之档案亦逐一删除。

使用实例:删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:
  1. # rm  test.txt
  2. rm:是否删除 一般文件 "test.txt"? y  
  3. # rm  homework  
  4. rm: 无法删除目录"homework": 是一个目录  
  5. # rm  -r  homework  
  6. rm:是否删除 目录 "homework"? y
复制代码
cp:(英文全拼:copy file)命令主要用于复制文件或目录。
语法:
cp [options source dest
或者
cp [options source... directory
参数说明:
  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件。

例如我使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下,输入如下命令:
  1. $ cp –r test/ newtest
复制代码
注意:用户使用该指令复制目录时,必须使用参数 -r 或者 -R
mv:(英文全拼:move file)命令用来为文件或目录改名、或将文件或目录移入其它位置。
语法:
mv [options source destmv [options source... directory
参数说明:
  • -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
  • -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
  • -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
  • -n: 不要覆盖任何已存在的文件或目录。
  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

mv 参数设置与运行结果:
命令格式
运行结果
mv source_file(文件) dest_file(文件)将源文件名 source_file 改为目标文件名 dest_file
mv source_file(文件) dest_directory(目录)将文件 source_file 移动到目标目录 dest_directory 中
mv source_directory(目录) dest_directory(目录)目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory
mv source_directory(目录) dest_file(文件)出错

例如我/usr/runoob 下的所有文件和目录移到当前目录下,命令行为:
  1. $ mv /usr/runoob/*  .
复制代码
cat:(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。
语法格式:cat [-AbeEnstTuv] [--help] [--version] fileName
参数说明:
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;

例如我把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
  1. cat -n textfile1 > textfile2
复制代码
more:命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似)
语法:
more [-dlfpcsu [-num [+/pattern [+linenum [fileNames
参数说明:
  • -num 一次显示的行数
  • -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
  • -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
  • -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
  • -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
  • -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
  • -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
  • -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
  • +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
  • +num 从第 num 行开始显示
  • fileNames 欲显示内容的文档,可为复数个数

例如逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。
  1. more -s testfile
复制代码
常用操作指令:
  • Enter 向下n行,需要定义。默认为1行
  • Ctrl+F 向下滚动一屏
  • 空格键 向下滚动一屏
  • Ctrl+B 返回上一屏
  • = 输出当前行的行号
  • :f 输出文件名和当前行的行号
  • V 调用vi编辑器
  • !命令 调用Shell,并执行命令
  • q 退出more



less:与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
语法:less [参数] 文件
参数:
  • -b <缓冲区大小> 设置缓冲区的大小
  • -e 当文件显示结束后,自动离开
  • -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
  • -g 只标志最后搜索的关键词
  • -i 忽略搜索时的大小写
  • -m 显示类似more命令的百分比
  • -N 显示每行的行号
  • -o <文件名> 将less 输出的内容在指定文件中保存起来
  • -Q 不使用警告音
  • -s 显示连续空行为一行
  • -S 行过长时间将超出部分舍弃
  • -x <数字> 将"tab"键显示为规定的数字空格
  • /字符串:向下搜索"字符串"的功能
  • ?字符串:向上搜索"字符串"的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)
  • b 向上翻一页
  • d 向后翻半页
  • h 显示帮助界面
  • Q 退出less 命令
  • u 向前滚动半页
  • y 向前滚动一行
  • 空格键 滚动一页
  • 回车键 滚动一行
  • [pagedown]: 向下翻动一页
  • [pageup]: 向上翻动一页

例如我查看命令历史使用记录并通过less分页显示
  1. [root@localhost test]# history | less
  2. 22  scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft
  3. 23  cd ..
  4. 24  scp -r web root@192.168.120.203:/opt/
  5. 25  cd soft
  6. 26  ls
  7. ……省略……
复制代码
附加备注:
1.全屏导航
  • ctrl + F - 向前移动一屏
  • ctrl + B - 向后移动一屏
  • ctrl + D - 向前移动半屏
  • ctrl + U - 向后移动半屏
2.单行导航
  • j - 向前移动一行
  • k - 向后移动一行
3.其它导航
  • G - 移动到最后一行
  • g - 移动到第一行
  • q / ZZ - 退出 less 命令
4.其它有用的命令
  • v - 使用配置的编辑器编辑当前文件
  • h - 显示 less 的帮助文档
  • &pattern - 仅显示匹配模式的行,而不是整个文件
5.标记导航
当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
  • ma - 使用 a 标记文本的当前位置
  • 'a - 导航到标记 a 处



head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。
语法:head [参数] [文件]
参数:
  • -q 隐藏文件名
  • -v 显示文件名
  • -c<数目> 显示的字节数。
  • -n<行数> 显示的行数。

例如要显示 runoob_notes.log 文件的开头 10 行,请输入以下命令:
  1. head runoob_notes.log
复制代码


tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
命令格式:
tail [参数] [文件]  
参数:
  • -f 循环读取
  • -q 不显示处理信息
  • -v 显示详细的处理信息
  • -c<数目> 显示的字节数
  • -n<行数> 显示文件的尾部 n 行内容
  • --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
  • -q, --quiet, --silent 从不输出给出文件名的首部
  • -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

例如要显示 notes.log 文件的最后 10 行,请输入以下命令:
tail notes.log

nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。  
1.命令格式:
nl [选项]... [文件]...
2.命令参数:
-b  :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n  :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w  :行号栏位的占用的位数。
-p 在逻辑定界符处不重新开始计算。
3.命令功能:
nl 命令读取 File 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出。 在输出中,nl 命令根据您在命令行中指定的标志来计算左边的行。 输入文本必须写在逻辑页中。每个逻辑页有头、主体和页脚节(可以有空节)。 除非使用 -p 标志,nl 命令在每个逻辑页开始的地方重新设置行号。 可以单独为头、主体和页脚节设置行计算标志(例如,头和页脚行可以被计算然而文本行不能)。



find:命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
语法:find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;
参数说明 :
find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去n天内被修改过的文件
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 文件类型是 c 的文件。
d: 目录
c: 字型装置文件
b: 区块装置文件
p: 具名贮列
f: 一般文件
l: 符号连结
s: socket
-pid n : process id 是 n 的文件
你可以使用 ( ) 将运算式分隔,并使用下列运算。
exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1, exp2

例如将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
# find . -name "*.c"
那么,
到这里,就是这两天以来所学全部Linux命令了,可以说都是非常的基础和简单,但是作为初学者,并不容易记牢,需要我们每一位多测师的学员将其运用到每一步平时的操作中,勤加练习,相信最后一定可以达到自己预期效果!
我是宝安9期学员罗潇,一个从零开始的初学者,希望两个多月后大家都能取得不错的成果!

本帖被以下淘专辑推荐:

  • · Linux|主题: 6, 订阅: 0
分享至 : QQ空间
收藏
技术无它,唯手熟尔!!

0 个回复

您需要登录后才可以回帖 登录 | 立即注册