目录
前言
一、UNIX的登录与退出
1、登录
(1)执行格式:
(2)步骤
2、退出
二、UNIX命令格式
三、常用命令
1、目录操作
(1)显示目录文件 ls
(2)建新目录 mkdir
(3)删除目录 rmdir
(4) 改变工作目录位置 cd
(5)显示当前所在目录pwd
(6)查看目录大小du
(7)显示环境变量
(8)修改环境变量,在bash下用export
2、文件操作
(1)查看文件(可以是二进制的)内容 cat
(2)删除文件 rm
(3)复制文件 cp
(4)移动或更改文件、目录名称mv
(5)比较文件(可以是二进制的)或目录的内容 diff
(6)文件中字符串的查找 grep
(7)文件或命令的路径寻找
(8)建立文件或目录的链接 ln
3、系统询问与权限口令
(1)查看系统中的使用者
(2)查看username
(3)改变自己的username的帐号与口令 su
(4)文件属性的设置 chmod
(5)改变文件或目录所有权 chown
(6)检查用户所在组名称 groups
(7)改变文件或目录的组拥有权 chgrp
(8)改变文件或目录的最后修改时间 touch
4、进程操作
(1)查看系统目前的进程 ps
(2)查看正在background中执行的process
(3)结束或终止进程 kill
(4)后台(background)执行process command的命令
(5)结束或终止在background中的进程 kill
(6)显示系统中程序的执行状态
(7)以树状图显示执行的程序 pstree
(8)监视虚拟内存 vmstat
(9)分析共享内存、信号量和消息队列 ipcs
(10)监视用户空间程序发出的全部系统调用 strace
5、通信类
(1)本地工作站与UNIX服务器间的文件传输 ftp
(2)检查与UNIX服务器连接是否正常 ping
(3)将文件当做E-mail的内容送出 mail
(4)传送E-mail给本地UNIX服务器上的用户 mail
(5)读取信件 mail
(6)列出套接字使用情况 socklist
(7)查看网络连接 netstat
6、I/O命令
(1)管道(pipe-line)的使用
(2)标准输入控制
(3)标准输出控制
7、其它常用命令
(1)命令在线帮助 man
(2)设定命令记录表长度 history
(3)显示说明 info
例: info gcc
前言
前面我教大家怎去安装Linux操作系统的虚拟机,那这一次我们接着学习Linux系统的基本指令,通过这些指令我们可以去更好的去操作相关的文件以及熟悉Linux操作系统。
(Linux系统安装教程:Linux操作系统虚拟机安装(图文详解)-CSDN博客)
一、UNIX的登录与退出
1、登录
在DOS环境下用MS提供的telnet程序(也可使用WINDOWS 自带的telnet图形界面程序或多功能的S-Term终端程序),可使PC作为终端(terminal)登录(login)UNIX服务器(UNIX Server)。
(1)执行格式:
telnet hostname(主机名)
或 telnet 主机的IP地址
例: telnet www.yahoo.com
telnet 140.122.77.120
(2)步骤
login: (输入username)
password: (输入密码)
2、退出
在UNIX系统提示符$下,输入logout、exit或shutdown 。
例:$ logout
二、UNIX命令格式
命令 [选项] [处理对象]
例:ls -la mydir
注意:(1)命令一般是小写字串。注意大小写有别
(2)选项通常以减号(-)再加上一个或数个字符表示,用来选择一个命令的不同操作
(3)同一行可有数个命令,命令间应以分号隔开
(4)命令后加上&可使该命令后台(background)执行
三、常用命令
1、目录操作
和DOS相似,UNIX采用树型目录管理结构,由根目录(/)开始一层层将子目录建下去,各子目录以 / 隔开。用户login后,工作目录的位置称为 home directory,由系统管理员设定。‘~’符号代表自己的home directory,例如 ~/myfile 是指自己home目录下myfile这个文件。
UNIX的通配符有三种:’*’ 和 ’?’ 用法与DOS相同, ‘-‘ 代表区间内的任一字符,如test[0-5]即代表test0,test1,……,test5的集合。
(1)显示目录文件 ls
执行格式: ls [-atFlgR] [name] (name可为文件或目录名称)
例: ls 显示出当前目录下的文件
ls -a 显示出包含隐藏文件的所有文件
ls -t 按照文件最后修改时间显示文件
ls -F 显示出当前目录下的文件及其类型
ls -l 显示目录下所有文件的许可权、拥有者、文件大小、修改时间及名称
ls -lg 同上
ls -R 显示出该目录及其子目录下的文件
注:ls与其它命令搭配使用可以生出很多技巧(最简单的如"ls -l | more"),更多用法请输入ls --help查看,其它命令的更多用法请输入 命令名 --help 查看.
(2)建新目录 mkdir
执行格式: mkdir directory-name
例: mkdir dir1 (新建一名为dir1的目录)
(3)删除目录 rmdir
执行格式: rmdir directory-name 或 rm directory-name
例:rmdir dir1 删除目录dir1,但它必须是空目录,否则无法删除
rm -r dir1 删除目录dir1及其下所有文件及子目录
rm -rf dir1 不管是否空目录,统统删除,而且不给出提示,使用时要小心
(4) 改变工作目录位置 cd
执行格式: cd [name]
例: cd 改变目录位置至用户login时的working directory
cd dir1 改变目录位置,至dir1目录
cd ~user 改变目录位置,至用户的working directory
cd .. 改变目录位置,至当前目录的上层目录
cd ../user 改变目录位置,至上一级目录下的user目录
cd /dir-name1/dir-name2 改变目录位置,至绝对路径(Full path)
cd - 回到进入当前目录前的上一个目录
(5)显示当前所在目录pwd
执行格式: pwd
(6)查看目录大小du
执行格式: du [-s] directory
例: du dir1 显示目录dir1及其子目录容量(以kb为单位)
du -s dir1 显示目录dir1的总容量
(7)显示环境变量
echo $HOME 显示家目录
echo $PATH 显示可执行文件搜索路径
env 显示所有环境变量(可能很多,最好用"env | more","env | grep PATH"等)
(8)修改环境变量,在bash下用export
export PATH=$PATH:/usr/local/bin
想知道export的具体用法,可以用shell的help命令:help export
2、文件操作
这是我当前文件的目录:
(1)查看文件(可以是二进制的)内容 cat
执行格式:cat filename或more filename 或cat filename|more
例: cat file1 以连续显示方式,查看文件file1的内容
more file1
或 cat file1|more 以分页方式查看文件的内容
(2)删除文件 rm
执行格式: rm filename
例: rm file?
rm f*
(3)复制文件 cp
执行格式: cp [-r] source destination
例: cp file1 file2 将file1复制成file2
cp file1 dir1 将file1复制到目录dir1
cp /tmp/file1 将file1复制到当前目录
cp /tmp/file1 file2 将file1 复制到当前目录名为file2
cp –r dir1 dir2 (recursive copy)复制整个目录。
(4)移动或更改文件、目录名称mv
执行格式: mv source destination
例: mv file1 file2 将文件file1,更名为file2
mv file1 dir1 将文件file1,移到目录dir1下
mv dir1 dir2
(5)比较文件(可以是二进制的)或目录的内容 diff
执行格式: diff [-r] name1 name2 (name1、name2同为文件或目录)
例: diff file1 file2 比较file1与file2的不同处
diff -r dir1 dir2 比较dir1与dir2的不同处
(6)文件中字符串的查找 grep
执行格式: grep string file
例: grep abc file1 查找并列出串abc所在的整行文字
(7)文件或命令的路径寻找
执行格式一:whereis command 显示命令的路径
执行格式二:which command 显示路径及使用者所定义的别名
执行格式三:whatis command 显示命令的功能摘要
执行格式四:find search -path -name filename -print
搜寻指定路径下某文件的路径
执行格式五:locate filename
根据系统预先生成的文件/目录数据库(/var/lib/slocate/slocate.db)查找匹配的文件/目录,查找速度很快,如果有刚进行的文件改变而系统未到执行定时更新数据库的时间,可以打入updatedb命令手动更新.
(8)建立文件或目录的链接 ln
例: ln source target1 建立source文件(已存在)的硬链接,命名为target1
ln -s source target2 建立source文件的符号链接,命名为target2
3、系统询问与权限口令
(1)查看系统中的使用者
执行格式: who
(2)查看username
执行格式: who am I 查看自己的username
(3)改变自己的username的帐号与口令 su
执行格式: su username
例: su username 输入帐号
password 输入密码
(4)文件属性的设置 chmod
改变文件或目录的读、写、执行的允许权
执行格式: chmod [-R] mode name
其中:[-R]为递归处理,将指定目录下所有文件及子目录一并处理
mode为3-8位数字,是文件/目录读、写、执行允许权的缩写(r:read,数字代号为"4" w:write,数字代号为"2" x:execute,数字代号为"1")
mode: rwx rwx rwx
user group other
缩写: (u) (g) (o)
例:chmod 755 dir1 将目录dir1设定成任何人皆有读取及执行的权利,但只有拥有者可作写修改。其中7=4+2+1,5=4+1
chmod 700 file1 将file1设为拥有者可以读、写和执行
chmod o+x file2 将file2,增加拥有者可执行的权利
chmod g+x file3 将file3,增加组使用者可执行的权利
chmod o-r file4 将file4,除去其它使用者可读取的权利
(5)改变文件或目录所有权 chown
执行格式: chown [-R] username name
例: chown user file1 将文件file1改为user所有
chown .fox file1 将文件file1改为fox组所有
chown user.fox file1 将文件file1改为fox组的user所有
chown -R user dir1 将目录dir1及其下所有文件和子目录,改为user 所有
(6)检查用户所在组名称 groups
执行格式: groups
(7)改变文件或目录的组拥有权 chgrp
执行格式: chgrp [-R] groupname name
例: chgrp vlsi file1 将文件file1改为vlsi组所有
chgrp -R image dir1 将目录dir1及其下所有文件和子目录,改为image群组
(8)改变文件或目录的最后修改时间 touch
执行格式: touch name
4、进程操作
(1)查看系统目前的进程 ps
执行格式: ps [-aux]
例: ps 或ps -x 查看系统中属于自己的process
ps -au 查看系统中所有使用者的process
ps -aux 查看系统中包含系统内部及所有使用者的process
ps -aux|grep apache 找出系统中运行的所有名称中带有"apache"串的process
(2)查看正在background中执行的process
执行格式: jobs
(3)结束或终止进程 kill
执行格式: kill [-9] PID (PID为利用ps命令所查出的process ID)
例: kill 456
或 kill -9 456 终止process ID 为456的process
(4)后台(background)执行process command的命令
执行格式: command & (在命令后加上 &)
例: gcc file1 & 在后台编译file1.c
注意:按下^Z,暂停正在执行的process。键入”bg”,将所暂停的process置入background中继续执行。
例: gcc file1 &
^Z
stopped
bg
(5)结束或终止在background中的进程 kill
执行格式: kill %n
例: kill %1 终止在background中的第一个job
kill %2 终止在background中的第二个job
(6)显示系统中程序的执行状态
例: top -q 不断地更新、显示系统程序的执行状态
第一行显示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。
第二行为进程情况,依次为进程总数、休眠进程数、运行进程数、僵死进程数、终止进程数。
第三行为CPU状态,依次为用户占用、系统占用、优先进程占用、闲置进程占用。
第四行为内存状态,依次为平均可用内存、已用内存、空闲内存、共享内存、缓存使用内存。
第五行为交换状态,依次为平均可用交换容量、已用容量、闲置容量、高速缓存容量。
PID 每个进程的ID。
PPID 每个进程的父进程ID。
UID 每个进程所有者的UID 。
USER 每个进程所有者的用户名。
PRI 每个进程的优先级别。
NI 该进程的优先级值。
SIZE 该进程的代码大小加上数据大小再加上堆栈空间大小的总数。单位是KB。
TSIZE 该进程的代码大小。对于内核进程这是一个很奇怪的值。
DSIZE 数据和堆栈的大小。
TRS 文本驻留大小。
D 被标记为“不干净”的页项目。
LIB 使用的库页的大小。对于ELF进程没有作用。
RSS 该进程占用的物理内存的总数量,单位是KB。
SHARE 该进程使用共享内存的数量。
STAT 该进程的状态。其中S代表休眠状态;D代表不可中断的休眠状态;R代表运行状态;Z代表僵死状态;T代表停止或跟踪状态。
TIME 该进程自启动以来所占用的总CPU时间。如果进入的是累计模式,那么该时间还包括这个进程子进程所占用的时间。且标题会变成CTIME。
%CPU 该进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。
%MEM 该进程占用的物理内存占总内存的百分比。
COMMAND 该进程的命令名称,如果一行显示不下,则会进行截取。内存中的进程会有一个完整的命令行
按"ctrl+c"停止查看
(7)以树状图显示执行的程序 pstree
例: pstree -h 列出进程树并高亮标出当前执行的程序
(8)监视虚拟内存 vmstat
vmstat对系统的虚拟内存、进程、CPU活动进行监视,同时它也对磁盘和forks和vforks操作的个数进行汇总。
不足是:vmstat不能对某个进程进行深入分析,它仅是一对系统的整体情况进行分析。
例如:[angel@home /angel]# vmstat
procs memory swap io system cpu
r b w swpd free buff cache si so bi bo in cs us sy id
0 0 0 7180 1852 56092 48400 0 0 6 5 24 8 0 0 18
其中:
Procs
r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。
Memory
swpd: 虚拟内存使用情况,单位:KB free: 空闲的内存,单位KB
buff: 被用来做为缓存的内存数,单位:KB
Swap
si: 从磁盘交换到内存的交换页数量,单位:KB/秒 so: 从内存交换到磁盘的交换页数量,单位:KB/秒
IO
bi: 发送到块设备的块数,单位:块/秒 bo: 从块设备接收到的块数,单位:块/秒
System
in: 每秒的中断数,包括时钟中断 cs: 每秒的环境(上下文)切换次数
CPU 按 CPU 的总使用百分比来显示
us: CPU 使用时间 sy: CPU 系统使用时间 id: 闲置时间
(9)分析共享内存、信号量和消息队列 ipcs
(相关命令ipcrm:用于给有权限的用户清除这些量,注意不要乱清除,除非该量确实失效了)
例如:[angel@home /angel]# ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00280267 0 root 644 1048576 1
0x61715f01 1 root 666 32000 33
0x00000000 2 nobody 600 92164 11 dest
------ Semaphore Arrays --------
key semid owner perms nsems status
0x00280269 0 root 666 14
0x61715f02 257 root 777 1
------ Message Queues --------
key msqid owner perms used-bytes messages
(10)监视用户空间程序发出的全部系统调用 strace
strace 还能显示调用的参数,以及用符号方式表示的返回值。
strace 从内核中接收信息,所以一个程序无论是否按调试方式编译(gcc -g)或是否被去掉了调试信息,都可以被跟踪。
执行格式: strace [-tTeo] executable-program-name
-t : 用来显示调用发生的时间
-T : 显示调用花费的时间
-e : 限定被跟踪的调用类型
-o : 将输出重定向到一个文件中
类似命令:ltrace [-fiS] executable-program-name
5、通信类
(1)本地工作站与UNIX服务器间的文件传输 ftp
执行格式: ftp 主机名
或 ftp 主机的IP地址
后续执行步骤:
name: | 输入帐号 |
password: | 输入密码 |
ftp>help | 显示ftp可使用的所有命令 |
ftp>lcd dir1 | 改变本地机当前目录为dir1 |
ftp>get file1 | 将UNIX服务器文件file1拷到本地机 |
ftp>put file2 | 将本地文件file2,拷到UNIX服务器 |
ftp>!ls | 显示本地机当前目录下所有文件 |
ftp>!pwd | 显示本地机当前所在目录下所有文件 |
ftp>ls | 显示UNIX服务器当前目录下所有文件 |
ftp>dir | 显示服务器当前目录下所有文件(略同于UNIX的 ls -l指令) |
ftp>pwd | 显示UNIX服务器当前所有目录位置 |
ftp>cd dir1 | 更改UNIX服务器的目录至dir1下 |
ftp>mget *.c | 将服务器中 .c 文件拷到本地机中 |
ftp>mput *.txt | 将所有 .txt 文件拷贝到服务器 |
ftp>quit | 结束ftp工作 |
ftp>bye | 结束ftp工作 |
(2)检查与UNIX服务器连接是否正常 ping
执行格式: ping hostname
或 ping IP-Address
例: ping 127.1.1.1
(3)将文件当做E-mail的内容送出 mail
执行格式:mail -s “Subjict-string” username@address<filename
例: mail -s “program” user <file.c
功能:将file.c当做mail的内容,送至user,subject name为program
(4)传送E-mail给本地UNIX服务器上的用户 mail
执行格式: mail username
(5)读取信件 mail
执行格式: mail
(6)列出套接字使用情况 socklist
(7)查看网络连接 netstat
6、I/O命令
(1)管道(pipe-line)的使用
执行格式: command1|command2
功能:将command1的执行结果送到command2 作为输入
例: ls -R1|more 以分页方式列出当前目录文件及子目录名称
cat file1|more 以分页方式,列出file1的内容
(2)标准输入控制
执行格式: command-line<file 将file作为command-line的输入
例: mail -s “mail test” user@iis.sinica.edu.tw<file1
功能:将文件file1当作信件的内容,subject 名称为mail test 送给收信人
(3)标准输出控制
执行格式一: command>filename
功能:将command的执行结果送至指定的filename中
例: ls -l >list 将执行”ls -l” 的结果写入文件list中
执行格式二: command>!filename
功能:同上,若filename文件已存在,则强迫重写
执行格式三: command>&filename
功能:将command执行所产生的任何信息写入filename
执行格式四:command>>filename
功能:将command 的执行结果,附加(append)到filename
执行格式五:command>>&filename
功能:将command执行所产生的任何信息附加于filename中
7、其它常用命令
(1)命令在线帮助 man
执行格式: man command
例: man ls 查询ls这个指令的用法
(2)设定命令记录表长度 history
执行格式一: set history=n
例: set history=40
功能:设定命令记录表长度为40(可记载执行过的前面40个命令)
执行格式二: history 查看命令记录表的内容
(3)显示说明 info
执行格式: info command-name
例: info gcc
功能: 查看gcc的说明,按上下箭头选定菜单,回车进入,"u"键返回上级菜单.
info不加参数则进入最上一级菜单.
四、用cat 命令查看 /proc 动态文件系统目录下的文件,辨识其中的系统信息.
例如: cat interrupts 列出当前中断占用情况
cat ioports 列出设备的硬件IO占用情况
cat pci 列出pci设备的情况
以上就是本期的全部内容,我们下次见!
分享一张壁纸: