zoukankan      html  css  js  c++  java
  • linux常用基本命令整理小结

    linux系统遵循的基本原则

    • 由目标单一的小程序组成,组合小程序完成复杂任务;
    • 一切皆文件;
    • 尽量避免捕捉用户接口;
    • 配置文件保存为纯文本文件;

    Linux命令行常识

    命令格式

    命令+选项+参数
    
    • 选项:
      短选项:- 多个短选项可以结合:-a -b = -ab
      长选项:--

    • 参数:命令的作用对象;

    命令类型

    • 内置命令:shell内部设置,内建;
    • 外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件;
    • 检测是内外部命令的方式:使用type命令;
      type命令使用方法:
    type+要检查的命令
    

    环境变量

    • 定义:命令的内存空间(方便命令的使用)
    • 多命令:利用“;”隔开;

    man手册使用

    man手册分章

    1:用户命令(/bin, /usr/bin, /usr/local/bin)
    2:系统调用
    3:库用户
    4:特殊文件(设备文件)
    5:文件格式(配置文件的语法)
    6:游戏
    7:杂项(Miscellaneous)
    8: 管理命令(/sbin, /usr/sbin, /usr/local/sbin)
    

    命令解读:

    <>:必选
    []:可选(可省略)
    ...:可以出现多次
    |:多选一
    {}:分组
    

    MAN:

    NAME:命令名称及功能简要说明
    SYNOPSIS:用法说明,包括可用的选项
    DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
    OPTIONS:说明每一个选项的意义
    FILES:此命令相关的配置文件
    BUGS:
    EXAMPLES:使用示例
    SEE ALSO:另外参照
    

    操作方法:

    翻屏:
    	向后翻一屏:SPACE
    	向前翻一屏:b
    	向后翻一行:ENTER
    	向前翻一行:k
    
    查找:
    /KEYWORD: 向后
    n: 下一个
    N:前一个 
    
    ?KEYWORD:向前
    n: 下一个
    N:前一个 
    
    q: 退出
    

    文件系统操作相关命令

    文件系统目录结构

    /boot: 系统启动相关的文件,如内核、initrd,以及grub
    (bootloader)
    /dev: 设备文件
    	设备文件:
    		块设备:随机访问,数据块
    		字符设备:线性访问,按字符为单位
    		设备号:主设备号(major)和次设备号(minor)
    /etc:配置文件 (Linux哲学:将配置文件保存成纯文本文件)
    /home:用户的家目录,每一个用户的家目录通常默认为/home/
    USERNAME
    /root:管理员的家目录;
    /lib:库文件
    	静态库,  .a
    	动态库, .dll, .so (shared object)
    	/lib/modules:内核模块文件
    /media:挂载点目录,移动设备(挂载:将设备关联到该文件系统
    的某个目录上)
    /mnt:挂载点目录,额外的临时文件系统
    /opt:可选目录,第三方程序的安装目录(optional 可选的)
    /proc:伪文件系统,内核映射文件(内核的根本功能属性 如:各
    种协议的支撑 路由功能的支撑等)
    /sys:伪文件系统,跟硬件设备相关的属性映射文件
    /tmp:临时文件, /var/tmp(一个月后自动删除其内容 任何用户
    都可以创建 但只能删除自己的内容)
    /var:可变化的文件
    /bin: 可执行文件, 用户命令
    /sbin:管理命令
    

    注意:

    1) /bin /sbin 存放和系统启动相关的命令
    
    2)  /usr:shared, read-only (全局共享只读文件)
    	/usr/bin
    	/usr/sbin
    	/usr/lib
    	(系统启动后 提供基本功能所使用的相关命令和可执行程序)
    	
    3)  /usr/local:(第3方软件 非关键性程序)
    	/usr/local/bin
    	/usr/local/sbin
    	/usr/local/lib
    
    

    文件系统的基本命令

    1)文件管理命令
    • touch命令
    语法:
    # touch(选项)(参数)
    
    功能:
    	修改文件的时间戳;创建新的空文件;
    	
    选项:
    	-a:改变访问时间
    	-m:改变修改时间
    	-t:改变为指定时间 e.g. # touch -mt 199301101123 
    	-c:不创建任何文件
    	
    	事实上,stat命令显示的是文件i节点的信息。Linux文件系统以块为单位存储信息,为了找到某一个文件所在存储空间的位置,用i节点对每个文件进行索引。
    
    • stat命令
    语法:
        # stat (选项)(参数)
    
    功能:
        用于显示文件或文件系统的详细信息
    
    选项:
    	-f:不显示文件本身的信息,显示文件所在文件系统的信息
    	-L:显示符号链接
    	-t:只显示摘要信息
    
    • file命令
    语法:
    	file(选项)(参数)
    
    功能:
    	显示文件的文件类型;
    	
    选项:
    	-L:直接显示符号链接所指向的文件类型
    	
    参数:
    	要确定的文件类型的文件列表,多个文件之间用空格隔开,可以使用shell通配符匹配多个文件
    
    • rm命令
    语法:
    	# rm (选项)(参数)
    	
    功能:
    	删除文件
    	
    选项:
       -i:删除文件前询问用户
    	-f:强行
    	-r:递归
    	
    注意:rm -rf / (一定要小心 这是致命的命令)
    
    • cp命令
    语法:
    	#cp (选项)(SRC DEST)
    	
    功能:
    	拷贝文件或目录
    	
    选项:
    	-r:递归
    	-i:执行命令前询问用户
    	-f:强行
    	-p:保留原文件或目录的属性
    	-a:归档复制,常用于备份
    	
    注意:
    	多个文件到一个目录
    	#cp /etc/{passwd,inittab,rc.d/rc.sysinit} /tmp/
    	( "{}"表示命令行展开)
    
    • mv命令
    语法:
    	# mv (选项)(SRC DEST)
    
    功能:
    	1)当目标文件为目录文件时,源文件移动到该目录下,且文件名不变;其次,源文件可以为多个,所有源文件都被移动个该目录下且文件名不变。
    	2)当目标文件不是目录文件时,源文件和目标文件在同一目录下,则是在修改目标文件的文件名,反之,则是源文件(只能为一个)覆盖目标件。
    
    选项:
    	-b:覆盖前先备份
    	-f:强行
    	-i:执行前询问用户
    	-t:移动多个源文件
    
    • cat/tac命令
    语法:
    	# cat/tac (选项)(参数)
    
    功能:
    	1)一次显示整个文件: cat filename
    	2)从键盘创建文件:cat > filename
    	3)将几个文件合并为一个文件:cat file1 file2 > file
    	
    选项:
    	-b:对非空输出行号
    	-E:在每行结束处显示$
    	-n:对输出的所有行进行编号,由1开始
    
    • more命令
    语法:
    	# more (选项)(参数)
    	 
    功能:
    	按页显示文件内容
    	
    选项:
    	+n:从笫n行开始显示
    	-n:定义屏幕大小为n行
    	-p:通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
    	
    操作:
    	Enter    向下n行,需要定义。默认为1行
    	Ctrl+F   向下滚动一屏
    	空格键    向下滚动一屏
    	Ctrl+B   返回上一屏
    	=        输出当前行的行号
    	:f      输出文件名和当前行的行号
    	V       调用vi编辑器
    	!命令    调用Shell,并执行命令 
    	q       退出more
    
    • less命令
    语法:
    	# less (选项)(参数)
    
    功能:
    	less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
    	
    选项:
    	-b <缓冲区大小> 设置缓冲区的大小
    	-e  当文件显示结束后,自动离开
    	-f  强迫打开特殊文件,例如外围设备代号、目录和二进制文件
    	-g  只标志最后搜索的关键词
    	-i  忽略搜索时的大小写
    	-m  显示类似more命令的百分比
    	-N  显示每行的行号
    	-o <文件名> 将less 输出的内容在指定文件中保存起来
    	-Q  不使用警告音
    	-s  显示连续空行为一行
    	-S  行过长时间将超出部分舍弃
    	-x <数字> 将“tab”键显示为规定的数字空格	
    	
    操作:
    	/字符串:向下搜索“字符串”的功能
    	?字符串:向上搜索“字符串”的功能
    	n:重复前一个搜索(与 / 或 ? 有关)
    	N:反向重复前一个搜索(与 / 或 ? 有关)
    	b  向后翻一页
    	d  向后翻半页
    	h  显示帮助界面
    	Q  退出less 命令
    	u  向前滚动半页
    	y  向前滚动一行
    	空格键 滚动一行
    	回车键 滚动一页
    	[pagedown]: 向下翻动一页
    	[pageup]:   向上翻动一页
    
    • head命令
    语法:
    	# head (选项)(参数)
    	
    功能:
    	head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。 
    	
    选项:
    	-q 隐藏文件名
    	-v 显示文件名
    	-c<字节> 显示字节数
    	-n<行数> 显示的行数
    
    • tail命令
    语法:
    	# head (选项)(参数)
    	
    功能:
    	用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
    	
    选项:
    	-f 循环读取
    	-q 不显示处理信息
    	-v 显示详细的处理信息
    	-c<数目> 显示的字节数
    	-n<行数> 显示行数
    
    • cut命令
    语法:
    	# cut(选项)(参数)
    
    功能:
    	1)显示文件内容;
    	2)连接两个或多个文件:cut f1 f2 > f3
    
    选项:
    	-b:仅显示行中指定直接范围的内容;
    	-c:仅显示行中指定范围的字符;
    	-d:指定字段的分隔符,默认的字段分隔符为“TAB”;
    	-f:显示指定字段的内容;
    	-n:与“-b”选项连用,不分割多字节字符;
    	--complement:补足被选择的字节、字符或字段;
    	--out-delimiter=<字段分隔符>:指定输出内容是的字段分割符;
    	--help:显示指令的帮助信息;
    	--version:显示指令的版本信息。
    
    • join命令
    语法:
    	# join (选项)(参数)
    
    功能:
    	“将两个文件里指定栏位同样的行连接起来”,即依照两个文件里共有的某一列,将相应的行拼接成一行。
    	
    选项:
    	-a FILENUM:除了显示匹配好的行另外将指定序号(1或2)文件里部匹配的行显示出来
    	-e EMPTY:将须要显示可是文件里不存在的域用此选项指定的字符取代
    	-i :忽略大写和小写
    	-j FIELD :等同于 -1 FIELD -2 FIELD,-j指定一个域作为匹配字段
    	-o FORMAT:以指定格式输出
    	-t CHAR :以指定字符作为输入输出的分隔符join 默认以空白字符做分隔符(空格和	),能够使用 join -t $'	'来指定使用tab做分隔符
    	-v FILENUM:与-a相似 但值显示文件里没匹配上的行
    	-1 FIELD:以file1中FIELD字段进行匹配
    	-2 FIELD:以file2中FIELD字段进行匹配
    	--help :打印命令帮助文件
    	
    样例:
    	文件 file1.txt
    	aa 1 2
    	bb 2 3
    	cc 4 6
    	dd 3 3
    	文件file2.txt
    	aa 2 1
    	bb 8 2
    	ff 2 4
    	cc 4 4
    	dd 5 5
    	
    	# join file1.txt file2.txt
    	输出:aa 1 2 2 1
    	bb 2 3 8 2
    
    2)目录管理命令
    • ls
    语法:
    	ls (选项)(参数)
    
    功能:
    	显示目录列表
    	
    选项:
    	-l:长格式
    		文件类型:
    			-:普通文件 (f)
    			d: 目录文件
    			b: 块设备文件 (block)
    			c: 字符设备文件 (character)
    			l: 符号链接文件(symbolic link file)
    			p: 命令管道文件(pipe)
    			s: 套接字文件(socket)
    		文件权限:9位,每3位一组,每一组:rwx(读,写,执行), 
    		r--
    		文件硬链接的次数
    		文件的属主(owner)
    		文件的属组(group)
    		文件大小(size),单位是字节
    		时间戳(timestamp):最近一次被修改的时间
    			访问:access
    			修改:modify,文件内容发生了改变
    			改变:change,metadata,元数据(文件的属性)
    	-h:做单位转换
    	-a: 显示以.开头的隐藏文件
    		. 表示当前目录
    		.. 表示父目录
    	-A  不包含 . 和 ..文件
    	-d: 显示目录自身属性
    	-i: index node, inode
    	-r: 逆序显示
    	-R: 递归(recursive)显示
    
    • cd
    语法:
    	cd (选项)(参数)
    
    功能:
    	切换工作目录;
    	
    参数:
    	cd ~USERNAME: 进入指定用户的家目录
    	cd -:在当前目录和前一次所在的目录之间来回切
    
    • mkdir
    语法:
    	mkdir (选项)(参数)
    	
    功能:
    	创建目录
    
    选项:
    	-m<目标属性>或--mode<目标属性>:建立目录的同时设置目录的权限;
            -p或--parents: 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
    
    3)排序命令
    • sort
    语法:
    	sort (选项)(参数)
    	
    功能:
    	将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。
    	
    选项:
    	-n:数值排序
    	-r: 降序
    	-t: 字段分隔符
    	-k: 以哪个字段为关键字进行排序
    	-u: 排序后相同的行只显示一次
    	-f: 排序时忽略字符大小写
    
    • uniq
    语法:
    	uniq(选项)(参数)
    
    功能:
    	报告或删除文件中重复的行
    	
    选项:
    	-c: 显示文件中行重复的次数
    	-d: 只显示重复的行
    
    4)统计命令
    • wc
    语法:(word count)
    	wc (选项)(参数)
    
    功能:
    	用来计算数字。利用wc指令我们可以计算文件的Byte数、字数或是列数,若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据。
    
    选项:
    	-c或--bytes或——chars:只显示Bytes数;
    	-l或——lines:只显示列数;
    	-w或——words:只显示字数。		
    
    5)字符处理命令
    • tr
    语法:
    	tr(选项)(字符集1 字符集2)
    
    功能:
    	对来自标准输入的字符进行替换、压缩和删除。
    
    选项:
    	-c或——complerment:取代所有不属于第一字符集的字符;
            -d或——delete:删除所有属于第一字符集的字符;
            -s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;
            -t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。	
       
    参数:
    	字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;
    	字符集2:指定要转换成的目标字符集。
    
    详解见链接:
    https://www.cnblogs.com/ginvip/p/6354440.html
    
    6)日期时间管理命令
    • date
    语法:
    	date (选项)(参数)
    	
    功能:
    	显示或设置系统时间与日期。
    
    选项:	
    	-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
    	-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
    	-u:显示GMT;
    	--help:在线帮助;
    	--version:显示版本信息。 
    
    详细操作见链接:
    	http://man.linuxde.net/date	
    
    • clock/hwclock
    语法:
    	clock (选项)(参数)
    
    功能:
    	设置修改时间
    	
    详细操作见链接:
    	http://blog.csdn.net/YuYunTan/article/details/52589019
    
  • 相关阅读:
    python 中的深拷贝和浅拷贝
    时间复杂度
    为什么l1和l2可以防止过拟合
    逻辑回归实现多分类
    《深入浅出数据分析》读书笔记
    牛客网的输入和输出
    万物皆可embedding
    NLP中的mask的作用
    不同语言对单例模式的不同实现
    ElasticSearch 索引 VS MySQL 索引
  • 原文地址:https://www.cnblogs.com/cjaaron/p/8270687.html
Copyright © 2011-2022 走看看