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
下面介绍实例:
切换用户:
- hnlinux@runoob.com:~$ whoami //显示当前用户
- hnlinux
- hnlinux@runoob.com:~$ pwd //显示当前目录
- /home/hnlinux
- hnlinux@runoob.com:~$ su root //切换到root用户
- 密码:
- root@runoob.com:/home/hnlinux# whoami
- root
- root@runoob.com:/home/hnlinux# pwd
- /home/hnlinux
复制代码
在知道IP地址后,我们就可以使用Xshell进行连接了。同时可以使用ping查看是否连接。
ping:这个命令用于检测主机。
语法:ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
下面展示操作实例:
- # ping www.w3cschool.cc //ping主机
- PING aries.m.alikunlun.com (114.80.174.110) 56(84) bytes of data.
- 64 bytes from 114.80.174.110: icmp_seq=1 ttl=64 time=0.025 ms
- 64 bytes from 114.80.174.110: icmp_seq=2 ttl=64 time=0.036 ms
- 64 bytes from 114.80.174.110: icmp_seq=3 ttl=64 time=0.034 ms
- 64 bytes from 114.80.174.110: icmp_seq=4 ttl=64 time=0.034 ms
- 64 bytes from 114.80.174.110: icmp_seq=5 ttl=64 time=0.028 ms
- 64 bytes from 114.80.174.110: icmp_seq=6 ttl=64 time=0.028 ms
- 64 bytes from 114.80.174.110: icmp_seq=7 ttl=64 time=0.034 ms
- 64 bytes from 114.80.174.110: icmp_seq=8 ttl=64 time=0.034 ms
- 64 bytes from 114.80.174.110: icmp_seq=9 ttl=64 time=0.036 ms
- 64 bytes from 114.80.174.110: icmp_seq=10 ttl=64 time=0.041 ms
- --- aries.m.alikunlun.com ping statistics ---
- 10 packets transmitted, 30 received, 0% packet loss, time 29246ms
- rtt min/avg/max/mdev = 0.021/0.035/0.078/0.011 ms
- //需要手动终止Ctrl+C
复制代码 ls:(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
语法:ls [-alrtAFR] [name...]
参数:
- -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
- -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
- -r 将文件以相反次序显示(原定依英文字母次序)
- -t 将文件依建立时间之先后次序列出
- -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
- -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
- -R 若目录下有文件,则以下之文件亦皆依序列出
例如我列出根目录(\)下的所有目录:
- # ls /
- bin dev lib media net root srv upload www
- boot etc lib64 misc opt sbin sys usr
- home lost+found mnt proc selinux tmp var
复制代码
cd:(英文全拼:change directory)命令用于切换当前工作目录。
其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。 另外,~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, .. 则表示目前目录位置的上一层目录。
语法很简单,就是:
cd [dirName
例如我要跳到 /usr/bin/ :
很简单。
mkdir:(英文全拼:make directory)命令用于创建目录。
语法:
mkdir [-p dirName
例如我在工作目录下,建立一个名为 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",输入如下命令:
- $ touch file #创建一个名为“file”的新的空白文件
复制代码 rm:(英文全拼:remove)命令用于删除一个文件或者目录。
语法:rm [options] name...
参数说明:
- -i 删除前逐一询问确认。
- -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
- -r 将目录及以下之档案亦逐一删除。
使用实例:删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:
- # rm test.txt
- rm:是否删除 一般文件 "test.txt"? y
- # rm homework
- rm: 无法删除目录"homework": 是一个目录
- # rm -r homework
- 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 下,输入如下命令:
注意:用户使用该指令复制目录时,必须使用参数 -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 下的所有文件和目录移到当前目录下,命令行为:
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 这个文档里:
- 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 文档内容,如有连续两行以上空白行则以一行空白行显示。
常用操作指令:
- 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分页显示
- [root@localhost test]# history | less
- 22 scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft
- 23 cd ..
- 24 scp -r web root@192.168.120.203:/opt/
- 25 cd soft
- 26 ls
- ……省略……
复制代码 附加备注:
1.全屏导航 - ctrl + F - 向前移动一屏
- ctrl + B - 向后移动一屏
- ctrl + D - 向前移动半屏
- ctrl + U - 向后移动半屏
2.单行导航 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 行,请输入以下命令:
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期学员罗潇,一个从零开始的初学者,希望两个多月后大家都能取得不错的成果!
|