《精通Linux C编程》1.3Linux系统的常用命令-笔记
[toc]
1.3.1了解Shell
- Linux常用命令的运行环境就是Shell,它是一种命令解析器,在用户和操作系统之间提供了一个交互接口。
- 用户在命令行输入命令,然后Shell对该命令进行解析并将它作为指令代码发送给操作系统。
- Linux操作系统中有许多可选的Shell,每种Shell提供不同的特性和功能,大多数Shell有自己的脚本语言。一般Linux默认Shell是Bash。
1.3.2进入Shell命令行界面
- Shell是终端下的用户操作界面。Linux终端也称为虚拟控制台。
- 显示器和键盘合称为终端,它们可以对系统进行控制,所以又称为控制台,一台计算机的输入输出设备就是一个物理控制台。
- 登录的用户民@登录的计算机名:~$,例如:
littlesec@xiaobiaozadeMacBook-Pro:~$
;$是普通用户的提示符,#是超级用户的提示符。
1.3.3文件操作命令
1.3.3.1 文件显示命令:ls [选项] [文件目录列表]
- 选项:
-a
列出目录下的所有文件,包括以“.”开头的隐含文件。-l
列出文件的详细信息。-m
横向输出文件名,并以“,”作为分隔符号。-r
对目录反向排序。-s
在每个文件名后输出该文件的大小(文件夹为0),单位为Byte。-t
以修改时间由近到远排序。-u
以文件上次被访问的时间排序。
- 文件类型:
-
常规文件d
目录,即文件夹m
共享存储器
- 例子:
- d表示文件,-表示文件夹
- 后面表示权限,共3个字符串,依次为文件所有者、组中其他人、系统中其他人的权限。
- 字符串内r表示读,w表示写,x表示执行,-表示无该权限。
1.3.3.2 查找文件:find [目录列表] [匹配标准]
1.3.3.3 显示文本文件内容:cat [选项] 文件列表
- 选项:
-n
在文件的每行前面显示行号。-u
输出不经过缓冲区。
- 例子:
1.3.3.4 查找文件内容:grep [选项] [查找模式] [文件名1, 文件名2, ...]
- 选项:
-E
每个模式作为一个扩展的正则表达式对待-F
每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式(默认)-b
在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量。-c
只显示匹配行的数量。-i
比较时不区分大小写。-n
在输出前加上匹配串所在的行号(首行行号为1)-v
只显示不包含匹配串的行-x
只显示整行严格匹配的行
- 例子:
1.3.3.5 排序命令:sort [选项] 文件
- sort命令的功能是对文件中的各行进行排序。可以被认为是一个强大的数据管理工具,用来管理内容类似的数据库记录的文件。
- sort命令逐行对文件中的内容进行排序,按照字符顺序排序,和英文字典同理。
- 选项:
-m
若给定文件已排序,合并文件;没排好序则原封不动输出。-c
检查给定文件是否已经排好序,若没排好则打印一个错误信息并以状态值1退出。-u
对排序后认为的相同的行只留其中一行。-d
按字典顺序排序,比较时仅字母、数字、空格和制表符有意义(默认)-f
将大小写字母同等对待。-I
忽略非打印字符。-M
作为月份比较:JAN < FEB < ... < DEC-r
逆序输出结果。-b
在每行中寻找排序关键字是忽略前导的空白(空格和制表符)
- 例子:
1.3.3.6 比较文件内容的命令
comm [-123] file1 file2
- 比较的是已有序的两个文件。
- 读取两个文件后生成三列输出:仅在file1中出现的行、仅在file2中出现的行、在两个文件中都存在的行。
- 选项的123是抑制相应的列输出,例如:
comm -12
只显示在两个文件中都存在的行;comm -23
只显示在第一个文件中出现而未在第二个文件中出现的行;comm -123
什么也不显示。
diff [选项] file1 file2
- 不要求文件内容有序。
- 若比较的是个目录,则比较该目录中的同名文件。
1.3.3.7 文件复制命令: cp [选项] 源 目标
- 可用于复制文件和目录(文件夹)。
- 选项:
-a
该选项通常在复制目录时使用。它保留链接、文件属性,并递归复制目录。-d
复制时保留链接。-f
删除已经存在的目标文件(覆盖)和不提示。-i
与f选项相反,在覆盖目标文件之前会提示要求用户确认。属于交互式复制。-p
除了复制文件内容外,把修改时间和访问权限也复制到新文件中。-l
不作复制,只是链接文件。
- 例子:
1.3.3.8 移动文件:mv [选项] 源 目标
- 选项:
-b
当遇到要覆盖其他文件或目录时,自动备份,备份文件名为原文件名加上-S参数指定的字符串,若未设置则加上“~”。-i
交互模式,同cp-f
用户对目标文件没有写权限时,mv会给出提示。本选项会使mv命令执行移动而不给出提示。-u
当要覆盖的文件或目录比源文件要新,则不覆盖目标文件。-S<字符串>
指定备份文件名后要加上的字符串。
1.3.3.9 文件内容统计命令:wc [选项] 文件列表
- 选项:
-c
统计字节数-l
统计行数(有回车换行符号才算一行)-w
统计字数(字是以空格字符区分开的最大字符串)
- 例子:
1.3.4目录及其操作命令
1.3.4.1 树形目录
- Linux系统以文件目录的方式来组织和管理系统中的所有文件。所谓文件目录就是将所有文件的说明信息采用树形结构组织起来,即常说的目录。
- 整个文件系统有一个“根”(
/
)和很多“杈”(directory),二者在Linux中被称为“目录”或“文件夹”。
1.3.4.2 工作目录、用户主目录与路径
- 逻辑上来说,用户登录到Linux后每时每刻都“处在”某个目录之中,此目录被称为工作目录或当前目录(Working Directory)。
- 工作目录用“
.
”表示,其父目录用“..
”表示。 - 路径是指从树形目录中的某个目录层次到某个文件的一条道路。路径的主要构成是目录名称,中间用“
/
”分开。 - 路径分为相对路径和绝对路径。绝对路径从根开始,相对路径从工作目录开始。
1.3.4.3 Linux系统主要目录说明
/bin
:该目录存放Linux的常用命令。/boot
:在这个目录下存放的是系统启动时要用到的程序。/dev
:该目录包含了Linux系统中使用的的所有外部设备,它实际上是访问这些外部设备的端口,可以访问这些外部设备与访问一个文件或一个目录没什么差别。/etc
:这个目录是Linux中最重要的目录之一。存放了系统管理时要用到的各种配置文件和子目录。例如网络配置文件、文件系统、X系统配置文件、设备配置信息、设置用户信息等。/sbin
:存放系统管理员的系统管理程序,是超级权限用户root的可执行命令存放地,普通用户无权限执行该目录下的命令。凡是目录sbin
中包含的都是root权限才能执行的命令。/home
:存放用户的主目录。如建立一个用户名为littlesec的用户,则该目录下就有对应的/home/littlesec
路径。/lib
:lib是库(library)英文缩写。这个目录是用来存放系统动态链接共享库的。几乎所有应用程序都会用到这个目录下的共享库。/lost+found
:该目录下在大多数情况都是空的。但当突然停电或者非正常关机后,在重启时有的文件就会找不到该存的地方,对于这些文件则存放在这个目录下。/media
:即插即用型存储设备的挂载点自动在这个目录下创建。/proc
:操作系统运行时,进程信息以及内核信息(如CPU、硬盘分区、内存信息等)存放在这里。可以在这个目录下获取系统信息,这些信息是在内存中由系统自己产生的。/tmp
:临时文件目录,有时用户运行程序的时候,会产生临时的文件,tmp目录存放这些文件。/usr
:是系统存放程序的目录,比如命令、帮助文件等,这是Linux系统中占用硬盘空间最大的目录。这个目录下有很多的文件和目录。当安装有一个Linux发行版官方提供的软件包时,大多安装在这里。如果有涉及服务器配置文件的,会把配置文件安装在/etc
目录中。/usr
目录下包括涉及字体目录/usr/share/fonts
,帮助目录/usr/share/man
或/usr/share/doc
,普通用户可执行文件目录/usr/bin
或/usr/local/bin
等;程序头文件存放在目录/usr/include
。/var
:该目录经常变动,其下有/var/log
,这是用来存放系统日志的目录。/var/lib
用来存放一些库文件,比如MySQL的库文件。
1.3.4.4 目录操作命令
- 创建目录
mkdir [选项] 目录
-m
在建立目录时按照模式指定设置目录权限。该目录权限分为:目录所有者的权限、组中其他人对目录的权限和系统中其他人对目录的权限。这个三个权限分别用三个数字之和表示:对目录的读权限是4、写权限是2、执行权限是1。例如700表示目录所有者有三个权限,其他人均无任何权限。-p
可以是一个路径名称。若路径中的某些目录尚不存在,加上此选项后系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
- 删除目录
rmdir [选项] 目录列表
- 一般来说要删除的目录必须为空目录,如果所给目录不空,系统会报告错误。
-p
在删除目录表指定的目录后,若父目录为空,则rmdir也删除父目录。状态信息显示什么被删除什么没被删除。
- 显示当前目录
pwd
- 改变当前工作目录
cd [directory]
- 链接文件的命令
ln [选项] 源文件或目录 [链接名]
- 改变文件或目录权限
chmod [who] [+|-|=] [mode] 文件名
- 操作对象who选项说明:
u
表示“用户(usser)”,即文件或目录的所有者g
表示“同组(group)用户”,即与文件属主有相同组ID的所有用户o
表示“其他(other)用户”a
表示“所有(所有)用户”,系统默认值
- 操作符号说明:
+
添加权限-
取消权限=
赋予给定权限并取消其他权限
- mode选项说明:
r
可读w
可写x
可执行u
与文件属主拥有一样的权限g
与文件属主同组用户拥有一样的权限o
与其他用户拥有一样的权限
- 例子:
chmod g+r, o+r example
,使同组和其他用户对文件example有读权限。 - 数字设定法:
chmod [mod] 文件名
:- 权限用八进制数字模式表示。
- 0表示没有权限,1表示可执行,2表示可写权限,4表示可读权限(实际即使3个二进制位从高位到低位分别是wrx的有效位)。
- 因此相加即看对应位是否有效,如5用二进制表示为101,所以表示权限w+x。
- 操作对象的顺序为(u)(g)(o),即所有者、同组用户、其他用户
- 例子:
chmod 756 text.txt
,执行后用ls -l text.txt
查看权限为:-rwxr-xrw-
(111'101'110)。 - 例子:
chmod ug+w, o-x text
属主和同组用户加写权限,其他用户删除执行权限。
- 操作对象who选项说明:
- 改变文件或目录的属主和属组
chown [选项] 用户或组 文件
1.3.5文件压缩命令
压缩文件的好处:1.减少存储空间。2.减少通过网络传输文件时的传输时间。
1.3.5.1 文件压缩gzip [选项] 压缩(解压缩)的文件名
- 选项:
-c
将输出写到标准输出上,并保留源文件。-d
将压缩文件解压。-l
对每个压缩文件显示下列字段:压缩文件大小、未压缩文件大小、压缩比、未压缩文件名字。-r
递归式地查找指定目录并压缩其中的所有文件或者是解压缩。-t
测试、检查压缩文件是否完整。-v
对每一个压缩和解压的文件,显示文件名和压缩比-num
用指定数字调整压缩速度。-1
或--fast
表示最快压缩方法(最低压缩比)。-9
或--best
表示最慢压缩方法(最高压缩比)。系统默认值为6.1.3.5.2 文件打包(多用于备份)
tar [主选项+辅选项] 文件或目录
1.3.6联机帮助命令
1.3.6.1 显示帮助手册man [选项] 命令名称
- 选项:
-a
显示所有的手册页,而不是只显示第一个。-f
只显示出命令的功能而不显示其中详细的说明文件。-w
不显示手册页,只显示将被格式化和显示文件所在位置。
1.3.6.2 查看命令帮助命令名称 -help
或info 命令名称
1.3.6.3 查看文件在文件系统中的位置whereis [选项] 命令名
(和man -w 命令名
类似)
1.3.7用户操作命令
1.3.7.1 切换用户命令su [选项] user
1.3.7.2 以系统管理员的身份执行命令sudo [选项] 命令
1.3.8关机和重启计算机命令
1.3.8.1 shutdown命令shutdown [选项] [时间] [警告信息]
- shutdown命令可以安全地关闭和重启Linux系统,它在关机前给系统上所有登录用户提示一条警告信息。该命令只能超级用户使用
- 选项:
-k
不是真正关机,而只是发出警告信息给所有用户。-r
关机后立即重启。-h
关机后不重启。-c
取消一个已经运行的shutdown
- 时间:
- 可以是一个精确时间,格式为
hh:mm
也可以是从现在开始的一个时间段,格式为
+minutes
1.3.8.2 最简单的关机命令
halt [选项]
- 可以是一个精确时间,格式为
实际上是调用
shutdown -h
命令。1.3.8.3 重启命令
reboot [选项]
《精通Linux C编程》1.3Linux系统的常用命令-笔记的更多相关文章
- Linux 系统巡检常用命令
Linux系统巡检常用命令 # uname -a # 查看内核/操作系统# cat /etc/centos-release # 查看centos操作系统版本# cat /proc/cpuinfo ...
- Linux常用命令 笔记
Linux常用命令 笔记 一.文件处理命令 1. ls命令:显示目录文件 -a 显示所有文件,包括隐藏文件.(all) ...
- linux基础学习之软件安装以及常用命令
linux基础学习之软件安装以及常用命令 调用中央仓库: yum install wget 然后下载nodejs: wget https://nodejs.org/dist/v10.14.2/node ...
- Linux 常用命令笔记
Linux 常用命令笔记 1. locate locate:用来定位文件的位置,如:locate a.txt 但是这个命令有延迟,也就是新建的文件不一定能搜索到,如果非要找到新建的文件可以使用 upd ...
- linux系统的常用命令
linux系统中常用的命令如下(以后经常补充): cd .. 返回上一级 cd use 进入use目录
- 用xshell操作linux系统的常用命令
(1)命令ls——列出文件 ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件 ls a* 列出当前目录下以字母a开头的所有文件 ls -l *.doc 给出当前目录下以. ...
- linux系统学习(常用命令)
今天调休,闲来无事,研究一下linux系统. Linux常用命令: 一:文件管理 ctrl+alt:在虚拟机与windows之间切换ctrl+g:进入linux输入模式 pwd:查看当前目录 ls:列 ...
- linux进程管理和系统状态常用命令简介
1 进程管理简介 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础 2 常用命令 2.1 pstree 2.1.1 功能描 ...
- LINUX系统一一常用命令
前言 LINUX UNIX Centos RedHat Ubuntu SHELL shell脚本 shell shell命令 类似windows系统的bat 批处理文件 里面都是脚本 CentOS6. ...
随机推荐
- Python 项目实践一(外星人入侵小游戏)第二篇
接着上次的继续学习. 一 创建一个设置类 每次给游戏添加新功能时,通常也将引入一些新设置.下面来编写一个名为settings的模块,其中包含一个名为Settings的类,用于将所有设置存储在一个地方, ...
- MVC(二)
一: 在新接触MVC的时候可以先使用VS建一个MVC项目(不是空项目哟),MVC特别人性化的建一个示例,展示了MVC项目的基本组成.如下: App_Data 数据库文件,需根据数据库变动而变更. Ap ...
- 唐纳德 高德纳给年轻人的建议 Donald Knuth - My advice to young people
From: Donald Knuth - My advice to young people (93/97) 译者: 李秋豪 原文 Donald Knuth (b. 1938), American c ...
- .NET 绝对路径的配置
有时候因为用IIS配置网站,会导致一些全局引用有路径问题无法引用到.今天就说一下,关于全局引用的绝对路径的配置,譬如,由于IIS配置的虚拟路径,一些CSS,JS的引用找不到,又或者自定义的一些跳转出现 ...
- docker学习笔记(一)
docker是一种容器技术,现在火的一塌糊涂,最近公司打算用docker统一开发.测试.预上线.上线环境,所以花了时间研究一下. docker是一种容器技术,之前是基于LXC容器,现在已经改成基于li ...
- 《程序设计语言——实践之路》【PDF】下载
程序设计语言--实践之路>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382240 内容简介 本书在美国大学已有使用了十余年,目前被欧 ...
- iOS 控制器的跳转、页面四个方向的跳转
指定滑动方向的跳转 CATransition *transition = [CATransition animation]; transition.duration = 0.3f; transitio ...
- C:数据结构与算法之单链表
单链表相对于顺序表比较难理解,但是比较实用,单链表的插入,删除不需要移动数据元素,只需要一个指针来寻找所需要的元素,还有一个大优点就是不浪费空间,当你想要增加一个结点可以申请(malloc())一个结 ...
- [C#]获得WindowsForm上所有特定类型的控件
本文为原创文章.源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称.作者及网址,谢谢! 开发工具:VS2017 语言:C# DotNet版本:.Net FrameWork 4.0及以 ...
- 学习Object.assign()
Object.assign()用于将所有可枚举的值从一个或多个源对象复制到目标对象.它将返回目标对象. 语法 Object.assign(target, ...source); var obj = { ...