Linux-命令大全

Posted 人塞不能怨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux-命令大全相关的知识,希望对你有一定的参考价值。

Linux-命令大全

查看

#查看目录	[DIR]缺省认位当前目录
ls [DIR]	#查看目录中的内容简单列表
ll [DIR]		#查看详情列表
ls -la [DIR]	#查看所有内容,包括隐藏内容
#查看文件	输出至控制台=>标准输出
cat [-n] FILE_PATH #查看文件中的所有内容
head -n FILE_PATH #查看文件 前n行的内容
tail -n FILE_PATH #查看文件后n行的内容
	#查看/etc/profile文件的第6~10行的内容
	head -10 /etc/profile>tmp.log
	tail -5 tmp.log
	rm -f tmp.log
	#或使用管道符
	gead -10 /etc/profile|tail -5
grep 'CONTENT' FILE_PATH
#管道符【允许多重管道】
cat /etc/profile|grep usr
#重定向
	STD_CONSOLE_OUT>FILE_PATH
	# > 覆盖模式
	# >> 追加模式
	COMMAND>>info.log 2>>error.log #正常信息和异常信息分别输出到不同文件
	COMMAND>>info.log 2>>&1 #正常信息和异常信息输出到相同文件

权限

#权限详解
#权限		层级    所有者	所属组	字节大小	     创建日期		资源名称
-rw-r--r--. 1 		root 	root  	411 		May 26 09:46 	tmp.log
# 第一部分
		# -	文件
		# d 目录
		# l 链接	类似于windows快捷方式
	# 后三个部分分别代表三个身份用户对该资源的的权限
		# 所有者
		# 组内用户
		# 组外用户
	# 权限的构成	r=>read读 w=>write写 x=>execute执行
	权限类型	   二进制	十进制
	---			000		0
	r--			100		4
	-w-			010		2
	--x			001		1
	rw-			110		6
	r-x			101		5
	-wx			011		3
	rwx			111		7
#修改操作权限和所有权
chmod u/g/o(=/+/-)(rwx) SOURCE
chmod 777 SOURCE
chown USER_:GROUP_NAME SOURCE

用户

#查看
vim/cat /etc/passwd
	用户名		密码	   用户ID		分组ID		组名			   当前用户主目录		当前用户的SHELL命令集类型
	simin	:	x	:	1000	:	1000	:	simin		 :	/home/simin		:	/bin/bash
	mysql	:	x	:	27		:	27		:	MySQL Server :	/var/lib/mysql	:	/bin/false
#创建用户
useradd USER_NAME -g PRIMARY_GROUP -G SECONDARY_GROUP -d USER_PATH -p USER_PASSWORD
#删除组内用户
gpasswd -d USER_NAME GROUP_NAME
#删除用户【自动级联删除已绑定的分组用户列表中的用户】
userdel -r USER_NAME #-r删除用户所有文件目录
#修改用户信息
usermod USER_NAME -G GROUP_NAME #追加次分组

分组

#查看
	vim /etc/group
	组名		密码	组ID		组内用户
	simin	:	x	:	1000	:	simin
	mysql	:	x	:	27		:
#添加分组
groupadd GROUP_NAME
#删除分组
groupdel GROUP_NAME
#进程操作
kill -9 PROCESS_ID 强制结束进程
#执行命令
	#原始命令
	ls -la /etc/profile.d|grep vim
	#特殊方式
	#将命令执行的结果存入文件

文件和目录

#目录 默认权限:755
#绝对路径和相对路径
	#相对路径
	./
	#绝对路径
	/PATH/...
#创建目录【支持多并列】
mkdir DIR_NAME[DIR_NAME2...]
#创建多级目录
mkdir -p PATH/SUB_PATH/...
#删除目录
rm -d PATH 	#删除空目录
rm -rf PATH #强制递归删除目录指向的所有资源(包括目录本身)
#查看当前目录
pwd
#目录切换
cd PATH
cd ../	#返回上一级
cd ~	#返回当前用户的主目录
cd /	#退回当前系统的根目录

#文件 默认权限:644
#创建
touch FILE_PATH #返回上一级
vi(m) FILE_PATH #创建并操作、编辑文件
	#默认进入命令行模式
		shift+g #调制最后一行
		/FIND_CNT #在当前文件中检索
		#=> 通过o/i切换至编辑模式
		#=> esc返回命令行模式
		#退出
			shift+zz #快捷键:保存并退出
			:x		 #快捷键:保存并退出
			:wq!	 #:w保存不退出:q退出不保存!强制执行
	#编辑
		#修改vim tab缩进为4个字符
		vim /etc/vimrc
		------------------
		set tabstop=4
		------------------
	#删除
		rm -f FILE_PATH
	#移动
		mv FILE_PATH DEST_DIR #移动
	#移动
		mv FILE_PATH DEST_FILE_PATH #[移动且]重命名
	#拷贝
		cp FILE_PATH DEST_DIR
	#文件统计:行数,单词书,字符数
		wc FILE_PATH
#解压文件
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /opt/software/java/
# -z *.gz
# -x 解压
# -c 压缩
# -v 输出详情
# -f 固定格式符
#压缩文件
tar -zcvf hadoop313.tar.gz hadoop313/

vim文件编辑

#常用vim命令
#移动
h	⬅
j	⬇
k	⬆
l	➡
#选取
命令行 v
#复制行
命令行 yy
#删除兼前且
命令行 dd
#粘贴
命令行 p
#保存和退出
shift + zz
#字符查找
命令行输入 /关键字
#字符替换
			范围	替换标识	要替换的字符	      替换后字符	g(global) c(confirm) i(ignorecase)
	#例子 : 1,$		s			/path		/dir		/gc
			#%=(1,$)
			#(.$) 当前行到末尾
		/_  #替换首个
		//_ #替换所有
#例子:替换掉文中所有冒号
:%s/"//g

sed文件编辑

#sed函数
#非交互流式文本【编辑】器
#对文本文件进行增、删、改、查等操作
#支持瀚航、字段、正则匹配文本内容
#基本语法
	sed [-opts] 'COMMAND' FILE_PATH
#选项参数
		-n #编辑结果不输出
		-r #支持正则匹配
	sed -rin '/^#jdk/,/^CLASSPATH/d' myenv.d
		-e #支持油条有分号隔开的sed命令
	sed -n -e 's/usr/USER/g;s/profile/PROFILE/g' profile
		-f #将命令封装在文件中使用
		vim opr.sed
		----------------
		s/usr/USER/g;
		s/profile/PROFILE/g;
		----------------
	sed -f opr.sed profile
		-i #无-i只输出预览,可以重定向到文件或覆盖源文件
#动作说明
	i	#插入:向匹配行之前插入内容
	#在第三行之前插入hello
		sed '3ihello' 1.txt
	#"unset i"上插入AABBCC
		sed -i '/unset i/iAABBCC' profile
	#"unset i"下插入AABBCC
		sed -i '/unset i/aAABBCC' profile
	#在最后一行之前插入hello
		sed '$ihello' 1.txt
	#在第一行之前插入空行
		sed -in '1x;p;x' $ENV_DIR
	#在匹配行之前插入
		sed -in '/games/x;p;x' 1.txt
	#在匹配之后插入
		sed -in '/games/G' 1.txt
	#在匹配之前和之后插入
		sed -in '/games/x;p;x;G' 1.txt
	#在每一行之后添加空行
		sed -in G 1.txt
	#在每一行之后添加两行空行
		sed -in 'G;G' 1.txt
	#不管有没有空行,保证只有一个空行
		sed -in '/^$/d;G' 1.txt
		
	a	#追加:向匹配行后插入内容
	#向第三行后面添加hello,3表示行号
		sed '3ahello' 1.txt 
	#向内容123后面添加hello,如果文中包含多行123,则每行后面都会添加
		sed '/123/ahello' 1.txt 
	#在最后一行添加hello
		sed '$ahello' 1.txt
	c	#更改:更改匹配行的内容
	
	#将文件1.txt的第一行替换为hello
		sed '1chello' 1.txt
	#将包含123的行替换为hello
		sed '/123/hello' 1.txt
	#将最后一行替换为hello
		sed '$chello' 1.txt
		
	d	#删除
	#删除第四行
		sed '4d' 1.txt
	#从第一行开始删除,每个2行就删掉一行,级删除奇数行
		sed '1~2d' 1.txt
	#删除1~2行
		sed '1,2d' 1.txt
	#删除1~2之外的所有行
		sed '1,2!d' 1.txt
	#删除最后一行
		sed '$d' 1.txt
	#删除匹配123的行
		sed '/123/d' 1.txt
	#删除匹配123的行到最后一行
		sed '/123/,$d' 1.txt
	#删除匹配123的行及其后面一行
		sed '/123/,+1d' 1.txt
	#删除空行
		sed '/^$/d' 1.txt
	#删除不匹配123或abc的行,/123\\|abc/表示匹配123或abc,!取反
		sed '/123\\|abc/!d' 1.txt
	#删除1~3行中,匹配内容123的行,1,3表示匹配1~3行,/123/d表示删除匹配123的行
		sed '1,3/123/d' 1.txt

	s	#替换
	#将文件中的123替换为hello,默认只替换为hello,默认只替换每行第一个123
		sed 's/123/hello/' 1.txt
	#将文本中所有的123都替换为hello
		sed 's/123/hello/g' 1.txt
	#将每行中第二个匹配的123替换为hello
		sed 's/123/hello/2' 1.txt
	#将每行中所有匹配的123替换为hello,并将替换后内容写入2.txt
		sed -n 's/123/hellp/gpw 2.txt' 1.txt
	#匹配有#号的行,替换匹配行中逗号后的所有内容为空(,.*)表示逗号后的所有内容
		sed '/#/s/,.*//g' 1.txt
	#替换每行中的最后两个字符为空,每个点代表一个字符,$表示匹配末尾(..$)表示匹配最后两个字符
		sed 's/..$//g' 1.txt
	#将1.txt文件中以#开头的行替换为空行,即注释的行(^#)表示匹配以#开头,(.*)代表所有内容
		sed 's/^#.*//g' 1.txt
	#先替换1.txt文件中所有注释的空行为空行,然后删除空行,替换和删除操作中间用分号隔开
		sed 's/^#.*//;/^$/d' 1.txt
	#将每一行中行首的数字加上一个小括号(^[0-9])表示行首是数字,&符号代表匹配的内容
		sed 's/^[0-9]/(&)/' 1.txt
	#替换左侧特殊字符需要转义,右侧不需要转义,\\1代表匹配的内容
		sed 's/[0-9]/(\\1)/' 1.txt
	#在文件的每一行后面加上“haha”字段
		sed 's/$/&'haha'/' 1.txt
	p	#打印
	=	#用来打印配匹配的行的行号
	n	#读取下一行,遇到n时会自动跳入下一行
	r,w	#都和谐编辑命令,r用于将内容读入文件,w云关于将匹配聂荣写入到文件

文件传输

使用scp或rsync进行传输

#将文件推送至目标服务器
#scp
scp /root/script/* root@xxx.xxx.xxx.xxx:/root/script
#将远程服务器文件拖到本地
scp root@xxx.xxx.xxx.xxx:/root/script/* /root/script

#rsync在scp基础上提供扩展,rsync命令后需加参数,其他类似scp
rsync -r ...

以上是关于Linux-命令大全的主要内容,如果未能解决你的问题,请参考以下文章

Linux-命令大全

Linux-命令大全

Linux常用命令大全(全面)

Linux 命令大全

红帽linux命令大全

Linux命令大全总结