Command——Linux common

1. 命令帮助及补齐

1>命令帮助
		1)--help
			命令 --help 	#命令+参数--help 查看命令帮助
			#示例: hostname --help
		2)man
			man man
			#man一共9卷 不同卷中可能有相同的函数名
			1	可执行程序或shell命令
			2	系统调用(内核提供的函数)
			3	库调用(程序库中的函数)
			4	特殊文件(通常位于 /dev)
			5	文件格式和规范,如 /etc/passwd
			6	游戏
			7	杂项(包括宏包和规范,如 man(7),groff(7)8	系统管理命令(通常只针对root用户)
			9	内核例程(非标准)
	2>补齐
		单击Tab 	#如果键入的单词只有一个相对应的命令,shell会自动给出相应的命令
		双击Tab 	#如果键入的单词后有多个相对应的命令,shell会自动给出所有命令

2. 光标移动

	ctrl+a 	#将光标移动到命令的最前
	ctrl+e 	#将光标移动到最后面
	ctrl+u 	#将该行已输入的代码清空

3. ssh

ssh连接远端服务器(实现的效果和SecurCRT或XShell类似):
	ssh -p 2222 用户名@IP	#不指定 -p参数 默认端口号为 22 
	例:ssh pl@10.219.10.39 

4. 关机和重启

	1)关机
	    shutdown -h now      	# 立刻关机
	    shutdown -h 5        	#5分钟后关机
	    poweroff            	#立刻关机
	2)重启
	    shutdown -r now       	#立刻重启
	    shutdown -r 5        	#5分钟后重启
	    reboot              	# 立刻重启

5.磁盘

	du #显示磁盘大小
	df  #查看磁盘使用情况

6. 压缩、解压

	1)格式简介
		linux自带压缩的格式: gzip 、bZip2
		#ubuntu 压缩解压命令:
			#gzip和gunzip只能进行单个文件压缩。
			#gzip file  #压缩文件file
			#gunzip file #解压缩文件file
	2)打包
		tar命令用来打包。	#不指定j或z参数代表仅打包文件
		tar cvf '指定的生成压缩包名' file1 dir2  #打包文件	
	3)压缩解压参数
		j 	#bZip2压缩格式
		z 	#gzip压缩格式
		c 	#create创建
		f 	#file创建压缩文件
		v 	#显示压缩过程,去掉就直接显示压缩结果
		x 	#解压
	4)压缩命令
		#指定的名字可以随便起,但一般以.gz命名。
		tar zcvf '指定的生成压缩包名' file1 dir2  #将文件file1和文件夹dir2一起打包以gzip格式压缩,
		tar jcvf '指定的生成压缩包名' file1 dir2  #将文件file1和文件夹dir2一起打包以bZip2格式压缩.
	5)解压命令
		-C #指定解压目录目录
		tar zxvf '指定的压缩包名'
		tar jxvf '指定的压缩包名' 
		tar jxvf a.gz -C test #解压到test文件夹下
	6)其他压缩工具
		①rar
			1.安装
				sudo apt-get install rar  #ubuntu
				yum install rar		#centos
			2.参数及命令
				参数:
					a :压缩参数 必填项
					-r :递归
					x :解压参数
				压缩:
					rar a -r '指定压缩名' dir1 file2 #将文件夹dir1和文件file2打包压缩
				解压:
					unrar x '指定压缩名'  
					unrar x '指定压缩名'  test #解压到test文件夹下
		②zip(新版linux自带)
			1.参数
				-r :递归
			2.命令
				压缩:
					zip -r x.zip dir1 a.c #将文件夹dir1和文件a.c一起压缩为x.zip
				解压:
					unzip x.zip 		#解压文件x.zip
					-d #指定解压目录
					unzip x.zip -d test #将x.zip文件解压到test文件夹下
		③zst
			扩展名.zst表示存档由zstd压缩。
			1.安装
				sudo apt install zstd
			2.解压:
				可以按照如下命令进行解压:
				tar -I zstd -xvf xxxx.tar.zst

7. 目录和文件相关命令

	1)常用查找
		ls 					#显示当前文件夹下所有文件及文件夹
		ll 等同于 ls -l  	#显示当前文件夹下所有文件及文件夹 以及相应权限 
		ls -a 				#显示当前文件夹下所有文件,包含隐藏文件
		ls -l 文件或文件夹名 #显示指定文件或文件夹名下文件的详细信息 
		ls -dl 文件夹名  	#显示指定文件夹的详细信息
		ls -R 文件夹名  		#递归显示指定文件夹内的信息 必须是大写R。 R代表递归 recursion
		ls -Rl 文件夹名  	#递归显示指定文件夹内的详细信息
		
		pwd #显示当前目录
	2)目录增删改及移动
		①切换目录
			cd 文件夹名
			cd .	#代表当前目录
			cd .. 	#回退到上级目录
			cd -  	#回退到上次打开的目录
			cd ~  	#跳转到当前用户的家目录
		②创建目录
			mkdir    aaa            #在当前目录下创建一个名为aaa的目录
			mkdir    usr/aaa        #在指定目录下创建一个名为aaa的目录,前提usr必须已经存在
			mkdir -p aaa/bbb/ccc    #创建多及目录
		③删除目录
		#使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。为了防止这种情况的发生,可以使用“i”选项来逐个确认要删除的文件。如果用户输入“y”,文件将被删除
		#rm不仅可以删除目录,也可以删除其他文件或压缩包
			参数:
			 -f 	#忽略不存在的文件,强制删除,不给出提示。
			 -r 	#指示rm将参数中列出的全部目录和子目录均递归地删除。
			 -i 	#进行交互式删除。
			命令:
				rmdir 文件夹 	#删除空目录 非空会报错
				rmdir -r 文件夹 #递归删除目录无论该文件夹是否为空,
				rm -rf aaa    	#递归删除当前目录下的aaa目录(不询问)
				rm -ri temp   	#递归删除当前目录下的aaa目录(询问)
		④修改目录名
			mv old new #将目录名old改为new
		⑤移动目录
			cp -r 目录名称 目录拷贝的目标位置   #-r代表递归
			cp -a 目录名称 目录拷贝的目标位置   #-a代表所有文件
			cp 文件名a  文件名b  #以文件a创建文件b,b中数据同a
	3)文件增删改
		#linux系统文件类型:7+1
		-	#普通文件
		d	#目录文件
		c	#字符设备文件
		b	#块设备文件
		l	#链接文件,类似于windows下的快捷方式
		p	#表示该文件为命令管道文件。与shell编程有关的文件。
		s	#表示该文件为sock文件。与shell编程有关的文件,套接字。
		未知文件类型。
		#权限解读 
			#r表是读 (Read) 、w表示写 (Write) 、x表示执行 (eXecute) 
			#三个一组,例如:rwx(Owner)r-x(Group)r-x(Other)
			#硬链接解读详见下二
		①创建文件
			touch 文件名	#创建文件
			touch 'x y'		#文件名带特殊字符的创建方法1
			touch x\ y		#文件名带特殊字符的创建方法2 ,转义字符
			cp 文件名a  文件名b  #以文件a创建文件b,b中数据同a
		②文件权限设置
			1)权限相关参数
				chmod	#设置文件权限
				u:user
				g:group
				o:others
				a:all
				+ :追加权限
				- :去掉相应权限,其他保留
				= :附上权限,并去掉其他权限
			2)文字设定法:
				chmod u+x a.c 	#给文件a.c加上用户的执行权限
				chmod go+wx a.c #给文件a.c加上组别和其他的写和执行权限
				chmod u+r,g+rwx,o+x a.c #给文件a.c加上相应权限
				-、=的用法和上面的+一致,不做赘述。
			3)数字设定法
				r :4
				w : 2
				x :	1
				chmod 471 a.c #相当于命令:chmod u+r,g+rwx,o+x a.c
				chmod 777 a.c  等同于 chmod a=rwx a.c  
			 相关用户组设置参照下4.
		③查看文件内容
			cat 文件名 		#显示文件中内容输出到到终端
			cat 不加文件名 	#读标准输入,遇到\n后输出到终端,输入ctrl+d结束cat命令
			more 文件名  	#分屏显示文件内容(显示百分比),空格翻页 回车 往下显示一行  q 退出
			less 文件名  	#分屏显示文件内容(不显示百分比),空格翻页    q 退出
			head 文件名  	#默认显示前10行内容
			head -15 文件名 #指定显示前15行内容
			tail -15 文件名 #指定显示后15行内容
		④查看文件属性
			wc 文件名 	#显示byte数、列数、字数
			wc -c 		#显示字节数 同 wc -bytes  同 wc -chars
			wc -l 		#显示列数  同 wc -lines
			wc -w 		#显示字数  同 wc -words
			od 文件名 	#查看当前文件二进制格式显示结果  也可在od后指定不同进制显示 详情自行百度
			du -h . 	#查看当前文件夹大小,以 M 或 K 显示
		⑤移动文件
			cp -r 目录及文件名称 目标位置  	#-r代表递归
			cp -a 目录 目标位置   			#-a代表所有文件
			cp 文件名a  文件名b  			#以文件a创建文件b,b中数据同a
	4)tree
		1.安装
			需安装(ubuntu安装命令)sudo apt-get install tree
		2.命令
			tree #按树结构显示当前文件夹下目录和文件  

8.用户及用户组

1)sudo adduser wangwu #添加用户wangwu
		sudo addgroup g8 	#添加用户组g8
	2)sudo deluser wangwu #删除wangwu
		sudo delgroup g8	#删除用户组g8
	3)改,指修改文件权限
		sudo chown wangwu a.c 	#将a.c文件的所有者变为wangwu用户
		sudo chgrp g8 a.c 		#将文件a.c的组修改为g8
		sudo chown nobody:nogroup a.c #ubuntu才能这么用。nobody:nogroup是系统自带的用户和组 将a.c所有者和组改为未知。
	4)切换用户
		su test		#切换到test用户,但是路径还是/root目录
		su - test : #切换到test用户,路径变成了/home/test
		su : 		#切换到root用户,但是路径还是原来的路径
		su - :		#切换到root用户,并且路径是/root
		su不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。

退出返回之前的用户:exit

9. find

	#以文件名作为搜索对象,查出的是一个结果集,并可以对相应的结果集进行操作
	man find #查看命令帮助
	1)参数
		-maxdepth 1  	#指定目录搜索层级
		-name			#指定搜索名
		-type			#指定搜索类型
		-size 			#按文件大小搜索 不指定大小默认为b(block),1b=512bytes 单位区分大小写
		-exec 			#将搜索结果执行某段命令
		-ok 			#交互式将搜索结果执行某段命令
		-xargs 			#管道命令参数,当结果集数量过大时,可以分片映射。
		-print 			#指定find的结果打印出来以空格间隔(默认打印可以不写)。-print0将结果集改为由null间隔
		#时间命令不常用 知道即可
		-amin -atime 	#最后一次访问(仅仅是访问,没有改动)
		-mmin -mtime 	#最后一次修改文件的时间
		-cmin -ctime 	#最后一次对文件属性改变的时间,包括权限,大小,属性等等
		
		
	2)用法示例
		find ./ -name '*.c'   			#查找当前文件夹下所有名字为.c的文件。会嵌套出内层文件夹的相应文件
		find ./ -maxdepth 1 -name '*.c' #查找当前文件夹下所有名字为.c的文件,不嵌套出内层文件夹的文件
		
		find ./ -type 'l' 	#查找当前文件夹下文件类型为软连接的文件,会嵌套出内层文件夹的文件
		find ./ -maxdepth 1 -type 'l' 	#查找当前文件夹下文件类型为软连接的文件,不嵌套出内层文件夹的文件
		
		find ./ -size +1k -size -2M   	#找出当前文件夹下文件大于1K小于2M的文件。
		
		find 结果集默认是以空格分开,修改为以null分开,需添加参数-print0
		find ./ -maxdepth 1 -type f -print0 | xargs -print0 ls -l
		
		find ./ -maxdepth 1 -type f -exec ls -l {} \;  等同于 find ./ -maxdepth 1 -type f | xargs ls -l  
		#find用管道命令,必须加参数xargs。exec是将结果集整体处理。使用xargs的效率更高,因为它是分块处理(如100万行结果集,会先执行一万再执行下一万)。
		#查找出文件类型为f的文件,并给每个文件执行ls -l 命令。{}指代find ./ -maxdepth 1 -type f的结果集,\;中\为转义字符 ;为语法。
		#示例:
		#[root@bogon Desktop]# find ./ -maxdepth 1 -type 'f'
		#./a.c
		#./b.cpp
		#[root@bogon Desktop]# find ./ -maxdepth 1 -type f -exec ls -l {} \;
		#-r--rwx--x. 2 root root 7 Dec 31 02:14 ./a.c
		#-rw-r--r--. 1 root root 7 Dec 31 02:14 ./b.cpp
		
		find ./ -maxdepth 1 -type f -exec rm -r {} \; #删除当前文件夹下f类型的文件(不询问)
		find ./ -maxdepth 1 -type f -ok rm -r {} \; #删除当前文件夹下f类型的文件(询问,n不执行,y执行)
		#示例:
		#[root@bogon Desktop]# find ./ -maxdepth 1 -type f -ok rm -r {} \;
		#< rm ... ./a.c > ? n
		#< rm ... ./b.cpp > ? n

10. grep

	#以文件内容作为搜索对象,常配合管道 | 进行应用
	grep 参数 查找条件 文件名
	1)参数:
		-c	#只输出匹配行的计数。
		-I	#不区分大 小写(只适用于单字符。
		-l	#查询多文件时只输出包含匹配字符的文件名。
		-n	#显示匹配行及 行号。
		-s	#不显示不存在或无匹配文本的错误信息。
		-v	#显示不包含匹配文本的所有行。
	2)common
		grep -r '搜索内容' ./ -n #在当前文件夹下递归搜索包含指定内容的文件,并给出行号
		grep 'test' d* 				#显示所有以d开头的文件中包含 test的行。
		grep 'test' aa bb cc 		#显示在aa,bb,cc文件中匹配test的行。
		grep '[a-z]\{5\}' aa		#显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
		grep -v test *test* 		#反向查找,通过"-v"参数可以打印出不符合条件行的内容
		
		ps -ef | grep sshd  				#查找指定ssh服务进程
		ps -ef | grep sshd | grep -v grep   #查找指定服务进程,排除gerp身
		ps -ef | grep sshd -c 				#查找指定进程个数

11. 进程相关

	ps [选项]
	1)选项:
		-e 显示所有进程
		-f 全格式
		-h 不显示标题
		-l 长格式
		-w 宽输出
		-r 只显示正在运行的进程
		-a 即all,查看当前系统所有用户的所有进程,与 -e 具有同样的效用;
		-u 以用户为主的进程状态 
		-x 显示没有控制终端的进程。就是不需要和用户进行交互
		
	2)common 
		ps ajx  #这个最常用,格式化格式显示所有进程。
		ps aux #查看所有系统进程,和windows任务管理器类似
		ps aux |grep 'abc' #查找进程中aux结果集中任一列包含abc的进程
		
		ps -Lf 进程id #查看线程号
		who #显示当前用户的进程
		jobs #查看当前用户下后天运行的进程
		fg  前台进程切换
		bg  后台进程切换
		kill 
		top 文字版的任务管理器
		ls -l 程序名 #查看正在运行程序的大小
		
		Ctrl+C 		#终止任务运行快捷键
		killall programname #杀死多个后台运行程序。一次全杀死,这个就相当于先找到名字叫programname的所有程序对应的ID,然后循环执行kill ID的命令
		kill ID 	#根据ID每次杀死一个
		kill -9 ID 	#强制杀死进程
		killall -信号数字 程序名 #指定执行某信号
		程序命令 & 	#运行某个命令后面加&,代表后台运行
			#示例:sleep 5 & #在后台运行sleep,而前台可以做任何操作;如果不加&,前台就需要等sleep 5秒后再进行相关操作
		
		ps			#ps 查看当前终端的进程,也就是当前terminal中运行的进程。
		ps -ef		#查看系统全部的进程
			#如下ps结果列名:
			#UID    :启动进程的操作系统用户。
			#PID    :进程编号。
			#PPID   :进程的父进程的编号。
			#C          :CPU使用的资源百分比。
			#STIME :进程启动时间。
			#TTY     :进程所属的终端。
			#TIME   :使用掉的CPU时间。
			#CMD   :执行的是什么指令。
		
		ps -ef |more  		#查看系统全部的进程,结果分页显示。
		ps -ef |grep book 	#查看系统全部的进程,然后从结果集中过滤出包含“book”单词的记录。程序员用得最多的指令就是这个了。
		ps -ef |grep 进程名|wc #统计当前正在运行程序进程的个数,最后的wc就是统计行数的意思,而一行信息对应一个文件或程序
		
		tail -f filename 	#查看文件动态变化,比如查看日志文件的实时写入状态

12. 线程相关

	ps -xH 					#查看系统全部线程
	ps -xH |grep threadname #查看系统全部的进程,然后从结果集中过滤出包含“threadname”单词的记录。

	通过进程ID查看线程ID:
		1.以线程数的形式查看
			pstree -p $pid #1.以线程数的形式查看
		2.动态形式查看线程数	
			top -Hp $pid #2.动态形式查看线程数,线程销毁时这个动态显示也会消失

13.网络编程相关

13.1 最大文件描述符数

分为 用户级限制 和 系统级限制。

1.用户级
	ulimit -n 	#查看用户级文件描述符限制
	
	#临时修改用户级限制,当前 session 有效:
		ulimit -SHn max-file-number	#将用户级文件描述符限制设定为 max-file-number,临时的,只在当前 session 有效
	
	永久修改用户级文件描述符数限制,可以在 /etc/security/limits.conf 中加入如下两项:
		hard nofile max-file-number	#硬限制
		soft nofile max-file-number	#软限制

2.系统级
	# 临时修改系统限制:
		sysctl -w fs.file-max=max-file-number	
	
	#永久修改
		在 /etc/sysctl.conf 中添加如下一项:
			fs.file-max=max-file-number
			之后执行 sysctl -p 使更改生效。

13.2 调整内核参数

/proc/sys #内核参数所在文件夹

sysctl -p #load the settings from a configuration file

1. /proc/sys/fs 目录下文件
		sysctl -a #查看所有内核参数
		
		#下面两个一般配合使用
			/proc/sys/fs/file-max	#系统级文件描述符限制。一般修改这个后,需把同时修改 /proc/sys/fs/inode-max	
			/proc/sys/fs/inode-max	#设置为 /proc/sys/fs/file-max 值得 3~4 倍。
		
		/proc/sys/fs/epoll/max_user_watches	#一个用户能往epoll内核事件表中注册事件总量(所有epoll 实例)。
		
2. /proc/sys/net 目录下文件
	#指定 listen 监听队列,能够建立完整连接从而进入 ESTABLISHED 状态的 socket 最大数目。
			/proc/sys/net/core/somaxconn	
	
	#指定 listen 监听队列,能够转移至 ESTABLISHED 或 SYN_RCVD 状态的 socket 最大数目
			/proc/sys/net/ipv4/tcp_max_syn_backlog
	
	#含 3 个值,分别指定一个 socket 的 TCP 写 缓冲区的最小值、默认值和最大值。
			/proc/sys/net/ipv4/tcp_wmem
	
	#含 3 个值,分别指定一个 socket 的 TCP 读 缓冲区的最小值、默认值和最大值。
			/proc/sys/net/ipv4/tcp_rmem	
			#可以修改这个参数来改变接收通告窗口大小
	
	#指定是否打开 TCP 同步标签(syncookie)
			/proc/sys/net/ipv4/tcp_syncookies
			#同步标签通过启用 cookie 防止监听socket不停重复接收来自同一个地址的连接请求(同步报文段),
			而导致 listen 监听队列溢出(所谓的 SYN 风暴)。
	
	netstat -apn |grep 端口号 #查看网络通信时,客户端或服务端的状态 
	nc 127.0.0.1 10001 #模仿客户端连接服务器,TCP做的
	netstat -an | grep 8080   #搜索指定端口8080
	netstat -an  	#查看当前系统端口
	
	cat /proc/sys/fs/file-max	#查看当前计算机所能打开的最大文件个数。受硬件影响
	ulimit -a #当前用户下的进程,默认打开文件描述符个数。缺省为 1024.
			  修改默认文件描述符个数:
			  		1.打开 sudo vi /etc/security/limits.conf
			  		2.写入 
			  				* soft nofile 65535   #设置open files的默认值。也可以直接通过命令修改,如下:
			 												ulimit -n  10240  #将open files的值设置为10240. 每次都需要注销用户令其生效。 										
							* hard nofile 65535   #命令修改上限。 soft nofile 后及 ulimit -n 后的值都不能超过此值。

Other.常用命令

	ldd ./hello 	#list, dynamic, dependencies (列出动态库依赖关系)		
	strace ./mycp 	#跟踪打印出程序执行时的系统调用
 	cat /etc/shells #查看当前系统下有哪些shell
 	echo $SHELL 	#查看当前正在使用的shell
	history 		#查看历史使用过的命令
	sudo passwd 用户名 #设置用户密码
	ifconfig 		#查看网卡信息
	free -m 		#查看空闲内存
	od -tcx filename #查看文件的16进制表示形式
	od -tcd filename #查看文件的10进制表示形式
	service network restart   #重启网络
	readlink 链接 	#读链接本身
	whoami			#查看当前登录用户
	which 命令  	#显示可执行命令文件所在文件夹
	alt+n 			#切换终端标签。n为1、2、3... 
	alias 			#给一段命令起别名
		#示例:
		#[root@bogon Desktop]# alias pg='ls -l'
		#[root@bogon Desktop]# pg
		#total 24
		#-r--rwx--x.  1 root root   13 Jan  3 20:10  a.c
		#-rw-r--r--.  1 root root    7 Dec 31 02:14  b.cpp
		#lrwxrwxrwx.  1 root root   17 Dec 31 03:41  d.c -> /root/Desktop/a.c
	echo 			#显示字符串
		#示例:
		#[root@bogon Desktop]# echo aaa
		#aaa
	umask 			#掩码,设定权限用,详情百度	
	env 			#显示系统所有环境变量
		#示例:
		#[root@bogon Desktop]# env | grep SHELL
		#SHELL=/bin/bash

Other. OtherConfig

1.防火墙及配置

1.1 centos

注:CentOS7及以后的版本适用此命令,之前的版本请自行百度

#安装防火墙,如果没有安装防火墙,下面的命令都会无效
sudo apt install firewalld
------------------------查看防火墙的命令----------------------------
#查看防火墙的版本
firewall-cmd --version
#查看防火墙的状态。
firewall-cmd --state
#查看防火墙服务状态(普通用户可执行)
systemctl status firewalld
#查看防火墙全部的信息
firewall-cmd --list-all
#查看防火墙已开通的端口
firewall-cmd --list-port
#查看防火墙已开通的服务
firewall-cmd --list-service
#查看全部的服务列表(普通用户可执行)
firewall-cmd --get-services
#查看防火墙服务是否开机启动。
systemctl is-enabled firewalld

------------------------配置防火墙的命令----------------------------
# 启动
systemctl start firewalld
# 重启
systemctl restart firewalld
# 关闭
systemctl stop firewalld

# 开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 移去80端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent

# 开放5000-5500之间的端口
firewall-cmd --zone=public --add-port=5000-5500/tcp --permanent
# 移去5000-5500之间的端口
firewall-cmd --zone=public --remove-port=5000-5500/tcp --permanent

# 开放ftp服务
firewall-cmd --zone=public --add-service=ftp --permanent
# 移去http服务
firewall-cmd --zone=public --remove-service=ftp --permanent

#重新加载防火墙配置(修改配置后要重新加载防火墙配置或重启防火墙服务)
firewall-cmd --reload

# 启用服务
systemctl enable firewalld
# 禁用服务
systemctl disable firewalld

1.2 ubuntu

参考链接

sudo ufw status #检查 UFW 的状态
sudo ufw allow 7722/tcp	#允许连接通过那个端口
sudo ufw allow 7100:7200/tcp	#允许端口从7100到7200 支持 tcp
sudo ufw allow 7100:7200/udp	#允许端口从7100到7200 支持 udp
sudo ufw allow from 64.63.62.61	#允许指定 IP 地址访问指定端口
sudo ufw allow from 64.63.62.61 to any port 22	#允许给定 IP 访问指定的端口,使用to any port关键字加上端口号
sudo ufw disable	#关闭开机自启,并关闭服务
sudo ufw enable		#开启开机自启,并开启服务

2. 查看以及执行.sh文件方法(测试并发程序时常用)

----------------------------------查看.sh文件---------------------------------------
#1.(必须先装有vim编辑器)在bash窗口中输入:
vi 文件名.sh
----------------------------------执行.sh文件方法-----------------------------------
#1.在bash窗口,利用命令执行
sh 文件名.sh
#2.cd到.sh文件的目录下,然后
./文件名.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值