Linux命令行基础

本文内容根据Linux Command Line Basics & Excaples进行改编

Linux命令行简要介绍

AT&T公司于20世纪70年代发布了UNIX系统。经过多年的发展,Unix不再是某一个具体操作系统的名称,而是对遵循Unix规范、设计和哲学的一类操作系统的统称。还有一些操作系统,它们遵循Unix设计、有着与Unix类似的规范和标准,这些操作系统被称为类Unix系统(Unix-like),Linux就是其中的一员。

在设计上Unix包含一个Unix Shell。它是一种命令行解释器(CLI)或者Shell,可以让用户通过输入命令与系统交互。Unix Shell既可以直接执行用户输入的命令,也可以从文件中读取命令执行(shell scripting)。最常用的Unix Shell是Bash,几乎所有的Linux发行版中都内置有Bash。通常所说的Linux命令行就是Bash命令或Bash脚本。

Linux命令行以强大灵活著称,使用少数命令就可以执行许多任务,还可以将许多任务自动化。

Linux命令行基础

Linux启动后,就会创建一个shell会话(shell session)。shell session是一个基础环境,它允许系统与应用、及应用间进行通讯。可以一次打开多个会话,会话间可以存在父子关系,如果当前会话的父会话被关闭,当前会话也会被终止。

上图是VSCode远程开发模式下,连接到Windows10 WSL(Ubuntu18.04.2)的截图。光标前面的内容格式如下:

[email protected]:locate,对应到上图,即当前会话的用户名为wjchi,hostname是DESKTOP-J2OGSVG,当前目录为~,即当前用户的家目录:/home/wjchi。

下面是一些Linux常用符号的含义:

SYMBOL EXPLANATION EXAMPLES
~ is equal to the current user‘s home directlry. E.g: /home/someone/ cd ~ ls ~
* A symbol which stands for "everything". Let‘s say you want to remove all the .jpg files from your Downloads folder which have their name starting with the "E" character, then you can use this symbol to represent all the other letters except E. See the example. rm ~/Downloads/E.jpg ls /etc/c nano /var/log/nginx/*
& Run a command in the background. It will return the PID of the newly running process to you and won‘t show you the output. sudo apt update &
&& These symbols written together stand for "and". So if you want to run 2 commands together, you can use it. sudo apt update && sudo apt upgrade
\ Allows you to continue writing commands/Bash syntax in new line. sudo \ apt \ update
.. In many cases, especially in navigation, the two dots stand for the parent folder. cd ..
. In navigation or referring to files/folders, the dot stands for the current folder. ls .
# Everything after this symbol in the same line is considered to be a comment, so it won‘t be processed by the shell. cd # This commands moves you somewhere.
| This is called "Piping", which is the process of redirecting the output of one command to the input of another command. Very useful and common in Linux/Unix-like systems. cat /etc/profile | grep bash
> Take the output of a command and redirect it into a file (will overwrite the whole file). ls ~ > output.txt
< Read the contents of a file into the input of a command. grep bash < /etc/profile
>> Append a text or a command output into the last line of a file. echo "First Line" > output.txt echo "See this is the last line" >> output.txt

我们可以使用man命令或者命令后加上--help来查看各个命令的说明,man是manual的简写。在命令行输入:man man,输出如下:

Linux中常用导航命令如下:

BASE COMMAND EXPLANATION FAMOUS ARGUMENTS & OPTIONS EXAMPLES
cd This command allows you to move into a different directory on your Linux system, which will make it the current folder of where your shell is running. It‘s just like as if you open a specific folder in any graphical file manager. . Stands for the current directory. .. Stands for the parent directory. ../.. the parent of the parent directory. cd /etc/
ls Lists the current files and folders in a specific directory. -a shows the hidden files too. -l shows metdata about files and folders, such as permissions, last modification date, size and so on. ls ~
pwd Gives you the current location - -

Linux中常用文件/目录操作命令入下:

BASE COMMAND EXPLANATION FAMOUS ARGUMENTS & OPTIONS EXAMPLES
touch Make a new file. - touch text.txt
mkdir Make a new folder -p Make the requested path regardless if the sub-directories exist or not (because normally, mkdir would return an error if you try to make a 3rd-level directory while the 2nd-level directory doesn‘t exist). mkdir newfolder mkdir something\ with\ spaces mkdir -p newfolder/subfolder/subsubfolder
rm Remove a file or a directory. -rf Adds the ability to remove folders and their contents (because normal rm can‘t). rm file.txt rm -rf foldername
head Get the first 10 lines of a text file (or the first n lines of a file) -n Specify the number of lines to output from the beginning. head /etc/profile head -n 19 /etc/profile
tail Get the last 10 lines of a text file (or the last n lines of a file). -n Specify the number of lines to output from the end. tail /etc/profile tail -n 18 /etc/profile
cat Output all the contents of a file - cat /etc/profile
grep Output the lines contain a certain string from a file only. - cat /etc/profile | grep "Bash"
chmod Change the permissions of a file. +x Make the file executable 777 Allow the file to accessed, written and executed by everyone (very dangerous!). 755 Allow everyone to read the file, but only the owners to edit and execute it. chmod +x test.sh chmod 755 test.sh

Bash配置文件

Unix设计哲学中包含一条准则:一切皆文件,everything is a file。这意味着,键盘、鼠标、会话、进程、I/O操作等,无论是软件还是硬件都被描述为一个文件存放于文件系统中,你可以像操作普通文件一样操作它们。Bash包含了许多配置文件,你可以通过修改这些配置文件对Bash做些定制,Bash配置文件包含以下内容:

FILE LOCATION EXPLANATION
/etc/profile Executes many startup shell scripts that are located both in /etc/profile.d/ and other paths. This file is system-wide file, you better not change stuff here.
~/.bashrc Commands that are executed once you enter the system. Usually, most people do modify this file according to their needs.
~/.bash_logout Shell commands that are executed when you exit the system.
~/.bash_history All the commands that you execute in your shell are saved in this file, it‘s like a log file for the commands that you write (You can avoid saving a command here by simply putting a whitespace (or multiple ones) before the command you are entering).

通常我们执行命令:ls -Ali来列出当前目录中的文件信息,但每次执行都需要输入选项-Ali,有些繁琐。我们可以修改bashrc来达到简化的目的。

使用vim打开文件:vim ~./bashrc,在文件中输入alias la=‘ls -Ali‘,然后执行source ~/.bashrc让修改立即生效即可:

然后在命令行中输入:la ~ ~/code可以看到列出了家目录及家目录下code文件中的文件信息:

?? 如果直接执行alias la=‘ls -Ali‘,那么在终端关闭后,la命令也不复存在

Bash Scripting基础

Bash脚本通常带有后缀sh(不带也行),写一段脚本如下:

vim demo.sh
# 这里是注释
la # 列出当前目录中的文件信息

然后使用source命令读取脚本中的命令并执行:

source demo.sh

source命令的简写形式为半角句号:.

即命令source demo.sh等价于. demo.sh

资料推荐

  1. The Linux Command Line: A Complete Introduction: A famous book to start learning the topic. Made in 544 pages that would explain everything you need about writing Bash commands and scripts. Very recommended to read. (It’s available PDF free from the website).
  2. Linux Command Line Tutorial for Beginners: If you are someone who prefers video content over written one, then this Youtube set of videos is for you. Made in 80 different videos averaging around 10 minutes each, this series takes your hand in explaining various Linux commands beside more advanced topics in writing shell scripts.
  3. ExplainShell.com: Here, let’s say that you encountered a very long command while browsing an online article or a book, and you didn’t know what does it do and how? Just paste it into the website and it will tell you what each part of it does. It’s amazing online website to explain Linux commands.
  4. LearnShell.org: A free online interactive website to learn the shell. You basically write everything and learn everything from inside your browser.

推荐阅读

The Linux Command Line 中文版

原文地址:https://www.cnblogs.com/Cwj-XFH/p/11442615.html

时间: 2024-10-25 00:22:49

Linux命令行基础的相关文章

Linux命令行基础 、 基础命令操作 、 目录文件基本操作

  Linux命令行基础 基础命令使用 目录和文件基本管理 #################################################   一.Linux命令行基础   1. 什么是命令.命令行    命令:能够被Linux系统识别,用来完成某一类功能的指令或程序                           |--> 依赖于Shell解释器,查看:cat/etc/shells 默认为 /bin/bash    命令行:用户输入的命令及相关参数,按Enter键提交的

linux 命令行基础

命令行基础 一些名词 「图形界面」 「命令行」 「终端」 「shell」 「bash」 安装使用 Windws: 安装git, 打开 gitbash Linux 打开终端 Mac 打开终端 基本命令 查看当前完整路径 pwd 查看当前目录下文件 # 不包括隐藏文件 ls # 查看当前目录下所有文件(包括隐藏文件) ls -a # 查看当前目录下所有文件(包括隐藏文件)的详细信息 ls -al 切换目录 cd /c/project cd code cd ../css cd ~/Desktop 文件

Admin(二)——Linux命令行基础

一.Linux命令Linux命令的执行依赖于解释器(例如:/bin/bash)1.linux命令的分类:--内部命令:属于解释器的一部分--外部命令:解释器之外的其他程序 2.几个快捷键--Ctrl+l:清空整个屏幕(或在命令行输入clear)--Ctrl + u :清空至行首--Ctrl + w : 往回删除一个单词(以空格界定)--Ctrl + c : 结束正在运行的指令--esc +.:粘贴上一个命令的参数 二.mount挂载操作1.挂载和挂载点--挂载点:挂载点即访问点,访问设备需要通过

三个网站让你成为Linux命令行高手

[转载自http://www.linuxeden.com/html/news/20091119/69183.html] Linux的命令行是通向Linux高级应用的必经之路,Linux系统管理员.开发者都是学习对象.Susan Linton向我们推荐了三个学习Linux命令行的网站,现在介绍给大家: 1. LinuxCommand LinuxCommand是一个学习Linux命令行最好的网站之一.网站分为:学习Shell.写Shell脚本.脚本库.超级MAN页面. 2. O'Reilly的Lin

使用Linux命令行测试网速

使用Linux命令行测试网速http://www.linuxde.net/2014/01/15561.html 当发现上网速度变慢时,人们通常会先首先测试自己的电脑到网络服务提供商(通常被称为"最后一公里")的网络连接速度.在可用于测试宽带速度的网站中,Speedtest.net也许是使用最广泛的. Speedtest.net的工作原理并不复杂:它在你的浏览器中加载JavaScript代码并自动检测离你最近的Speedtest.net服务器,然后向服务器发送HTTP GET and P

《Linux命令行大全》系列(三、Linux 系统)

在<Linux命令行大全>一书中,第3章名称是 Linux 系统. 概念太大,不过该节内容却是 Linux 系统最为核心的基础——查看 Linux 系统. ls 命令 显示目录自身信息或目录中内容信息,也可只显示指定文件信息 ls 等同于 “ ls . “,显示当前目录下目录或文件名称,一般用空格隔开 ls 若干目录路径 显示指定目录下目录或文件名称,可有多个目录,目录间用空格隔开 ls 参数 -a 一般不显示隐藏文件(以"."开头),带上此参数即显示 -F 此项在列出的名

Linux命令工具基础02 文件及目录管理

文件及目录管理 文件管理不外乎文件或目录的创建.删除.查询.移动,有mkdir/rm/mv 文件查询是重点,用find来进行查询:find的参数丰富,也非常强大: 查看文件内容是个大的话题,文本的处理有太多的工具供我们使用,在本章中只是点到即止,后面会有专门的一章来介绍文本的处理工具: 有时候,需要给文件创建一个别名,我们需要用到ln,使用这个别名和使用原文件是相同的效果: 创建和删除 创建:mkdir 删除:rm 删除非空目录:rm -rf file目录 删除日志 $rm *log 等价: $

Linux 命令行下的好东西

  列举你可能没注意过的好用的 Linux 命令行命令 现在做网站做移动应用最讲究的就是推广了,推广做的好那就成功了一大半,相对的没曝光产品再好也很难做下去.就这个角度而言绝大多数 Linux 命令行的推广简直是烂透了.繁多 Linux 有用极了的命令行工具就静静的躺在你发行版默认安装的包裹里,很多时候只有当你碰到什么问题的时候网上搜一圈才能知道.更蛋疼的是这里面很多东西你一旦知道了就会想我靠原来没这个到底是怎么过的下去.所以这里我会列出一些我用过的一些,大部分发行版默认就有,或者能用包裹管理工

《Linux命令行与shell脚本编程大全》学习笔记(转)

第一部分:Linux命令行<Linux命令行与shell脚本编程大全> 第一章:初识Linux shell<Linux命令行与shell脚本编程大全> 第二章:走进shell<Linux命令行与shell脚本编程大全> 第三章:基本的bash shell命令<Linux命令行与shell脚本编程大全> 第四章:更多的bash shell命令<Linux命令行与shell脚本编程大全> 第五章:使用Linux环境变量<Linux命令行与she