返回顶部

Linux 常用命令

程序的组成部分

  • 二进制程序文件、库文件、配置文件、帮助文件
  • 库文件:不能独立执行,只能被调用时执行
  • 配置文件、帮助文件:可被查看其内容的文件

Linux 命令基础知识

命令的语法通用格式  COMMAND OPTIONS  ARGUMENTS

COMMAND

  • 发起一命令:请求内核将某个二进制程序运行为一个进程
  • 命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件
  • 多数系统程序文件都存放在:/bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin
  • 普通命令:/bin, /usr/bin, /usr/local/bin
  • 管理命令:/sbin, /usr/sbin, /usr/local/sbin
  • 共享库:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
  • 32bits的库:/lib, /usr/lib, /usr/local/lib
  • 64bits的库:/lib64, /usr/lib64, /usr/local/lib64

注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件

环境变量 PATH 

  • 从哪些路径中查找用户键入的命令字符串所对应的命令文件
  • 查找次序:自左而右

echo $PATH

 

OPTIONS

  • 指定命令的运行特性

选项有两种表现形式:

  • 短选项:-C, 例如-l, -d,如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
  • 长选项:--word, 例如--help, --human-readable, 注意:长选项不能合并

注意:有些选项可以带参数,此称为选项参数

ARGUMENTS

  • 命令的作用对象;命令对什么生效
  • 注意:不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔。例如:ls -ld /var /etc

获取命令的使用帮助

内部命令

  • help COMMAND

外部命令

  • (1) 命令自带简要格式的使用帮助, COMMAND --help
  • (2) 使用手册:manual    位置:/usr/share/man,man COMMAND

SECTION

  • NAME:功能性说明
  • SYNOPSIS:语法格式
  • DESCRIPTION:描述
  • OPTIONS:选项
  • EXAMPLES:使用示例
  • AUTHOR: 作者
  • BUGS: 报告程序bug的方式
  • SEE ALSO: 参考

SYNOPSIS

  • []:可选内容;
  • <>:必须提供的内容;
  • a|b|c:多选一;
  • ...:同类内容可出现多个;

使用手册:压缩格式的文件,有章节之分

  • /usr/share/man
  • man1, man2, ...

1:用户命令; 2:系统调用; 3:C库调用; 4:设备文件及特殊文件;

5:文件格式;(配置文件格式) 6:游戏使用帮助; 7:杂项; 8:管理工具及守护进行;

man命令打开手册以后的操作方法

翻屏

  • 空格键:向文件尾翻一屏;
  • b: 向文件首部翻一屏;
  • Ctrl+d:向文件尾部翻半屏;
  • Ctrl+u:向文件首部翻半屏;
  • 回车键:向文件尾部翻一行;
  • k: 向文件首部翻一行;
  • G:跳转至最后一行;
  • #G: 跳转至指定行;
  • 1G:跳转至文件首部;

文本搜索

  • /keyword:从文件首部向文件尾部依次查找;不区分字符大小写;
  • ?keyword:从文件尾部向文件首部依次查找;
  • n: 与查找命令方向相同;
  • N: 与查找命令方向相反;

退出:

  • q: quit

搜索引擎  google

  • keyword filetype:pdf
  • keyword site:domain.tld

书籍的出版社

  • O'Reiley
  • Wrox
  • 机械工业、电子工业、人邮、清华大学、水利水电

 常用命令

cd 命令 change directory

  • cd: 切换回家目录
  • cd ~:切换回自己的家目录
  • cd ~USERNAME:切换至指定用户的家目录;
  • cd -:在上一次所在目录与当前目录之间来回切换(这个我经常用)

相关的环境变量

  • $PWD:当前工作目录
  • $OLDPWD:上一次的工作目录

ls: list, 列出指定目录下的内容

  • -a: 显示所有文件,包括隐藏文件;
  • -A:显示除.和..之外的所有文件;
  • -l: --long, 长格式列表,即显示文件的详细属性信息;
  • -h, --human-readable:对文件大小单位换算;换算后结果可能会非精确值;
  • -d:查看目录自身而非其内部的文件列表;
  • -r: reverse, 逆序显示;
  • -R: recursive,递归显示;
ls -l boot.log  

-rw-r--r--. 1 root root 8957 10月 14 19:34 boot.log  (很重要

  • -:文件类型,-, d, b, c, l, s, p
  • rw-r--r--
  • rw-:文件属主的权限;
  • r--:文件属组的权限;
  • r--:其它用户(非属主、属组)的权限;
  • 1:数字表示文件被硬链接的次数;
  • root:文件的属主;
  • root:文件的属组;
  • 8957:数字表示文件的大小,单位是字节;
  • 10月 14 19:34 :文件最近一次被修改的时间;
  • boot.log:文件名

cat:concatenate  文件文本查看工具

用法

  • cat [OPTION]... [FILE]...
  • cat /etc/fstab

 OPTION

  • -n:给显示的文本行编号;
  • -E: 显示行结束符$;

tac 文件文本查看工具和 cat 的用法一致只不过是倒叙而已

 OPTION

  • -n:给显示的文本行编号;
  • -E: 显示行结束符$;

echo:回显

echo [SHORT-OPTION]... [STRING]...

  • -n: 不进行换行;
  • -e:让转义符生效;
  • \n:换行
  • \t:制表符
echo -e 'zhang\nbiao'

STRING可以使用引号,单引号和双引号均可用;

单引号:强引用,变量引用不执行替换;

echo '$SHELL'

双引号:弱引用,变量引用会被替换;

echo "$SHELL"

注意:变量引用的正规符号

  • ${name}

关机或重启命令:shutdown

shutdown [OPTIONS...] [TIME] [WALL...]

OPTIONS:

  • -h: halt
  • -r:reboot
  • -c:cancel

TIME:

  • now
  • hh:mm
  • +m
  • +0

日期相关的命令

Linux:系统启动时从硬件读取日期和时间信息;读取完成以后,就不再与硬件相关联

主要分为两种类型:系统时钟 和 硬件时钟

hwclock, clock:硬件时钟

显示或设定硬件时钟

  • -s, --hctosys:以硬件为准,把系统调整为与硬件时间相同;
  • -w, --systohc:以系统为准,把硬件时间调整为与系统时钟相同;

which 命令显示命令所在的绝对路径

 

 whereis命令只能用于搜索二进制文件(-b)、源代码文件(-s)、说明文件(-m)。如果省略参数则返回所有的信息。

 

alias 如果一个命令比较复杂,可以给它起个别名

获取所有别名

 

 定义别名 (临时的,仅对当前终端有效)

alias NAME='COMMAND'

删除别名

unalias NAME

Filesystem Hierarchy Standard(文件层次标准)

/bin:所有用户可用的基本命令程序文件;

/sbin:供系统管理使用的工具程序;

/boot:引导加载器必须用到的各静态文件:kernel, initramfs(initrd), grub等;

/dev:存储特殊文件或设备文件;

设备有两种类型:字符设备(线性设备)、块设备(随机设备);

/etc:系统程序的配置文件,只能为静态;

/home:普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME;

/root:管理员的家目录;可选;

/lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块

libc.so.*:动态链接的C库;

ld*:运行时链接器/加载器;

modules:用于存储内核模块的目录;

/lib64:64位系统特有的存放64位共享库的路径;

/media:便携式设备挂载点,cdrom, floppy等;

/mnt:其它文件系统的临时挂载点;

/opt:附加应用程序的安装位置;可选路径;

/srv:当前主机为服务提供的数据;

/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;

/usr:usr Hierarchy,全局共享的只读数据路径;

bin, sbin

lib, lib64

include:C程序头文件;

share:命令手册页和自带文档等架构特有的文件的存储位置

local:另一个层级目录;

X11R6:X-Window程序的安装位置

src:程序源码文件的存储位置

/usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;

/var:/var Hierarchy,存储常发生变化的数据的目录;

cache Application cache data

lib Variable state information

local Variable data for /usr/local

lock Lock files

log Log files and directories

opt Variable data for /opt

run Data relevant to running processes

spool Application spool data

tmp Temporary files preserved between system reboots

/proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息;它们多为内核参数,例如net.ipv4.ip_forward, 虚拟为net/ipv4/ip_forward, 存储于/proc/sys/, 因此其完整路径为/proc/sys/net/ipv4/ip_forward;

/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口;

参考:https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/

Linux系统上的文件类型

  • -:常规文件;即f;
  • d: directory,目录文件;
  • b: block device,块设备文件,支持以“block”为单位进行随机访问
  • c:character device,字符设备文件,支持以“character”为单位进行线性访问
  • major number:主设备号,用于标识设备类型,进而确定要加载的驱动程序
  • minor number:次设备号,用于标识同一类型中的不同的设备;
  • 8位二进制:0-255
  • l:symbolic link,符号链接文件;
  • p: pipe,命名管道;
  • s: socket,套接字文件;

 bash 基础特性

命令历史 shell进程会其会话中保存此前用户提交执行过的命令

history

命令用法 

  • history [-c] [-d 偏移量] [n]
  • -c: 清空命令历史;
  • -d offset:删除指定命令历史
  • -r: 从文件读取命令历史至历史列表中;
  • -w:把历史列表中的命令追加至历史文件中

history #:显示最近的#条命令

 

调用命令历史列表中的命令

再一次执行历史列表中的第#条命令 !#

 

再一次执行命令历史列表中最近一个以STRING开头的命令 !string

调用上一条命令的最后一个参数 Esc.

ls /etc 输入 Esc.后会自动补全参数/etc

  

 

 

bash的基础特性之:命令行展开

~:自动展开为用户的家目录,或指定的用户的家目录;

{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;

  • 例如:/tmp/{a,b} 相当于 /tmp/a /tmp/b

如何创建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b

  • mkdir -pv /tmp/x/{y1/{a,b},y2}

如何创建a_c, a_d, b_c, b_d

  • mkdir -v {a,b}_{c,d}

bash的基础特性:获取命令的执行状态结果

命令执行的状态结果,bash通过状态返回值来输出此结果:

  • 成功:0
  • 失败:1-255

命令执行完成之后,其状态返回值保存于bash的特殊变量$?中

bash的基于特性:引用

  • 强引用:''   无须指定类型,默认均为字符型
  • 弱引用:""  无须指定类型,默认均为字符型
  • 命令引用:``  定义变量时必须指定类型、参与运算必须符合类型要求;调用未声明变量会产生错误

bash基础特性:快捷键 (熟练使用

  • Ctrl+a:跳转至命令行行首
  • Ctrl+e:跳转至命令行行尾
  • Ctrl+u:删除行首至光标所在处之间的所有字符;
  • Ctrl+k:删除光标所在处至行尾的所有字符;
  • Ctrl+l:清屏,相当于clear

文件查看类命令

分屏查看命令:more和less

more命令

more FILE

  • 特点:翻屏至文件尾部后自动退出;

less命令

  • less FILE

查看文件的前n行  (head命令)

  • head [options] FILE
  • options  -n int

查看文件的后n行  tail命令

  • tail [options] FILE
  • options  -n int

stat 命令 查看文件的元数据

  • stat FILE

文件包括两类数据

  • 元数据:metadata
  • 数据: data

比较重要的元数据(时间戳):

  • access time
  • modify time
  • change time

touch命令  改变文件的时间戳

  • touch [OPTION]... FILE...
  • -c: 指定的文件路径不存在时不予创建;
  • -a: 仅修改access time;
  • -m:仅修改modify time;
  • -t STAMP
  • [[CC]YY]MMDDhhmm[.ss] 
touch -c -t 1909131212 kubeadm.yaml

 

cp命令

  • 单源复制:cp [OPTION]... [-T] SOURCE DEST
  • 多源复制:cp [OPTION]... SOURCE... DIRECTORY
  • cp [OPTION]... -t DIRECTORY SOURCE...

单源复制:cp [OPTION]... [-T] SOURCE DEST

  • 如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;
  • 如果DEST存在:
  • 如果DEST是非目录文件:则覆盖目标文件;
  • 如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;

多源复制:

  • cp [OPTION]... SOURCE... DIRECTORY
  • cp [OPTION]... -t DIRECTORY SOURCE...

如果DEST不存在:错误;
如果DEST存在:

  • 如果DEST是非目录文件:错误;
  • 如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;

常用选项:

  • -i:交互式复制,即覆盖之前提醒用户确认;
  • -f:强制覆盖目标文件;
  • -r, -R:递归复制目录;
  • -d:复制符号链接文件本身,而非其指向的源文件;
  • -a:-dR --preserve=all, archive,用于实现归档;
  • --preserv=
  • mode:权限
  • ownership:属主和属组
  • timestamps: 时间戳
  • context:安全标签
  • xattr:扩展属性
  • links:符号链接
  • all:上述所有属性

mv命令:move

  • mv [OPTION]... [-T] SOURCE DEST
  • mv [OPTION]... SOURCE... DIRECTORY
  • mv [OPTION]... -t DIRECTORY SOURCE..


常用选项:

  • -i:交互式;
  • -f:force

rm命令:remove

  • rm [OPTION]... FILE...

常用选项:

  • -i:interactive
  • -f:force
  • -r: recursive

删除目录:rm -rf /PATH/TO/DIR
危险操作:rm -rf /*

注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录;(模拟回

 

posted @ 2019-09-15 23:30  Crazymagic  阅读(204)  评论(0编辑  收藏  举报