Linux教程

Linux 命令行概要

本文主要是介绍Linux 命令行概要,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 概要

本文主要介绍常用Linux命令行

Linux常用命令:

本章节主要使用《Linux命令行大全》 [美] William E. Shotts, Jr. 著
  • 本章节适用对象:从其他平台转到Linux的新用户。
  • 两个原则:
    • 命令行不是随便就能学会的
    • 命令行是的确值得学习的
  • ps:外国人写书喜欢从简单的开始,后面就难很多,要耐心看。

shell

包含十个小节:文件相关、命令的命令、重定向、扩展、引用、权限、进程、文本处理、c编译、杂项。

文件相关:

pwd

显示当前的绝对路径

cd

“.”是当前工作目录 “..”是当前工作目录的父目录 cd aFolder 等价于 cd ./aFolder cd - 工作目录回退至上一个工作目录,挺好用的 cd ~username 快速切换目录,基本用不到

ls

参数一览先(按使用频率排序)
  • -a 列出隐藏
  • -l 长格式 长格式各部分含义 -rw-rw-r-- 1 root root 32059 2018-11-03 10:50 abcd.text -rw-rw-r-- 10位表示对文件的访问权限
    • 第一位是文件类型
    • 二到四位是所有者权限
    • 五到七位是组权限
    • 八到十位是其他用户权限
    • 1 1位数字表示硬连接数目
    • root 所有者用户名
    • root 所属于的用户组名
    • 32059 文件大小
    • 日期 上次修改的日期
    • 文件名
  • -t 按修改时间排序
  • -F 显示类型
  • -S 按大小排序
  • -r 反向排序

file

确定文件的类型,显示详细数据不只是扩展名

less

查看文件,用G移动到文件末尾

通配符

  • :匹配任意多任意字符 ? :匹配任意一个字符 characters :匹配任意一个括号中的字符 !characters :匹配任意一个不属于括号中的字符
  • [:class:] :匹配任意一个属于字符类的字符 常用字符类
    • :alnum:
    • :alpha:
    • :digit:
    • :lower:
    • :upper:

mkdir

可以一次性创建多个folder mkdir f... 如:mkdir f1 f2 f3 f4 f5

cp

  • cp item1 item2
  • cp item... folder
  • 选项:
    • -a 复制文件和目录及其属性
    • -i 覆盖风险提醒
    • -r 递归复制内容(复制文件夹内内容)
    • -u --update

mv

  • mv item1 item2 重命名
  • mv item.. folder 移动至文件夹
  • 选项:
    • -i:覆盖风险提醒
    • -u: update,只移动更新的或者目标文件夹中不存在的

rm

  • -i: 提示用户确认
  • -r:递归
  • -f:强制
  • -v:显示消息性信息

符号链接

-rw-r-r-- 1 root root 32059 2018-11-03 10:50 abcd.text -> aaaa.text 最后的 -> 叫做符号链接,又叫软连接,主要用于使用版本号命名文件时,文件名称更改引起的问题,通过软连接提供一个抽象层,解决使用更新版本后需要更改软件对文件的依赖(需要更改依赖的文件名)的问题

ln:

  • 理解 Linux 的硬链接与软链接

命令的命令

type

  • 显示命令类型
  • type ls

符号链接

-rw-r-r-- 1 root root 32059 2018-11-03 10:50 abcd.text - aaaa.text 最后的 - 叫做符号链接,又叫软连接,主要用于使用版本号命名文件时,文件名称更改引起的问题,通过软连接提供一个抽象层,解决使用更新版本后需要更改软件对文件的依赖(需要更改依赖的文件名)的问题

ln:

  • blog

命令的命令

type

  • 显示命令类型
  • type ls

which

  • 显示命令程序所在位置
  • which ls

help

  • ls --help

man

  • man ls

apropos

  • 寻找相近的命令
  • apropos lss

whatis

  • 命令的简要描述

重定向

标准入、标准出、标准错

  • 概念自行google
  • 标准输出重定向
    • \ 的使用:等价于1\注意这是从文件首位置开始覆盖文件。
    • \ 的使用:追加模式
    • 如果发生错误,错误走标准错误,重定向指向的文件会被0字节覆盖,从而删除所有文本,所以可以使用
    • \ someFile”
    • 来清除文件内容
  • 标准输入重定向
    • 常与cat一起使用,在cat命令介绍
  • 标准错误重定向
    • 2 的含义:0表示标准输入,1表示标准输出,2表示标准错误
    • 重定向标准错误和标准输出:
    • ls -l \User 1.text 2 &1
    • ls -l \User & 1.text

管道:

  • 使用:ls -l | less
  • 意义:完成了命令之间的交互,把一个命令的输出放入到另一个命令的输入,相当于命令的顺序处理

filter

grep:

  • 例子:ls -l | grep zip
  • 参数:-i(忽略大小写) -v(输出与模式不匹配的行)
  • 其他命令:http://www.runoob.com/linux/linux-comm-grep.html
  • 说明:grep本身可以用来检索文件中的信息,使用管道就是重定向了grep命令的输入,毕竟linux万物都是文件

wc

  • 统计

uniq

  • 去重(快速查看一个文件比较好用)

head

  • head -n 10:查看前十行

tail

  • tail -n 10

tee

  • 主要用于输出分叉,在某一级管道同时输出到一个文件和另一个命令的输入

扩展

  • 波浪线扩展:“~”表示当前用户的主目录
  • 算数扩展:$((2+2))
  • 花括号扩展:花括号内会被循环访问一遍
  • 参数扩展 :变量
  • 命令替换:把一个命令的输出作为一个扩展模式使用,跟管道结合,在不同场景使用

引用

  • 双引号:双引号内为一个参数,比如项目里有一个叫Apple Music的文件夹,每次git status都会给你一个带空格的目录,git add path就会因为空格断开,这时候就找不到路径,使用“” 会表示这是一个参数。相当于给空格加了转义“\ ”。
  • 注意双引号不会忽略扩展
  • 单引号:忽略所有的扩展
  • 转义字符:转义一个特定的字符

权限

chmod

chmod 600 foo.txt 使用八进制,常用:7(rwx)、6(rw-)、5(r-x)、4(r--)、0(---)

su

  • 使用其他用户的身份运行shell

sudo

  • 用另一个用户的身份执行命令

文本处理

编辑快捷键

  • 修改文本
    • ^D
    • ⌥L/U
  • 复制和粘贴
    • ^K:从光标到末尾剪切
    • ^U:从光标到行首剪切
    • ⌥D:从光标到单词末尾的剪切
    • ⌥backspace:从光标到单词首的剪切
  • 光标移动:
    • ^A:行首
    • ^E:行尾
    • ^F:前进一个字符
    • ^B:后退一个字符
    • ⌥F:前进一个字
    • ⌥B:后退一个字

cat

  • 定义上是用来合并文件
  • 具有读取数据的功能:读取多个文件到标准输出
  • cat files..
  • 具有写入数据的功能:上一个功能加上重定向(使用即可,实现的是功能)
  • Cat files oneFile
  • 单独使用cat,相当于cat 0 1,获取标准输入,输出到标准输出

c编译

杂项

ping netstat 正则表达式 元字符: ^ $ . { } - ? * + ( ) | \ 任意字符:. 锚:^:标定开头位置 $:标定结束位置 :构建一个字符集 限定符:
  • ?:匹配某个元素0次获1次
  • * :匹配某个元素多次或0次
  • + :匹配一个字符1次以上
  • { }:提供一个匹配次数的range。
    • { 1 }:匹配1次
    • { 2, 3 }:匹配2-3次
    • { 2, }:两次以上,不包括两次
    • { ,2 }:两次以下,不包括两次 
这篇关于Linux 命令行概要的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!