当前位置: 首页 > 编程日记 > 正文

Linux命令行与命令

Linux命令行与命令

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

 

Linux的命令是很重要的工具,也往往是初学者最大的瓶颈。有朋友用了很长时间的Linux图形界面,基本不使用命令行输入命令执行,所以装的Linux最终成了摆设。这里总结一些命令行下常使用的命令,希望能有用。

 

什么是命令

我们通常所说的Linux命令行是运行在终端(terminal)的shell (阅读Linux架构以了解什么是shell以及它在Linux系统中的位置)

所谓的命令,是我们在命令行输入的一串字符。shell负责理解并执行这些字符串。shell命令可以分为如下几类 1)可执行文件(executable file) 2)shell内建函数(built-in function) 3) 别名(alias)。可执行文件为经过编译的程序文件,我们输入这些文件的路径来让shell运行,比如$/bin/ls。有些可执行文件被放在特殊的目录(默认路径)下面,从而使得操作系统可以通过文件名找到,而不用总是输入该文件的绝对路径(absolute path)。比如说$ls(实际上,shell自动帮我们补齐ls的路径)。随后,这些可执行文件中包含的程序运行,并成为进程。shell的内建函数与上面类似,只是其对应的程序被保存在shell的内部。别名是指我们给以上两种命令起一个简称,以便减少输入的工作量。

我们可以通过type命令来了解命令的类型:

$type ls

$type cd

 

命令的构成

当我们在命令行输入命令的时候,往往由一下方式构成:

$ls -l /home

整个一行命令由空格分为三个部分(注意, $是自动出现的提示符,有时还会在此之前出现计算机名)。第一个为命令的名字ls,这个命令ls的功能是列出目录中所有文件,第二个-l是关键字,它告诉ls要列出每个文件的详细信息,第三个/home为参数,表示我所要列出的目录是/home。实际上关键字是一种特殊的参数,大部分情况下用来开关程序的某些特殊功能 (用来选择做出的是拿铁咖啡还是黑咖啡)。而参数是用来传递给程序的一般的变量。ls经过处理之后,将在终端输出/home下面包含的各个文件名 (该文件系统见:http://www.cnblogs.com/vamei/archive/2012/09/09/2676792.html):

vamei another

关键字和参数可以不止有一个,比如:

$ls -l -a /home /bin

$ls -la /home /bin

(上面两个命令等价)

列出/home和/bin目录下的文件,-a表示列出全部文件(即使是隐藏文件也要列出), -l表示列出每个文件的详细信息。

(如果命令没有被放在默认路径中,你也可以输入绝对路径来执行)

 

回忆Linux文件管理背景知识,我们知道,每个文件能否被执行要根据用户所拥有的权限。命令实际上是可执行文件,也是如此。系统相关的命令,或者某个命令中的定义的操作,往往会要求超级用户root的身份才能使用。如果你是用户vamei,那么你就无法使用这些命令。但以root的身份登录是个糟糕的想法。为了解决这一矛盾,你可以以vamei的身份登录,但在执行命令之前加上sudo, 以便临时以root的身份执行某条命令。比如$sudo ls .

 

对于大多数的shell来说,都有命令补齐的功能。当你在$的后面输入命令的一部分时,比如rmdir的rmd的时候,按Tab键,Linux会帮你打剩下的字符,补充成为rmdir。不止是命令,如果你输入的是文件名,Linux也可以帮你补齐。比如说, $ls a.txt。当你输入到$ls a.t的时候,按Tab键,Linux会帮你补齐该文件名,成为$ls a.txt。当然,这样做的前提是你输入到rmd的时候,默认路径下能和它相符的命令只有一个rmdir了。如果有多个相符的命令,连按两下Tab,Linux会显示所有的相符的命令。

 

多使用命令的好处

实际上,许多命令的功能都可以通过图形化界面来实现,学习这些命令的意义在哪里呢?

在UNIX发育的大部分历史上,用户都是通过shell来工作的。大部分命令都已经经过了几十年的发展和改良,功能强大,性能稳定。Linux继承自UNIX,自然也是如此。此外Linux的图形化界面并不好,并不是所有的命令都有对应的图形按钮。更别说在图形化界面崩溃的情况下,你就要靠shell输入命令来恢复计算机了。

命令本身是一个函数 (function),是一个小的功能模块。当我们想要让计算机做很复杂的事情 (比如说: 在晚上12:00下载某个页面的所有链接,然后复制到移动硬盘)的时候,不断地去按各个图形化按钮并不是个很聪明的事情 (1. 要点很多下,2. 必须等到12:00)。我们通常是通过shell编程来实现这样一些复杂任务,这时,就可以把命令作为函数,嵌入到我们的shell程序中, 从而让不同命令协同工作 (比如使用date来查询时间,再根据时间来使用wget下载等等)。

 

如何了解一个陌生的命令?

有一些命令可以用来了解某个命令本身的情况,比如这个命令的绝对路径。

$which ls

which 在默认路径中搜索命令,返回该命令的绝对路径。

$whereis ls

whereis 在相对比较大的范围搜索命令,返回该命令的绝对路径

$whatis ls

whatis 用很简短的一句话来介绍命令。

$man ls

man 查询简明的帮助手册。对于大部分的Linux自带的命令来说,当作者编写它的时候,都会带有一个帮助文档,告诉用户怎么使用这个命令。

(man可以说是我们了解Linux最好的百科全书,它不但可以告诉你Linux自带的命令的功能,还可以查询Linux的系统文件和系统调用。如果想要深入学习Linux,就必须要懂得如何用man来查询相关文档。)

$info ls

info 查询更详细的帮助信息

 

此外,在shell中,你还可以用向上箭头来查看之前输入运行的命令。

你也可以用

$history

来查询之前在命令行的操作。

 

当一个命令运行时,你中途想要停止它时,可以用Ctrl + c。如果你只是想暂时停止,使用Ctrl + z。具体机制与信号(signal)有关,我们将在以后介绍

 

总结

命令行: 使用shell解释输入的字符串,以运行程序

type

sudo

which, whereis, whatis, man, info

使用Tab自动补齐,向上箭头查询历史,history

 Ctrl + c, Ctrl + z

欢迎阅读Linux的概念与体系系列文章

转载于:https://www.cnblogs.com/ching2009/p/5097789.html

相关文章:

Java学习总结:58(Collections工具类)

Collections工具类 Java提供了一个集合的工具类——Collections&#xff0c;这个工具类可以实现List、Set、Map集合的操作。Collections类的常用方法如下&#xff1a; No.方法类型描述1public static < T > boolean addAll(Collection<? super T> c,T…elements…

2022-2028年中国醋酸行业投资分析及前景预测报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国醋酸行业市场行业相关概述、中国醋酸行业市场行业运行环境、分析了中国醋酸行业市场行业的…

[转] linux系统文件流、文件描述符与进程间关系详解

http://blog.sina.com.cn/s/blog_67b74aea01018ycx.html linux&#xff08;unix&#xff09;进程与文件的关系错综复杂&#xff0c;本教程试图详细的阐述这个问题。包括&#xff1a;1、linux多/单进程与多/单文件对于文件流和描述符在使用时的关联情况及一些需要注意的问题。2、…

VMware虚拟机 取消 简易安装

我的VMware更新到12.0版本了&#xff0c;突然有了个简易安装操作系统&#xff0c;不得不承认这个功能很省事&#xff0c;如果没有特殊要求&#xff0c;这样安装虚拟机既快速有稳定。 但是专业人士总是要专门的服务&#xff0c;追求自动化&#xff0c;往往忽略一些细节上的东西。…

UE5蓝图初学课程 Unreal Engine 5: Blueprints for Beginners

时长:6h 51m |视频:. MP4 1280720&#xff0c;30 fps(r) |音频:AAC&#xff0c;44100 Hz&#xff0c;2ch |大小解压后:4.4 GB 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 没有编码的游戏开发 开发一个高质量的游戏&#xff0c;不需要写…

SQL基础学习总结:1(数据库)

数据库 我们通常将可以将大量数据保存下来&#xff0c;通过计算机加工而成的可以进行高效访问的数据集合称为数据库&#xff0c;简称&#xff1a;DB。 而用来管理数据库的计算机系统则称之为数据库管理系统&#xff0c;简称&#xff1a;DBMS。一般情况下&#xff0c;系统的使用…

MyEclipse安装Freemarker插件

以下是安装Freemarker插件并设置MyEclipse使用该插件的步骤&#xff1a;1、下载Freemarker插件 打开http://sourceforge.net/projects/freemarker-ide/files/ 2、解压&#xff0c;将hudson.freemarker_ide_0.9.14文件夹放入eclipse下的plugins文件夹。 发现hudson.freemarker_…

单例模式为什么使用volatile,以及双重检查&单例模式的一些思考

也就是第一个if(singleton==null),这个是为了代码提高代码执行效率,由于单例模式只要一次创建实例即可,所以当创建了一个实例之后,再次调用getInstance方法就不必要进入同步代码块,不用竞争锁。直接返回前面创建的实例即可。

2022-2028年中国IT外包市场投资分析及前景预测报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国IT外包行业市场行业相关概述、中国IT外包行业市场行业运行环境、分析了中国IT外包行业市场…

iOS,Android,WP, .NET通用AES加密算法

这两天为移动App开发API&#xff0c;结果实现加密验证时碰到一大坑。这里不得不吐槽下又臭又硬的iOS&#xff0c;Windows Server无法解密出正确的结果&#xff0c;Android则可以&#xff0c;后来使用了通用的AES256加密算法才最终搞定。 搞服务器端小伙伴没有接触过iOS&#xf…

【Linux】Linux下的硬链接与符号链接

Linux的初学者常常混淆Linux中的硬链接&#xff08;hard link&#xff09;与符号链接&#xff08;symbol link&#xff09;的概念&#xff0c;分不清楚它们的区别。因此&#xff0c;本文将向读者全面介绍硬链接与符号链接&#xff0c;给予读者以全面的认识。 1.Linux下的文件系…

Unity + SQL数据库创建管理玩家排行榜学习教程

Unity SQL Databases Player Management Leaderboards More! Unity SQL数据库玩家管理排行榜更多&#xff01; MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&#xff0c;2 Ch 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&…

SQL基础学习总结:2(表的创建、删除、更新和名称修改)

表的创建、删除、更新和名称修改 登录MySQL(mysql -u root -p语句) 步骤&#xff1a; 1.首先得先使用mysql -u root -p语句登录数据库&#xff1b; 2.在"Enter password:"后面输入你设置的密码&#xff0c;然后就登录到MySQL可以进行数据库得操作了。 如下图&#…

需要抛出异常的情况

1、调用一个抛出已检查异常的方法。例如FileInputStream构造器。 2、程序运行中发现错误&#xff0c;并且利用throw语句抛出一个已检查异常。 3、程序出现错误。例如a[-1]0会抛出一个ArrayIndexOutOfBoundsException异常。 4、Java虚拟机和运行时库出现的内部错误。 对于可能会…

2022-2028年中国HDPE膜行业市场研究及投资发展分析报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国HDPE膜行业市场行业相关概述、中国HDPE膜行业市场行业运行环境、分析了中国HDPE膜行业市场…

linux+postfix+extmail+dovecot搭建邮件服务器

一、我们可以重新搭建服务器&#xff0c;也可以利用我前面的搭建方法编译安装&#xff0c;地址&#xff1a;http://wangzan18.blog.51cto.com/8021085/1605480&#xff0c;本次我们使用yum的方法来安装httpd和mysql&#xff0c;我的搭建环境还是我们的CentOS6.6 x86-64位mini版…

2009年3月

1、http://www.west-wind.com/Weblog/posts/509108.aspx Client Templating with jQuery http://jtemplates.tpython.com/ jTemplates is a template engine for JavaScript. 2、http://www.cnblogs.com/QLeelulu/archive/2008/11/27/1342722.html jQuery的模板与数据绑定插件…

UE4创建第一人称射击游戏学习教程

Unreal Engine 4: Create Your Own First-Person Shooter MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&#xff0c;2 Ch 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; |时长:38节课(9h 56m) |大小解压后:6.8 GB 学…

SQL基础学习总结:3(select语句基础算术运算符比较运算符)

select语句基础 列的查询 从表中选取数据时需要使用select语句&#xff0c;通过select语句查询并选取出必要数据的过程称为匹配查询或查询。 语法结构如下&#xff1a; select <列名1>,<列名2>,<列名3>... from <表名>;该select语句包含了select和f…

Linux——Linux概念架构的理解

摘要 Linux kernel成功的两个原因&#xff1a;&#xff08;1&#xff09;灵活的架构设计使得大量的志愿开发者能够很容易加入到开发过程中&#xff1b;&#xff08;2&#xff09;每个子系统&#xff08;尤其是那些需要改进的&#xff09;都具备良好的可扩展性。正是这两个原因使…

2022-2028年中国GPS导航行业投资分析及前景预测报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国GPS导航行业市场行业相关概述、中国GPS导航行业市场行业运行环境、分析了中国GPS导航行业市…

Geohash的精度问题

网上的关于Geohash的精度问题的说明都不够完整&#xff0c;做了一下补充&#xff0c;可以参见本文表格。 具体的计算方法&#xff1a;Latitude的范围是&#xff1a;-90 到 90Longitude的范围&#xff1a;-180 到 180地球参考球体的周长&#xff1a;40075016.68米geohash长度Lat…

在CentOS上把MySQL从5.5升级到5.6

在CentOS上把MySQL从5.5升级到5.6 摘要&#xff1a;本文记录了在CentOS 6.3上&#xff0c;把MySQL从5.5.28升级到5.6.19的过程。 1. 概述 在我做的一个项目中&#xff0c;最近我对生产服务器上的一系列系统软件进行了升级&#xff0c;包括Git、Nginx、MySQL和PHP。这篇文章讲的…

在3ds Max和Vray中创建赛博朋克圣诞老人室内场景

我叫奥马尔萨米罗什迪&#xff0c;建筑师、室内设计师、助理讲师、摄影师和3d艺术家。2019年获得建筑学硕士学位。我曾为多家建筑事务所和顾问工作&#xff0c;甚至建立了自己的建筑工作室。我有很长的大学教学生涯&#xff0c;从2013年开始&#xff1b;我曾在知名大学教授设计…

Java之网络通信框架mina

mina是一个基于java nio的网络通信框架。主要屏蔽了网络通信的一些细节,对Socket进行封装,并且是NIO的一个实现架构,可以帮助我们快速的开发网络通信,常用于游戏的开发、中间件服务端的程序中。Apache的Mina(Multipurpose Infrastructure Networked Applications)是一个网络应用框架,可以帮助用户开发高性能和高扩展性的网络应用程序;它提供了一个抽象的、事件驱动的异步API,使。

GIT常用命令大全

git config --global color.ui true //让git显示颜色//忽略特殊文件//.gitignore文件 # Windows: Thumbs.db*.egg*.egg-infodist//把该文件也提交到git$ git add -f App.class //强制添加被忽略的特殊文件。

SQL基础学习总结:5(HAVING子句的使用ORDER BY排序子句的使用)

为聚合结果指定条件 HAVING子句 HAVING子句可以让我们筛选分组之后的各种数据&#xff0c;其语法结构如下&#xff1a; SELECT <列名1>,<列名2>,<列名3> FROM <表名> GROUP BY <列名1>,<列名2>,<列名3> HAVING <分组结果对应的…

【转】android错误 aapt.exe已停止工作的解决方法

http://www.jb51.net/article/57420.htm 在使用eclipse进行安卓java的编程的时候&#xff0c;有时候我们会遇到这样的问题&#xff1a;那就是无故弹出aapt.exe停止工作的提示&#xff0c;虽然程序不会崩溃&#xff0c;但是这个提示经常弹出很是烦人。今天&#xff0c;小编就来教…

2022-2028年中国FEP薄膜行业市场发展规模及市场分析预测报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国FEP薄膜行业市场行业相关概述、中国FEP薄膜行业市场行业运行环境、分析了中国FEP薄膜行业市…

Android-----View绘制流程以及invalidate()等相关方法分析 .

引自&#xff1a;http://blog.csdn.net/qinjuning/article/details/7110211 前言&#xff1a; 本文是我读《Android内核剖析》第13章----View工作原理总结而成的&#xff0c;在此膜拜下作者 。同时真挚地向渴望了解 Android 框架层的网友&#xff0c;推荐这本书&#xff0c;希望…