Linux学习 基本命令(一)

Linux学习 基本命令(一)

命令行接口

[root@node1 ~]# COMMAND
				prompt:
					root: 当登录的用户
					node1: 当前主机的主机名,非完整格式;此处的完整格式为:node1.magedu.com
					~:用户当前所在的目录(current directory),也称为工作目录(working directory);相对路径;
					#:命令提示符;
						#:管理员账号,为root; 拥有最高权限,能执行所有操作;
						$:普通用户,非root用户;不具有管理权限,不能执行系统管理类操作;

文件名命名规则

	1.严格区分字符大小写:file1, File1, FILE1
	2.目录也是文件,在同一路径下,两个文件不能同名;
	3.支持使用除/以外的任意字符;
	4.最长不能超过255个字符;

命令语法

通用格式:
	# 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

		命令分为两类:
				由shell程序的自带的命令:内置命令(builtin)
				独立的可执行程序文件,文件名即命令名:外部命令

		shell程序是独特的程序,负责解析用户提供的命令;
				环境变量:
					PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件;  
					echo $PATH   查找次序:自左而右;
		查看命令类型:
				type COMMAND
				type type --- type is a shell builtin
				type ls ---ls is aliased to `ls --color=auto`

OPTIONS:
			指定命令的运行特性;
			选项有两种表现形式:
				短选项:-x, 例如-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
				
				SECTIONNAME:功能性说明
						SYNOPSIS:语法格式
						DESCRIPTION:描述
						OPTIONS:选项
						EXAMPLES:使用示例
						AUTHOR: 作者
						BUGS: 报告程序bug的方式
						SEE ALSO: 参考
						...
				SYNOPSIS: 
						[]:可选内容;
						<>:必须提供的内容;
						a|b|c:多选一;
						...:同类内容可出现多个;

				使用手册:压缩格式的文件,有章节之分;
						/usr/share/man
						man1, man2, ...

						1:用户命令;
						2:系统调用;
						3C库调用;
						4:设备文件及特殊文件;
						5:文件格式;(配置文件格式)
						6:游戏使用帮助;
						7:杂项;
						8:管理工具及守护进行;

			# man CHAPTER COMMAND
						注意:并非每个COMMAND在所有章节下都有手册;
						查看命令所处章节:
								# whatis COMMAND
            注意:其执行过程是查询数据库进行的;
            手动更新数据库:   # makewhatis
			
			man命令打开手册以后的操作方法:
					翻屏:
						空格键:向文件尾翻一屏;
						b: 向文件首部翻一屏;
						Ctrl+d:向文件尾部翻半屏;
						Ctrl+u:向文件首部翻半屏;
						回车键:向文件尾部翻一行;
						k: 向文件首部翻一行;
						G:跳转至最后一行;
						#G: 跳转至指定行;
						1G:跳转至文件首部;

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

常用命令

cd ~:切换回自己的家目录
cd ~USERNAME:切换至指定用户的家目录;
cd -:在上一次所在目录与当前目录之间来回切换;
相关的环境变量
$PWD:当前工作目录
$OLDPWD:上一次的工作目录

ls: list, 列出指定目录下的内容
  ls [OPTION]... [FILE]...

    -a: 显示所有文件,包括隐藏文件;
    -A:显示除.和..之外的所有文件;
    -l: --long, 长格式列表,即显示文件的详细属性信息;
    -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:文件名
    -h, --human-readable:对文件大小单位换算;换算后结果可能会非精确值;
    -d:查看目录自身而非其内部的文件列表;
    -r: reverse, 逆序显示;
    -R: recursive,递归显示;
    
    
cat:concatenate
  文件文本查看工具;
  cat /etc/fstab
  cat /etc/passwd

	cat [OPTION]... [FILE]...
    -n:给显示的文本行编号;
    -E: 显示行结束符$;

tac(文本逆序显示):
	文件文本查看工具;
  tac /etc/fstab
  tac /etc/passwd

  tac [OPTION]... [FILE]...
    -n:给显示的文本行编号;
  	-E: 显示行结束符$;

file:查看文件内容类型;
	file [FILE]...
	
echo:回显
	echo [SHORT-OPTION]... [STRING]...	
		-n: 不进行换行;
		-e:让转义符生效;
				\n:换行
				\t:制表符

			STRING可以使用引号,单引号和双引号均可用;
				单引号:强引用,变量引用不执行替换;
							# echo '$SHELL'
				双引号:弱引用,变量引用会被替换;
							# echo "$SHELL"
				注意:变量引用的正规符号  ${name}
				
shutdown:关机或重启命令
	shutdown [OPTIONS...] [TIME] [WALL...]
			OPTIONS:
						-h: halt
						-r:reboot
						-c:cancel

					TIME:
						now (+0)
						hh:mm
						+m
					WALL

日期相关的命令:
	Linux:系统启动时从硬件读取日期和时间信息;读取完成以后,就不再与硬件相关联;
		系统时钟
		硬件时钟
				
		date:系统时钟
			显示日期时间:date [OPTION]... [+FORMAT]
				FORMAT:格式符
						%F
						%T
						%Y
						%m
						%d
						%H
						%M
						%S
						%s: 从1970年1月1号(unix元年)0点0分0秒到命令执行那一刻经过的秒数;
							...

			设定日期时间:date [MMDDhhmm[[CC]YY][.ss]]

		hwclock, clock:硬件时钟
			显示或设定硬件时钟
			-s, --hctosys:以硬件为准,把系统调整为与硬件时间相同;
			-w, --systohc:以系统为准,把硬件时间调整为与系统时钟相同;				

		cal:日历
		 cal [[month] year]

alias(命令别名):
	获取所有可用别名的定义:
		# alias
	定义别名:
		# alias NAME='COMMAND'
	注意:仅对当前shell进程有效
	撤销别名:
		# unalias NAME

which命令:
			which - shows the full path of (shell) commands

			which [options] programname [...]
				--skip-alias:忽略别名

whereis命令:
			whereis - locate the binary, source, and manual page files for a command

			whereis [options] name...
				-b: 仅搜索二进制程序路径;
				-m:仅搜索使用手册文件路径;

who命令:
			who - show who is logged on

			who [OPTION]...
			 	-b: 系统此次启动的时间;
			 	-r: 运行级别;

w命令:
			w - Show who is logged on and what they are doing.
					
创建目录: mkdir /tmp/{t1, t2}   相当于 /tmp/t1   /tmp/t2

more命令:
			more FILE
				特点:翻屏至文件尾部后自动退出;

less命令:
			less FILE

head命令:
			查看文件的前n行;
				head [options] FILE
					-n #
					-#

tail命令:
			查看文件的后n行;
				tail [options] FILE
					-n #
					-#
					-f:查看文件尾部内容结束后不退出,跟随显示新增的行;

stat命令:
			stat - display file or file system status
			stat FILE...
			stat table_config.log 
        File: ‘table_config.log’
        Size: 535             Blocks: 8          IO Block: 4096   regular file
      Device: 810h/2064d      Inode: 579626      Links: 1
      Access: (0644/-rw-r--r--)  Uid: ( 1241/zhang.xl)   Gid: ( 1154/ cdh_etl)
      Access: 2019-08-02 11:42:48.290646319 +0800
      Modify: 2019-08-02 11:42:35.681366551 +0800
      Change: 2019-08-02 11:42:35.681366551 +0800
       Birth: -

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

cp命令:copy
			源文件;目标文件;

	       单源复制: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 /*
	    			
IO重定向及管道
	程序的数据流有三种:
				输入的数据流;<-- 标准输入(stdin),键盘;
				输出的数据流:--> 标准输出(stdout),显示器;
				错误输出流:  --> 错误输出(stderr),显示器;

			fd: file descriptor,文件描述符
				标准输入:0
				标准输出:1
				错误输出:2

		IO重定向:

			输出重定向:>
				特性:覆盖输出
			输出重定向:>>
				特性:追加输出

			# set -C
				禁止覆盖输出重定向至已存在的文件;
				此时可使用强制覆盖输出:>|
			# set +C
				关闭上述特性

			错误输出流重定向:2>, 2>>

			合并正常输出流和错误输出流:
				(1) &>, &>>
				(2) COMMAND > /path/to/somefile 2>&1
				    COMMAND >> /path/to/somefile 2>&1

				特殊设备:/dev/null

			输入重定向:<

快捷键

调用上一条命令的最后一个参数:
				快捷键:ESC, . (先按ESC松开,再按.)
				字符串:!$
				eg:cat   vi /etc/belle/bdc_aomp_api/app.cfg
						vi ESC, .或!$ 会使用 /etc/belle/bdc_aomp_api/app.cfg 参数
						
Ctrl+a:跳转至命令行行首
Ctrl+e:跳转至命令行行尾
Ctrl+u:删除行首至光标所在处之间的所有字符;
Ctrl+k:删除光标所在处至行尾的所有字符;
Ctrl+l:清屏,相当于clear

Shylin

你可能感兴趣的:(centOS,Linux)