Linux学习.docx
- 文档编号:11703417
- 上传时间:2023-03-30
- 格式:DOCX
- 页数:45
- 大小:51.74KB
Linux学习.docx
《Linux学习.docx》由会员分享,可在线阅读,更多相关《Linux学习.docx(45页珍藏版)》请在冰豆网上搜索。
Linux学习
Linux相关
1基础命令
大多数命令都有—help选项,用来显示命令的一些信息。
如果通过—help显示的信息超过了一屏,可通过管道用less(此处体现了Linux的幽默)分页程序进行分屏显示,如下所示:
ls–help|less
1.1安装和登录
login
shutdown
halt
reboot
mount
umount
chsh
1.2文件处理
1.2.1辨别文件类型
通过file命令,可以辨别指定的文件类型。
语法如下:
file[-beLvz][-f<名称文件>][-m<魔法数字文件>…][文件或者目录…]
参数说明如下:
-b:
列出辨识结果时,不显示文件名称。
-c:
详细显示命令执行过程,便于排错或者分析程序执行的情形。
-L:
直接显示符号连接所指向的文件的类别。
-v:
显示版本信息。
1.2.2查找文件
Linux里面关于查找文件或者目录的命令有几个,下面依次进行介绍。
locate
locate命令用于查找符合条件的文件,它会去保存文件与目录名称的数据库内进行查找。
适用于知道文件或者目录的全名。
语法如下:
locate[-d<数据库文件>][--version][文件名或者目录名…]
参数如下:
-d<数据库文件>或者—database=<数据库文件>:
设置locate指令使用的数据库。
Locate指令默认的数据库位于/var/lib/mlocate目录里面,文件名为mlocate.db。
whereis
whereis命令会在特定目录中查找符合条件的文件。
这些文件的属性应属于原始代码、二进制文件或者帮助文件。
语法如下:
whereis[-bfmsu][-B<目录>…][-M<目录>…][-S<目录>][文件…]
参数说明如下:
-b:
只查找二进制文件。
-B<目录>:
只在指定的目录下查找二进制文件。
-m:
只查找说明文件
-M<目录>:
只在指定的目录下查找说明文件。
-s:
只查找原始代码文件。
-S<目录>:
只在指定的目录下查找原始代码文件。
-f:
不显示文件名前的路径名称。
-u:
查找不包含指定类型的文件。
find
find指令用于查找符合条件的文件,任何位于参数之前的字符串都将被视为欲查找的目录。
find命令可以指定搜索目录,并在搜索目录中搜索特定文件,下面的实例指定搜索目录为根目录(/)和根目录下的所有目录,等于是搜索整个系统,搜索文件名(-name参数)为gzip,如果能够找到符合的文件,则显示出来。
find/-namegzip-print
1.2.3复制文件
cp
cp(copy)命令实现了文件的复制,此命令可对任何文件进行复制,如文本文件和二进制文件。
利用cp命令可对某个文件进行备份。
如下所示:
cpfilenamefilename1
1.2.4更改文件名
mv
mv命令可对文件重命名,该命令执行以后不会产生文件的副本。
如下所示:
mvfilenamefilename1
1.2.4查找字符串
grep
grep命令在一个或者多个文件中搜索是否包含某给定的字符串。
此命令只显示包含查找字符串的文件行,并不修改搜索出的文件。
如下所示:
grep‘sgring’filename
grep命令一般用来过滤向前结果,而避免显示太多不必要的信息,
1.2.5比较两个文件
diff
1.2.6显示文件的inode信息
ls–lih
使用上述命令可以显示文件的inode信息,其中i表示显示inode信息,h是便于用户阅读的方式显示。
mkdir
grep
dd
ls
diff
cat
ln
grep
grep命令可以在它的输入中搜索指定的字符串模式,输入中所有指定字符串模式的行组成grep命令的输出。
比如,要找出root用户是否在系统中登录,只要在passwd文件中搜索这一用户名称的字符串即可:
greproot/etc/passwd
1.3系统管理相关命令
1.3.1环境变量
Linux系统也有很多环境变量,这些变量可以直接用在Linux命令中。
我们可以直接使用$字符来引用当前的环境变量,比如:
echo$SHELL(返回结果:
/bin/bash)
常用的环境变量如下表所示:
变量名
说明
HOME=/home/username
此变量设置用户的主目录,如果用户的名字是guest,那么主目录一般就是”/home/guest”,root用户的主目录是”/root”
LOGNAME=username
登录的用户名
PATH=path
path表示shell查找输入命令的目录的列表。
path命令搜索路径,以冒号为分隔符,当前目录不在系统路径中。
SHELL=shell
SHELL表示当前采用的shell程序
COLUMNS
定义了命令编辑模式下可使用命令行的长度。
TMOUTSHELL
超时退出的时间,单位为秒。
若设为0则禁止SHELL超时退出。
为了获取当前的环境变量信息,我们可以使用下面的命令:
printenv
改变环境变量可以使用env命令:
envPATH=&PATH:
/home
从命令行上设置的环境变量都只是临时有效,如果希望每次都生效,可以把新目录加到与当前用户相关的PATH环境变量中。
1.3.2查看虚拟内存
Linux提供了vmstat命令来显示虚拟内存的使用情况,vmstat命令不但显示内存的使用情况,还将显示磁盘和CPU的使用情况,因为Linux系统会根据调度策略,将暂时不使用的内存数据保存到交换分区中,这样会导致磁盘读写操作的增加,而磁盘读写速度与CPU、内存之间存在差异,在磁盘读写时,CPU利用率将下降。
Vmstat中显示信息的具体情况如下所示:
procs:
r:
等待获得CPU时间以运行的进程数。
b:
处于不可中断休眠的进程数。
memory:
swpd:
已用虚拟内存大小。
free:
空闲内存大小。
buff:
用作磁盘缓冲的内存大小。
cache:
用作缓存的内存大小。
swap:
si:
每秒从磁盘换入的内存大小。
so:
每秒从内存写入的磁盘大小。
io:
bi:
每秒从磁盘读取的块数,该数值可以用来表示读磁盘操作的情况。
bo:
每秒写入磁盘的块数,该数值可以用来表示写磁盘操作的情况。
system:
in:
每秒中断发生次数。
cs:
每秒上下文切换的次数。
cpu:
us:
用户程序所占CPU的时间比例,该数值表示了用户进程的繁忙程度。
sy:
运行内核代码所占的时间比例。
id:
CPU空闲时间所占的时间比例。
wa:
用于等待I/O操作所占的时间比例。
st:
抢占虚拟机运行所占的时间比例。
使用vmstat命令可以获得比top命令更详细的系统运行信息。
df
top
free
quota
at
lp
adduser
groupadd
kill
crontab
tar
unzip
gunzip
last
1.4网络操作命令
ifconfig
ip
ping
netstat
telnet
ftp
route
rlogin
rcp
finger
nslookup
1.5系统安全相关命令
passwd
su
umask
chgrp
chmod
chown
chattr
sudo
pswho
1.6特殊字符
特殊字符对于Shell而言具有特殊的含义,如下表所示:
符号
意义
空白符(回车键、空格键、Tab键)
回车键用于结束命令行并开始命令的执行。
空格键和Tab键用作命令行上的分隔符,经常被称作空白符。
反斜杠(\)
在特殊字符前面加反斜杠(\),即可将特殊字符转义。
要将连续的两个或者多个特殊字符转义,须在每个字符前面加一个反斜杠,如要转义引用**,则要输入\*\*。
若要转义反斜杠本身,在其前面加一个反斜杠即可\\。
单引号(‘’)
另一种将特殊字符转义的方法是使用单引号将它们引起来(如’**’)。
也可将特殊字符和普通字符用单引号一起引起来,如’Thisisaspecialcharacter:
>’,其中普通字符仍将被视为普通字符,而特殊字符将被解释为普通字符。
\n
换行符。
1.7标准输入和输出
默认情况下,Shell将把命令的执行结果标准输出到屏幕,Shell也可以将输出重定向到其他文件。
1.7.1作文文件的屏幕
Linux有一种文件类型,即设备文件。
设备文件驻留在Linux文件结构中,一般位于/dev目录中,用来代表外围设备,如终端模拟器窗口、显示屏、打印机和硬盘驱动器。
在who命令显示的内容中,登录名后的设备名即为屏幕的文件名。
例如,如果who工具显示的设备为pts/4,那么屏幕对应的路径名为/dev/pts/4。
每个打开的窗口都有对应的设备名。
在这些窗口中运行tty命令即可得到它们各自的名称。
1.7.2重定向
重定向是指改变shell标准输入来源和标准输出去向的各种方式。
通过重定向符号>可以将shell命令的输出重定向到指定的文件而不再是屏幕,重定向输出的命令格式如下所示:
command[arguments]>filename
使用cat和重定向输出符号可以将多个文件一个接一个地连接成一个较大的文件。
使用追加输出符号>>可以向某个文件末尾添加新的内容,并且不改变原来已有内容。
该符号为将两个文件合并到其中一个文件提供了一种比较方便的方法。
与重定向标准输出一样,也可以重定向标准输入。
通过重定向标准输入符号<可以使shell将命令的输入重定向为来自指定的文件而不再是键盘,重定向输入的命令格式如下所示:
command[arguments] 1.7.3/dev/null 设备/dev/null是一个数据接收器,通常被称为位桶,可以将不想看到的或者不想保存的数据重定向到/dev/null,这样输出的数据将不留痕迹的消失。 当从/dev/null中读取数据时,将得到一个空字符串,把一个文件变为一个空文件的简单方法就是把/dev/null重定向到此文件,如下所示: cat/dev/nullmyfile 1.7.4管道 Shell使用管道将一个命令的输出直接连接到另一个命令的输入。 管道的功能实现类似于下面的过程: 首先将一个命令的标准输出重定向到一个文件,然后将该文件作为另一个命令的标准输入。 管道的符号为一条竖线|,命令语法格式如下: commanda[arguments]|commandb[arguments] 管道在某个时刻只能传递单向数据,使用管道进行进程间通信时,进程在发送数据的同时,不可能接收到从管道传输过来的数据,即管道是工作在半双工模式下的。 1.8查看进程CPU等信息 top–p进程号 2主要目录清单 目录 说明 / 根目录,它是所有文件的祖先。 /bin 基本命令的二进制可执行命令,包括启动系统和在单用户模式下运行所需的文件。 /boot 引导系统加载的静态文件,包含引导系统启动的大多数文件。 /dev 设备文件,包含代表所有外围设备的文件,比如磁盘驱动器、终端、打印机。 /etc 系统管理和配置文件,包含管理文件、配置文件和一些系统文件,其中最重要的是/etc/passwd目录,它包含使用系统的所有用户列表。 /etc/X11 对XWindows系统的计算机配置。 /etc/opt 包含/opt目录下附加软件包的配置文件。 /home 用户起始目录的基点,一般每个用户主目录都是/home目录的子目录。 有些系统的用户主目录不在/home目录下,而是在/inhouse或者/clients目录下。 /lib 共享库和内核模块。 /lib/modules 可加载内核模块。 /opt 附加软件包。 /proc 虚拟文件系统的内核和进程信息,该目录是伪目录,系统将当前运行的进程映射为文件,通过修改该目录下文件的值可以完成对内核运行参数的修改。 /mnt 临时文件系统挂载点。 /root root用户的主目录,该目录下存放启动过程中需要的所有文件,其中包含Linux内核和引导配置文件。 /sbin 系统管理命令,用于系统管理的命令都存储在/sbin或者/usr/sbin中。 其中,/sbin中包含引导进程所需的工具,/usr/sbin包含系统启动运行后使用的工具。 /tmp 公用的临时文件存储点。 /usr 第二主文件层次,包含存放系统所需信息的子目录,这些子目录内的文件不经常改动,可由多个系统共享。 /usr/bin 大多数用户命令,包含标准Linux命令,对应的二进制文件在单用户模式下不需要。 /user/X11 X-windows系统文件。 /user/adm 系统管理,数据文件。 /usr/bin 其他的可执行命令。 /usr/lib 库和软件包的配置文件。 /usr/local/bin 本地增加的命令。 /usr/local/lib 本地增加的库。 /usr/local/src 本地命令的源文件 /usr/man 系统联机手册页 /usr/src/linux Linux内核源程序文件 /var 某些大文件的溢出区,该目录存放经常变换的信息,用于log日志、邮件、spool文件等的存储。 2.1口令文件 口令文件是系统的主要文件之一,口令文件的内容包含: 所有用户的登录名的清单;为所有用户指定的起始目录的具体位置;在登录时使用的shell程序的名称。 口令文件还用来保存用户口令;给每个用户提供系统识别号;当一组用户需要为联合项目协同工作时,将这些用户编成组。 口令文件本身是一个允许每个用户阅读的普通文本文件,它保存在下列文件中: /etc/passwd。 口令文件中的每一行是一个用户登录名的所有有关信息的记录。 每一条记录使用冒号(: )分隔成7个字段,具体格式如下: name: password: uid: gid: comment: home: shell 每个字段的用途如下: name: 此字段包含用户登录名,这是用户登录时必须输入的名称。 password: 这是用户的口令。 因为口令加了密,所以这里可能不认识我们的口令。 如果这一字段是空的,表示对该用户无需口令。 uid: 这是系统用来分配用户识别号的字段。 一旦用户登录后,系统将用uid而不是登录名来查找用户。 gid: 有时候,一批用户需要在一个组内共同完成同一个项目。 在这种情况下,允许他们共同访问一组特定的目录和文件是很有用的。 可以在这个字段内给小组的全体成员分配同一个组别号(gid)来实现。 comment: 这是注释字段。 常用来保存用户的真实姓名和个人细节。 home: 这一字段用来保存用户的起始目录的绝对路径名。 当用户登录时,系统从这一字段取得用户起始目录路径名。 shell: 用户登录成功以后,要执行的命令的绝对路径名就放在这一字段。 这可以是任何命令。 对普通用户来讲,这将是shell的路径名。 如果此字段没有给出路径名,它的默认值是/bin/sh。 3常用使用方法 3.1如何找到指定命令的绝对路径名,比如ls、pwd等。 大多数可执行的用户命令存放在/bin和/usr/bin两个目录下。 用ls命令搜索这两个目录就能得到这两个命令的路径名: /bin/ls和/bin/pwd。 在大多数系统中,实际还提供了另一条命令。 它使我们能找出任何能执行的命令的绝对路径名。 它的名称是which,用这条命令可以取得同样的结果: whichls,返回结果为: /bin/ls。 另外一个比较有用的命令是: whereis,主要用于寻找命令、源代码、帮助信息所在的位置。 每一个Linux命令都有它存储的相应位置,whereis会从Linux提供的标准存放位置找到这些命令。 例如: whereispwd,返回结果为: /bin/pwd。 3.2tar、zip文档的处理 3.2.1tar tar最初是为了实现磁带归档,把文件保存在磁带上,现在这个命令主要用于实现文件和目录的备份归档和还原。 它的语法如下: tar[OPTION]…[FILE]…。 该命令主要由主操作方式和辅助选项组成。 其中主选项如下所示: c: 用户创建新的档案文件。 x: 用于从档案文件中释放文件。 辅助选项如下: f: 使用档案文件或者设备,这个选项通常是必选的。 v: 显示tar处理的文件信息。 z: 使用gzip实现tar的过滤处理,实现文档的压缩和解压缩。 加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。 j: 使用bzip2实现tar的过滤处理,实现文档的压缩和解压缩。 加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。 3.2.2gzip gzip是Linux系统经常使用的压缩和解压缩工具,它的语法如下: gzip[-cdfhlLnNtrvV19][-Ssuffix][file…] 其中选项定义如下: -c: 直接压缩到标准输出,并保留原文件。 -d: 对文件压缩。 -r: 对指定目录进行递归处理压缩,或者递归压缩到指定目录。 -t: 测试,检查压缩文件的完整性。 -v: 对每一个压缩和解压缩的文件显示文件名和压缩比。 3.2.3常用压缩文件的解压缩方法(.gz,.tar.gz等) 在Linux中一般会遇到.gz、.tar.gz等众多的压缩文件名,示例如下: (1).tar.bz2 使用以下命令进行解压缩: tar–xjffile.tar.bz2 这种文件是由以下命令生成的: tar–cjffile.tar.bz2filename (2).gz 使用如下命令进行解压缩: gunzipfile.gz 这种文件是由以下命令生成的: gzip–dfile.gz (3).tgz或者.tar.gz 使用如下命令进行解压缩: tar–xzffile.tgz tar–xzffile.tar.gz (4).bz2 使用如下命令进行解压缩: bunzip2file.bz2 这种文件是由以下命令生成的: bzip2–dfile.bz2 (5).Z 使用如下命令进行解压缩: uncompressfile.Z (6).tar.Z 使用如下命令进行解压缩: tar–xZffile.tar.Z (7).zip 使用如下命令进行解压缩: unzipfile.zip 这种文件是由以下命令生成的: zipfile.zipfilename 3.3RPM软件包 Linux的程序安装不同于Windows,它主要是借助于RPM软件管理器实现软件的安装。 很多Linux的发行版本都采用RPM管理安装、更新和卸载软件。 RPM命令提供了众多的命令参数选项来实现RPM的安装、更新、卸载和检验等操作。 3.3.1RPM软件包的安装 RPM软件包的安装主要通过rpm命令使用-i参数来实现安装。 尽管rpm命令同时支持多个rpm软件包,大多数情况下我们更愿意单独安装每个软件包。 它的语法如下: rpm–i(or--install)optionsfile1.rmp 其中参数定义如下: -h: 安装时输出hash标记。 --test: 测试安装。 --percent: 安装时显示安装百分比进度。 --excludedocs: 对于软件包中的文档文件不予安装。 --includedocs: 安装文档。 --replacepkgs: 替换已经安装的软件包。 --replacefiles: 替换属于其他软件包的文件。 --force: 忽略软件包及文件的冲突,强制安装。 --noscripts: 不执行安装脚本。 --prefix 将软件包安装到由 rmp软件包的安装可以使用程序rpm来完成,执行下面的命令: rpm–ifile.rpm 安装过程中可能出现下面的警告或者提示: …conflictwith…可能是要安装的包里有一些文件可能会覆盖现有的文件,缺省时这样的情况下是无法正确安装的,可以使用如下命令强制安装即可: rpm–force–ifile.rpm …isneededby… …isnotinstalled…需要的一些软件没有安装,可以使用如下命令来忽律此信息: rpm–nodeps–ifile.rpm 也就是说,rpm–i–force–nodeps可以忽略所有依赖关系和文件问题,可以把包安装上去,但这种强制安装的软件包不能保证完全发挥功能。 3.3.2查询安装包的信息 rpm命令还可以用来查看软件包是否安装,了解当前的安装版本。 语法如下: rpm–q(or--query)options 3.3.3卸载软件包 语法如下: rpm–e(or--erase)optionspkg1 命令选项如下: --test: 只执行删除的测试。 使用命令rpm–e包名,包名可以包含版本号等信息,但是不可以有后缀.rpm,比如卸载proftpd-1.2.8-1,可以使用下列格式: rpm–eproftpd-1.2.8-1 rpm–eproftpd-1.2.8 rpm–eproftpd- rpm–eproftpd 不可以使用下列格式: rpm–eproftpd-1.2.8-1.i386.rpm rpm–eproftpd-1.2.8-1.i386 rpm–eproftpd-1.2 rpm–eproftpd-1 有时会出现一些错误或者警告: …isneededby…,这说明这个软件被其他软件需要,不能随便卸载,可以使用如下命令强制卸载: rpm–e–nodeps强制卸载 3.3.4升级软件包 采用升级的方法安装软件包,带来的最大好处是能够保留以前使用版本中的配置文件。 语法如下: rpm–U(or--upgrade)optionsfile1.rpm 3.3.5检验软件包的完整性 在网络传输的过程中,软件包可能会因为网络的原因造成文件损坏。 使用检验可以验证软件的完整性。 语法如下: rpm–V(or–verify,or-y)options 主要选项如下: -p 将文件和新下载的RPM文件进行比较。 -f 校验 -aVerify: 检验所有的软件包。 -g 检验所有属于组 如果我们发现自己的RPM资料数据库有问题,可以重新构建资料库或者新建一个全新RPM资料库。 参数如下: --rebuilddb: 重建RPM资料库。 --initdb: 创建一个新的RPM资料库。 3.4开放源代码的编译使用 Linux是一个倡导自由、开放的操作系统,操作系统内核的代码是开放的,在它上面运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 学习