1. echo

相当于 C语言的 printf。 打印字符串到console。

$ echo $COLUMNS x $LINES
40 x 27

上面这个命令打印了当前terminal的窗口大小。

2. ls

显示当前文件夹下的所有文件及文件夹。

$ ls
vagrants

当前文件夹下我只有一个vagrants的文件夹。

3. cd

cd 的英文全称为change directory。

改变当前terminal所在的文件夹。

$ cd vagrants/

输入这个命令后我就进入了vagrants文件夹。

Duke@Duke ~/vagrants
$ ls
myVagrant  tempfile

在vagrants文件夹里面我有 两个文件夹,分别是:myVagrant 和 tempfile。

这时,如果我想返回上一级文件夹,即parent directory。 我们可以用以下命令:

$ cd ..; ls
vagrants

.. 代表的是当前文件夹的上一级文件夹。; 为两个命令的分隔符,与C语言类似。

4.  pwd

pwd 的全名是 print working directory。

这个命令直接打印terminal当前所在文件夹的路径。

$ cd myVagrant/

$ ls
lab1_word_count_student.ipynb
lab2_apache_log_student.ipynb
lab3_text_analysis_and_entity_resolution_student.ipynb
lab4_machine_learning_student.ipynb
spark_tutorial_student.ipynb
Vagrantfile

$ pwd
/home/Duke/vagrants/myVagrant

所谓的working directory很重要。 因为一些命令 比如 ls , cd 等都是默认作用于当前working directory的。

说到文件路径, 有几个常用的文件路径简称。 我们之前见到了 .. 表示parent directory。

而 . 表示当前文件夹, ~ 表示home 文件夹。

$ ~
-bash: /home/Duke: Is a directory

$ ls .
lab1_word_count_student.ipynb
lab2_apache_log_student.ipynb
lab3_text_analysis_and_entity_resolution_student.ipynb
lab4_machine_learning_student.ipynb
spark_tutorial_student.ipynb
Vagrantfile

$ ls ..
myVagrant  tempfile

5. ls -l

$ ls -l
总用量 276
-rwxr-xr-x 1 Duke None 27251 六月  7 2015 lab1_word_count_student.ipynb
-rwxr-xr-x 1 Duke None 51161 六月 21 2015 lab2_apache_log_student.ipynb
-rwxr-xr-x 1 Duke None 75055 六月 21 2015 lab3_text_analysis_and_entity_resolution_student.ipynb
-rwxr-xr-x 1 Duke None 57712 六月 28 2015 lab4_machine_learning_student.ipynb
-rwxr-xr-x 1 Duke None 53415 六月  7 2015 spark_tutorial_student.ipynb
-rwxr-xr-x 1 Duke None   722 五月 30 2015 Vagrantfile

显示了 文件以及文件夹的详细信息。

shell支持正则表达式。

如果你使用如下命令: ls -l *.pdf

会显示出所有pdf文件的详细信息。

这些信息包括 :权限, 用户, 文件大小, 修改时间, 文件名等信息。

$ ls -l *.ipynb
-rwxr-xr-x 1 Duke None 27251 六月  7 2015 lab1_word_count_student.ipynb
-rwxr-xr-x 1 Duke None 51161 六月 21 2015 lab2_apache_log_student.ipynb
-rwxr-xr-x 1 Duke None 75055 六月 21 2015 lab3_text_analysis_and_entity_resolution_student.ipynb
-rwxr-xr-x 1 Duke None 57712 六月 28 2015 lab4_machine_learning_student.ipynb
-rwxr-xr-x 1 Duke None 53415 六月  7 2015 spark_tutorial_student.ipynb

6. mkdir , mv

mkdir是 making directory的简写,用于创建文件夹。

mv 是move的简写,用于移动文件。

我现在想要创建notebook文件夹,并将所有.ipynb文件放到这个文件夹。

$ mkdir notebook

$ mv *.ipynb ./notebook

$ cd notebook

$ ls
lab1_word_count_student.ipynb
lab2_apache_log_student.ipynb
lab3_text_analysis_and_entity_resolution_student.ipynb
lab4_machine_learning_student.ipynb
spark_tutorial_student.ipynb

为了恢复原样,我把.ipynb文件放回原来的文件夹。

$ mv *.ipynb ..

这时候,ls一下

$ ls

没有任何文件显示。

$ cd ..

返回上一级目录

7. rmdir

这时候,当我想删除文件夹notebook时,就要用到rmdir命令。

rmdir 是remove directory的简写。

$ ls
lab1_word_count_student.ipynb
lab2_apache_log_student.ipynb
lab3_text_analysis_and_entity_resolution_student.ipynb
lab4_machine_learning_student.ipynb
notebook
spark_tutorial_student.ipynb
Vagrantfile

$ rmdir notebook/

$ ls
lab1_word_count_student.ipynb
lab2_apache_log_student.ipynb
lab3_text_analysis_and_entity_resolution_student.ipynb
lab4_machine_learning_student.ipynb
spark_tutorial_student.ipynb
Vagrantfile

notebook文件夹已经不见了。

8. curl

curl 可以用来下载文件。

$ curl -L 'http://projects.biotec.tu-dresden.de/pocket/lcs.tgz' -o ligsite.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 62117  100 62117    0     0   7046      0  0:00:08  0:00:08 --:--:-- 19142

$ ls
google_appengine_launcher.ini  google_appengine_projects.ini  ligsite.tar.gz

发现文件ligsite已经下载下来了。

-L 的选项 表示follow redirect。

-o 选项表示下载文件的名称。

9. cat

cat这里并不是指猫。

cat是concatenate的简写。

它将文件内容输出到console。

$ cat google_appengine_projects.ini
# Gogle App Engine Launcher Project File
# https://developers.google.com/appengine

10. less

less 也是用来查看文件,但是更加方便。

Duke.txt是显示我的计算机配置的文本文件。

$ less Duke.txt

CPU-Z TXT Report
-------------------------------------------------------------------------

Binaries
-------------------------------------------------------------------------

CPU-Z version                   1.67.1.x64

Processors
-------------------------------------------------------------------------

Number of processors            1
Number of threads               4

APICs
-------------------------------------------------------------------------

Processor 0
        -- Core 0
                -- Thread 0     0
                -- Thread 1     1
        -- Core 1

这时, Duke.txt还没显示完.

按下回车或空格继续看。

按下b返回上次看到的内容。

按下q直接返回console。

输入/CPU 按下回车,可以进行CPU的文本查找。

十分方便。

11. clear

这个clear有点像matlab的clear。

shell 中clear用来清屏。

12. rm

rm是remove的简写。

千万不要使用rm -rf / 的命令。

在使用rm删除文件时,被删除的文件是不会被放到回收站的。

所以最好使用:

$rm -i thefile.txt

$ rm -i DUKE.txt
rm: remove regular file 'DUKE.txt'? n

13. grep 和 wc

用于搜索文件中某个单词。

$ grep CPU DUKE.txt
CPU-Z TXT Report
CPU-Z version                   1.67.1.x64
        Specification           Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz
        CPUID                   6.A.7
        Extended CPUID          6.2A
CPU Thread 0
        Max CPUID level         0000000Dh
        Max CPUID ext. level    80000008h
        CPUID
CPU Thread 1
        Max CPUID level         0000000Dh
        Max CPUID ext. level    80000008h
        CPUID
CPU Thread 2
        Max CPUID level         0000000Dh
        Max CPUID ext. level    80000008h
        CPUID
CPU Thread 3
        Max CPUID level         0000000Dh
        Max CPUID ext. level    80000008h
        CPUID
        model                   Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz
  CPU0
  CPU1
  CPU2
  CPU3
  CPU4
  CPU5
  CPU6
  CPU7
        MCPU
CPUT

如果显示的行数比较多,可将搜索结果传给less命令,这就是unix的管道思想。

$ grep CPU DUKE.txt | less
如果我想知道CPU出现在DUKE.txt中的个数。

$ grep CPU DUKE.txt -c

32

-c命令帮我们进行了统计。

还可以调用wc进行统计。

wc是word count的简写。

$ grep CPU DUKE.txt | wc -l
32

14. 环境变量

在linux下,环境变量在~/.bashrc文件中。

在这个文件中加入:

if [-f ~/.bashrc] ; then

source ~/.bashrc

fi

这样,在这个文件发生改变后,环境变量会立即生效。

如果不然的话,需要重新开一次terminal 才会生效。

因为,每次打开,.bashrc文件都会重新运行一次,加载环境变量。

$ export PS1='df$'
df$
df$
df$
df$
环境变量 PS1 表示每个命令行的提示符,用户可以自定义。

df$export PS1='$ '
$
$

我还是改了回来。

15 alias

alias 可以为程序添加新的名称。

$ alias ll='ls -la'

这时, ll 就代表 ls -la了。

此时,如果你的电脑被他人使用。他并不知道ll的意思。

只需: $ alias

就是可以显示所有简写名称对应的shell命令。

然而,这一命令只会在当前的terminal有效。

因为,它没被写入.bashrc文件。

当然你可以将它写入到.bashrc文件。

如果你想学习更多bash的特性,欢迎来此网址学习:http://www.bash.academy/ 。

[bash]基础shell命令总结相关推荐

  1. Linux基础shell命令 ls

    Linux基础shell命令 ls ls 用来展示目录文件 man ls :官方文档显示所有的ls用法(其他命令也可用相同方法查看文档) ls [命令符选项] [文件路径(相对路径绝对路径均可)] [ ...

  2. Linux基基基础——shell命令

    shell简介 随着各式Linux系统的图形化程度的不断提高,用户在桌面环境下,通过点击.拖拽等操作就可以完成大部分的工作.然而,许多Ubuntu Linux功能使用shell命令来实现,要比使用图形 ...

  3. Linux基础——“ shell命令 概述”了解shell和基本linux

    文章目录 一.shell 命令 1. shell 概述 2. 基本系统维护命令 3. 查看文件系统信息 二.Linux 的用户管理 三.Linux进程管理相关命令 3.1 进程的概念 3.2 进程管理 ...

  4. 【Linux学习笔记】20:Bash基础-历史命令

    把操作的记录保存在系统当中,当需要的时候还可以查看和调用,这是一种必要的机制. 最早的Bourne Shell--sh是不支持历史命令的,发展到现在的Bash已经支持的很好了. [1]history ...

  5. [shell][001] [advanced]定制化自己的shell命令

    前言,纯粹的linux下的全屏vim,shell的编辑中,难免要在编辑器外做shell的一些command命令.比如,解压一个文件.可是解压一个文件往往要看文件的类型是什么,tar的时候要查询各种参数 ...

  6. 什么是shell,shell基础由浅入深,常用的shell命令、用法、技巧

    Shell:可以批量处理.自动化完成一系列维护任务,大大减轻管理员的负担!Shell是一个特殊的应用程序,介于操作系统内核与用户之间,充当了一个"命令解释器"的角色.负责接收用户输 ...

  7. linux超级基础系列——什么是shell? bash和shell有什么关系

    什么是Shell?        shell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序.你在提示符下输入的每个命令都由shell先解释然后传给Linux内核.    ...

  8. 每个程序员都应该知道的Linux基础知识!全文4900字,没有耐心的不建议看 ——( Linux文件系统 + 系统管理类命令 + bash基础特性)

    文章目录 - Linux的文件系统 - LSB - FHS - 根文件系统 - 对根文件系统下目录的概述: /boot /bin /sbin /lib /lib64 /etc /home /root ...

  9. Linux 基础操作、常用shell命令、vi常用命令、man帮助手册

    Linux 基础操作.常用shell命令.vi常用命令.man帮助手册 一.简述 记录简单的Linux 基础操作.常用shell命令.vi编辑器常用命令.man帮助手册的使用. 二.Linux 基础操 ...

最新文章

  1. nginx特定的 404页面利于seo
  2. ubuntu16.04 + Kdevelop + ROS开发
  3. [云炬创业学笔记]第一章创业是什么测试3
  4. opengl加载显示3D模型ZGL类型文件
  5. 龙腾世纪:起源(推荐一个可以用来英语学习的RPG游戏)
  6. “内心强大的人”依然会被移出首页
  7. 01Python可视化开发环境之Pycharm+Anaconda3安装配置详细步骤
  8. matlab的控制系统仿真,MATLAB控制系统仿真教程
  9. 2017华为软件精英挑战赛思路分析
  10. Chrome浏览器调用摄像头拍照
  11. SpringBoot整合腾讯云COS
  12. 特殊符号 mysql_mysql 特殊字符
  13. Calendar获取上个月第一天和最后一天,上周第一天和最后一天
  14. HDU3338Kakuro Extension(最大流+边的流量)
  15. HTML Purifier --非常好用的XSS过滤器
  16. Facebook如何安全度过新账号阶段不被封号
  17. 泛函分析--from BBS 水木清华站
  18. 龙芯杯系统能力竞赛CPU赛道参赛准备
  19. 英国政府计划到2050年交通运输将脱碳
  20. HashSpace:探索无国界社交生态链的价值潜力

热门文章

  1. RK3399平台开发系列讲解(内核调试篇)2.9、USB抓包软件usbmon报文解析
  2. aws dynamodb 使用awsapi和PartiQL掌握dynamodb的CRUD操作
  3. GSM模块_PDU中文格式发送短信息
  4. 如何DIY一台墨水屏笔记本电脑?
  5. c语言10000的阶乘,求10000的阶乘(c语言代码实现)
  6. win7 桌面的应用程序图标显示异常解决办法
  7. 为什么要从 Linux 迁移到 BSD
  8. 【RoboMaster】从零开始控制RM电机(2)-CAN通信原理及电调通信协议
  9. STM32FF030 替代国产单片机——DP32G030
  10. 供应链建模思路与案例分享:亚马逊FBA计算器 - 泛欧德国/波兰/捷克配送中心 仓储成本最后一公里配送费