1 / 124

Linux 使用

College of Information Science and Engineering. Linux 使用. —— 基本 shell 命令. Shandong Agricultural University. Shell 简介. Linux 目录结构. Linux 命令分类详解. Linux 目录结构. 目录结构 配置文件. 1 、目录结构. Linux 的目录结构中主要的目录有: / :根目录,最特殊的目录,所有目录的起点; /home :除 root 以外的用户主目录都在这里; ~ :指代每个用户的主目录( /home/ 用户名);

Télécharger la présentation

Linux 使用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. College of Information Science and Engineering Linux使用 ——基本shell命令 Shandong Agricultural University

  2. Shell简介 Linux目录结构 Linux命令分类详解

  3. Linux目录结构 • 目录结构 • 配置文件

  4. 1、目录结构 • Linux的目录结构中主要的目录有: • /:根目录,最特殊的目录,所有目录的起点; • /home:除root以外的用户主目录都在这里; • ~:指代每个用户的主目录(/home/用户名); • /bin:存放Linux的常用命令; • /boot:内核和启动文件所在目录; • /etc:系统多部分配置文件所在之处; • /dev:所有设备文件保存在这; • /mnt: 这个目录是空的,系统提供这个目录是让用户临时挂载别的文件系统。 • /media:一般用于自动挂载,系统自动挂载的光盘、u盘文件系统都在这下面。 • /proc:在磁盘上实际不存在,里面的文件是动态生成的,根据执行的命令,采集系统进程运行状态等信息形成文件放在该目录下。

  5. Windows下目录:按照应用程序分目录组织。 C:\Windows放系统文件;D:\Program Files放程序相关文件等。 • Linux目录结构:目录按照内容类别组织。 逻辑上有一个最高级别的根目录“/”,其他所有的目录内容按照类别组织。乍一看很多,实际并不复杂。 例如,一个Linux下的应用程序, • 它的可执行程序在/usr/bin, • 它的数据文件和帮助在/usr/share下, • 运行时加载的配置文件是从/etc下读取, • 用户使用它编辑的内容则放在/home下面自己的目录中。

  6. /  根目录 │├boot/ 启动文件。所有与系统启动有关的文件都保存在这里│ └grub/ Grub引导器相关的文件│├dev/ 设备文件├proc/ 内核与进程镜像│├mnt/ 临时挂载├media/ 挂载媒体设备│├root/ root用户的$HOME目录├home/│ ├user/ 普通用户的$HOME目录│ └.../│├bin/ 系统程序├sbin/ 管理员系统程序├lib/ 系统程序库文件

  7. ├etc/ 系统程序和大部分应用程序的全局配置文件│ ├init.d/ SystemV风格的启动脚本│ ├rcX.d/ 启动脚本的链接,定义运行级别│ ├network/ 网络配置文件│ ├X11/ 图形界面配置文件│├usr/│ ├bin/ 应用程序│ ├sbin/ 管理员应用程序│ ├lib/ 应用程序库文件│ ├share/ 应用程序资源文件│ ├src/ 应用程序源代码│ ├local/│ │ ├soft/ 用户程序│ │ └.../ 通常使用单独文件夹│ ├X11R6/ 图形界面系统│├var/ 动态数据│├temp/ 临时文件├lost+found/ 磁盘修复文件

  8. 常用文件类型 • 普通文件 • 目录文件 • 链接文件 • 设备文件 • 管道文件 • 文件中体现的面向对象思想 • 即使linux是用c写的,还是有面向对象的思想在里面。如Linux把设备也当文件来操作。这就是把资源抽象成文件,用统一的读、写命令即可操作不同种类的资源。

  9. 2、配置文件 配置文件就像 Windows的注册表一样关系着Linux 的正常使用,大部分在/etc/下。各种“Linux 发行版”的图形配置工具往往不完善,可以通过直接修改配置文件实现各种设置。 注意:只有root权限才能修改配置文件,且修改前最好将文件复制一份,一旦出问题方便恢复。 常用的配置文件需要的时候再查,不同发行版各有不同: • /etc/network/interfaces 网卡配置 • /etc/apt/sources.list 软件包更新的网络源 • /boot/grub/grub.cfg(ubutu) grub设置 • /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.从/etc/profile.d目录的配置文件中搜集shell的设置. • /etc/bash.bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. • ……

  10. SHELL简介 • shell是什么 • shell的种类 • shell的实用功能

  11. Linux启动过程说明 • 打开PC的电源 • BIOS开机自检 • 按BIOS中设置的启动设备(通常是硬盘)启动,接着启动设备上安装的引导程序lilo或grub开始引导Linux • 操作系统内核的引导(内核程序进内存) • 执行init程序(操作系统开始初始化) • 启动getty,等待用户登录系统 • 命令行登录成功后进入Shell • 图形界面登陆,启动shell,startx

  12. 1、shell是什么? • Shell:字面意思“壳”;引申一下就是人机界面。是linux里用户使用Linux的桥梁(命令接口)。是C语言编写的一个命令解释程序,解释执行用户命令或脚本程序。 • 特点:既是一种命令语言,又是一种程序设计语言。 • 命令语言:交互式解释、执行用户输入的命令; • 程序设计语言:用于写shell脚本,非交互的执行。有自己的语法,定义了各种变量和参数,提供许多在高级语言中才有的循环、分支等控制结构。

  13. Shell的启动与退出 • 系统启动自动根据配置信息启动shell,根据用户启动的模式不同,shell表现为 • 全屏控制台终端:系统启动即启动shell。 • 桌面终端:用户通过桌面上的菜单启动,找到系统工具“终端”,打开即可启动shell虚拟终端。 • exit命令 • 退出到控制台终端的login(登录)界面 • 退出虚拟终端,回到图形桌面。

  14. 2、shell的种类 了解不同的 shell 及版本很有必要,不同系统的shell从名字到 path都有不同。当在不同平台之间移植脚本程序时,不同版本间还是存在着兼容的问题。 • Bourne [buən]  Shell(sh) 最早的shell,在任何unix下都可以找到的shell,选择它你可以在各种unix上have a familar enviroment。用来编程时简单、快速、但交互性上有些不足。

  15. Korn shell(ksh) 向下兼容Bourne Shell语法,增加了一些新的特性,并且运行速度较快,交互性也有提高。 • C shell(csh) 与bourne shell不同,脚本编程语法类似c语言,交互性比较好。 • BourneAgain Shell(bash) GNU计划的一部分,用来替代Bourne shell。编程语法与Bourne Shell相兼容,同时提供了C Shell和Korn Shell受人欢迎的特性。有灵活和强大的编程接口,同时又有很友好的用户界面。

  16. 大多数的Linux发行版(Red Hat, Slackware, Caldera等)都以bash作为缺省的shell: • /bin/bash • 看看当前登录的哪个shell? echo $SHELL 实际上就是显示系统变量SHELL的值。 • 更改默认shell sudo usermod -s /bin/ksh • 用type命令可以准确的告诉你一个可找到的命令的类型和位置 type ksh

  17. 3、Shell 实用功能 • tab自动补齐命令 输入命令的几个开始字符,按TAB可自动补齐命令 • 上、下光标键显示历史已经执行的命令 • 同行多命令的排列 • 分号 ls –l ;cd \ 先执行第一个命令,不管是否正确继续执行第二个 • && ls –l && cd \ 只有当第一个命令执行完毕后,执行第二个命令

  18. ④设置别名(alias) alias [别名]=[需要定义别名的命令] alias ll=‘ls –al’ 注意事项: • 等号两端不能空格,字符串最好加引号 • 浏览别名:$ alias • 取消别名:$ unalias 命令 • 写入配置文件:为命令取的别名在该次登录期间始终有效。若要别名在每次登录时都有效,需将alias命令写到初始化脚本文件中。

  19. 输入输出流的重定向 一般,默认的标准输入是键盘stdin,标准输出是stdout,标准错误输出stderr默认是显示器(终端), (分别是 0,1 和 2 ) • shell允许用户的输入输出不是标准设备。这就是输入输出重定向。 • 有关的字符: • 输入重定向: < 用的地方较少,如 wc -l -w < my.txt 统计文件 my.txt 中的行数和字数

  20. 输出重定向:>、>> ls > my.txt 浏览当前目录的信息,但是结果不再输出到终端显示,而是存到了my.txt文件中。 >会覆盖文件原内容;>>则是在原内容后追加 • 管道符“|” 前一个的结果作为后一个命令的输入 ls | head -5 浏览当前目录下的文件信息,但只显示前五条

  21. Linux命令分类详解 • Shell命令格式 • 磁盘挂载使用U盘——体验设备与目录 • 常用命令分类详解

  22. 1、Shell命令格式 在shell里执行命令都有统一的格式: 命令 –参数 如:tar –zxvf a.gz 该命令将压缩包a.gz解压 • 一般命令都带有很多参数,不容易全记住,不同的发行版命令参数也略有不同。多使用多练习,还可用linux帮助命令查看: • 命令 --help • man 命令 • info 命令(支持文件的链接跳转) -z 说明是解压.GZ类型文件 -x 说明是解压操作 -v 显示详细信息 -f 必须,表示使用归档文件

  23. Shell执行的命令分为: • 内置命令 例:whereis cd 没有结果,可见cd是内置命令 • 外部命令(对应一个程序文件,执行该命令时,由shell根据路径环境变量查找到命令对应的文件,触发其执行) 例:whereis ls 可看到它是在/bin目录下

  24. 2、磁盘挂载--使用U盘的操作实例 • 两个概念 • 设备文件: 所有的设备都在/dev下有对应的设备文件,U盘作为磁盘设备,linux把它识别为一个设备文件。fdisk –l,可查看全部设备号。 • 挂载: Linux中使用设备都需要将设备挂载到一个空目录,通过对目录的操作访问设备里的内容。mount 命令可将设备挂载到目录。 • 虚拟机环境下的U盘使用: • U盘设备被宿主机使用,可用虚拟机的设备菜单,找到usb设备选中,触发虚拟机检测usb设备。

  25. 具体步骤 *1.虚拟机菜单选中usb设备,不同的虚拟机需要做的操作也略有不同 2.插入U盘,观察自动提示的信息,找/dev/sd类或hd类的文字 或 用fdisk -l命令(前两项硬盘信息出的很快,U盘的信息需要执行一会才显示出来) Disk /dev/sdc:1055MB,10...bytes 2heads,63sectors/track,16355 cylinders units=.... Disk identifier:0x0011e973 Device Boot start end blocks id system /dev/sdc1 * 1 16356 1030384 b w95 FAT32 我的U盘被识别为设备文件/dev/sdc1

  26. 3.执行命令 mkdir /mnt/usb 自建一个空目录 mount -t vfat /dev/sdc1 /mnt/usb 执行挂载命令 mount 查看所有挂载情况 4.可以进入目录操作U盘了 • 在u盘上建文件 cd /mnt/usb ls vi my.txt 按i,进入编辑,写些内容。按冒号进入末行模式,输入wq保存退出。 ls 显示U盘文件,my文本文件已经存在了:) • 复制文件到u盘 cd ~到用户目录下新建文件后复制到u盘 touch my2.txt cp my2 /mnt/usb

  27. 5.**卸载** • 保证所有的终端或窗口都不在usb目录下 • umount /dev/sdc1 • 点掉虚拟机菜单中的可移动设备,u盘就会转回被windows识别

  28. 进程管理 用户管理 文件与目录操作 磁盘管理 网络管理 帮助及其他命令 ctal+alt+fn exit reboot init 0 shutdown halt poweroff 3、常用命令

  29. 文件管理 目录操作:ls浏览目录;Mkdir 新建目录、rmdir删除目录;pwd显示当前目录、cd进入目录 cp复制文件、mv移动文件(重命名)、rm删除文件 touch 新建文件、ln 建文件链接 输出文件内容:cat、more可向后翻页、less前后翻页 部分输出文件内容: cut、head 查找文件:find、locate, grep(按文件内容与指定的字符串匹配查找文件,涉及正则表达式) chmod设置文件权限 其他:*sort、wc、comm、diff、clear清屏、tar 压缩包处理 进程管理 查看进程状态: ps 、top 进程控制:kill、bg、fg 用户管理 passwd设置密码、who查询当前登录用户 useradd、usermod、userdel groupadd、groupmod、groupdel su、sudo 换为root身份 磁盘管理 fdisk、mount 挂载磁盘 df、du,查看磁盘空间 网络管理 ifconfig ping、arp、ftp 帮助及其他 man,info cal、history 常用命令分类列表 参考资料:【1】Linux常用命令全集.chm

  30. 实验小问题 • 文件名有空格怎么办? • 用引号 cp “1 file”file2 • 用转义符\ cp 1\ file file3 • 怎么对付“死机”、错误命令的耗时执行、终端不响应 • 快捷键(只对前台进程起作用) ctrl+c强行终止前台进程,相当于windows的alt+F4 ctrl+z 将前台进程挂起到后台 • 进程查看及终止命令 ps 、kill

  31. 进程管理 进程与作业的启动方式: • Shell命令直接启动: • 前台启动:输入Shell命令后,直接按回车键启动前台作业; • 后台启动:输入Shell命令的末尾空一格加“&”符号,回车将启动任务并放于后台执行。 • 调度启动 • 是系统按用户要求的时间或方式执行特定的进程。可通过at调度、batch调度和cron调度实现。

  32. Linux 是一个多用户多任务系统。当处于某个控制终端上的用户按下了 Ctrl+C 键时(产生 SIGINT 信号),系统如何知道将该信号发送到哪个进程,从而不影响由其他终端上的用户运行的进程呢? Linux 内核通过维护会话和进程组管理多用户进程,如图所示。 一般而言,用户在某个终端上登录一个新会话就开始了。一个会话上有多个进程组。每个进程组由组中的领头进程标识(领头进程的进程标识符就是进程组的组标识符),同样一个会话也有一个领头进程,由它与一个终端相连,会话与控制终端是一对一的关系。 同一会话中只能有一个前台进程组,属于前台进程组的进程可从控制终端获得用户发来的键盘信号(ctrl+c; ctrl+z)。 • 守护进程,由于关闭了标准输出、标准输入、错误输出等描述符,一般都是终端无关的后台进程。

  33. ①【进程查看】——ps 最基本同时也是非常强大的进程查看命令。可以确定有哪些进程信息:运行的状态、是否结束、有没有僵死、哪些占用了过多的资源等。还可以监控不和屏幕键盘这些标准输入/输出设备进行通信的后台进程的工作情况。

  34. 参数说明 不同发行版命令参数的形式或有不同,以帮助为准。 带不带-,是否大小写都要注意

  35. 参数说明: • -A或-e 输出所有进程的信息 • -N 反向选中符合条件的进程,即不符合指定条件的进程被输出 • -a 输出除会话主进程外的当前控制台进程 • -d输出除会话主进程外的所有进程 • r 将输出数据的范围限制在正在运行的进程 • -C 命令名选择命令名为“命令名”的进程 • -u 用户名选择用户名为“用户名”的进程 • -p 进程号选择进程号为“进程号”的进程 • -F 以完全格式输出 • -M 输出安全数据信息 • s 显示信号格式 • v 显示可是内存模式 • -H 显示进程之间的继承关系 • c 显示真实的命令名 • e 显示环境信息 • -w 以加宽模式输出 • -H 以进程的模式显示线程

  36. 一次登录形成一个会话,一个会话占用一个控制台一次登录形成一个会话,一个会话占用一个控制台 • -A 输出所有进程信息 • -d输出除会话主进程外的所有进程 • -a 输出各会话(已登陆控制台)上除会话主进程外的控制台进程。 • a 所有控制台上的控制台进程,包括其他用户的进程。

  37. ps常用操作 • ps aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。 • ps –C 命令名:可查看某个执行中的命令名的进程号 • 例 • [root@localhost ~]# ps aux > ps001.txt[root@localhost ~]# more ps001.txt把所有进程显示输出到ps001.txt文件,然后再通过more分页查看。 • [root@localhost ~]# ps aux | grep tty

  38. ②【top】 和ps命令的基本作用是相同的,显示系统当前的进程及其状态,但是top是一个动态显示过程。 • 通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。 • 提供了实时的对系统处理器的状态监视。它可以显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用、内存使用和执行时间对任务进行排序 • 它的很多特性都可以通过交互式命令、或者在个人定制文件中进行设定。

  39. 显示结果排序的操作 • 缺省按照cpu使用情况排序 • m键:按照内存排序 • t键:运行时间进行排序 • u键,键入用户名,查看某一用户的CPU使用情况 • k键,输入PID,可终止某一进程 • q键,退出top

  40. ③【结束进程】——kill • CTRL+C 结束前台进程 问:为什么用该快捷键无法结束find / -name xml &命令的执行? • Kill命令 通过向进程发送信号控制进程,可用于结束后台进程。 • –信号 或 -s 信号 :发送信号到指定的进程 • -l 信号 :将信号数值翻译成信号名称 常用:kill -9 PID 无条件撤销进程 即 kill -KILL PID 执行kill时一定观察好PID号,以免误删系统进程。 kill执行是否成功,可用ps检查被结束进程号是否还存在即可。

  41. 后台运行的进程,或不响应的进程只有用kill结束。后台运行的进程,或不响应的进程只有用kill结束。 • 本例先运行一个错误命令,然后用kill结束进程。 • ps查进程ID • Kill -9 3465

  42. 关掉死机的桌面或终端 1)默认启动进入命令行控制台终端tty1 • who 查看登录的用户情况 • ps –ax |grep tty 查看各终端上运行的进程

  43. 2)启动图形界面 tty1中执行startx启动图形桌面(tty7) • Ctrl+alt+f2启动另一个控制台终端

  44. 3)强制结束控制台终端 • kill -9 进程号 • 结束终端tty1 的 bash的进程号 kil -9 2012 由tty1的startx启动的tty7也会结束 • 若tty1是默认的桌面窗口界面。若在tty2下用前面的命令关闭tty1的终端进程,因为默认参数是启动窗口界面,所以系统可能会又自动启动桌面。

  45. ④【前台、后台】——jobs、fg、bg CTRL+Z 挂起当前的前台作业 • jobs命令可查看后台作业清单 • 作业号 状态 命令名 • fg 作业号:将任务放回前台执行 • bg 作业号:将任务放到后台执行 • find / -name f*

  46. 用户管理 • 两个重要的账户配置文件 • /etc/passwd: 管理用户主要是通过修改此配置文件完成的!可用cat命令浏览一下passwd的内容: 用户名:口令:标识号:组标识号:用户全称:主目录:登录shell 一个账户信息占一行,7个段位用“:”分隔。实际上除了root用户、普通用户外,还有许多虚拟用户,即系统运行需要的一些特定用户,这些用户一般不具有登录能力。 • /etc/shadow:实际存放用户口令的文件

  47. Linux下没有很方便的查看用户的命令,一般都是通过显示用户配置文件查看用户,可将这些常用用户操作建立别名,并写入配置文件中(ubuntu:/etc/bash.bashrc)。 Linux下没有很方便的查看用户的命令,一般都是通过显示用户配置文件查看用户,可将这些常用用户操作建立别名,并写入配置文件中(ubuntu:/etc/bash.bashrc)。 • 查询系统中所有用户 • alias alluser=‘cut –d‘:’ -f1 /etc/passwd’ • 查看普通用户 • alias user=‘cut –d‘:’ -f1,6 /etc/passwd |grep /home’或‘grep /home /etc/passwd |cut –d‘:’ -f1,6 ’

  48. ①【用户切换】——su 如果用户名省略则切换到超级用户,切换用户可能需要提供目标用户的密码 • 参数说明: • -l 重新加载登陆时的启动脚本 • -m 保留当前环境变量,不重新加载脚本 • su –用户名:可在切换身份同时保留root环境变量,且切换到用户主目录下

  49. ②【临时切换身份】——sudo 与su不同,它是在单条命令中临时切换到其它用户运行,运行后立即返回当前用户。默认情况下是超级用户。运行命令前系统可能会要求用户输入目标用户密码。 • 参数说明: • -b 后台运行命令,运行后立即返回提示符,而不是等待其运行结束后返回提示符。 • -H 使用目标用户的主目录 • -u{用户名|用户ID} 指定目标用户,缺省为超级用户 • 不是所有用户都能执行sudo,一般新建的用户默认不在sudo组,需要编辑/etc/sudoers文件将用户加入,而修改该配置文件需要用su到root身份下操作。

  50. ③【修改用户密码】——passwd passwd [参数] [用户名] • -d 删除指定用户的密码 • -l 锁定指定的用户 • -u 解除指定用户的锁定 • -wn 设定n为密码过期警告的天数

More Related