Linux常用命令

2021/5/17 7:27:29

本文主要是介绍Linux常用命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Linux常用命令

记录部分命令,更多请查看菜鸟教程 。学习笔记,如有错误请大佬指点!!!

一、网络相关

1.wget:是一种下载工具。可以下载网络上的资源,有点类似于迅雷。

比如安装redis时需要先下载redis软件然后再安装,那就用wget命令

2.curl命令

curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。

#语法
curl [option] [url]
#参数
    -A/--user-agent <string>      设置用户代理发送给服务器
    -b/--cookie <name=string/file>    cookie字符串或文件读取位置
    -c/--cookie-jar <file>            操作结束后把cookie写入到这个文件中
    -C/--continue-at <offset>         断点续转
    -D/--dump-header <file>           把header信息写入到该文件中
    -e/--referer                      来源网址
    -f/--fail                         连接失败时不显示http错误
    -o/--output                       把输出写到该文件中
    -O/--remote-name                  把输出写到该文件中,保留远程文件的文件名
    -r/--range <range>                检索来自HTTP/1.1或FTP服务器字节范围
    -s/--silent                       静音模式。不输出任何东西
    -T/--upload-file <file>           上传文件
    -u/--user <user[:password]>       设置服务器的用户和密码
    -w/--write-out [format]           什么输出完成后
    -x/--proxy <host[:port]>          在给定的端口上使用HTTP代理
    -#/--progress-bar                 进度条显示当前的传送状态

基本用法:

curl http://www.linux.com #执行后,www.linux.com 的html就会显示在屏幕上了

Ps:由于安装linux的时候很多时候是没有安装桌面的,也意味着没有浏览器,因此这个方法也经常用于测试一台服务器是否可以到达一个网站

保存访问的网页
curl http://www.linux.com >> linux.html

二、进程相关

1.netstat命令用于显示网络状态。

部分参数:
    -a或--all 显示所有连线中的Socket。
    -A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
    -c或--continuous 持续列出网络状态。
    -h或--help 在线帮助。
    -i或--interfaces 显示网络界面信息表单。
    -l或--listening 显示监控中的服务器的Socket。
    -M或--masquerade 显示伪装的网络连线。
    -n或--numeric 直接使用IP地址,而不通过域名服务器。
    -o或--timers 显示计时器。
    -p或--programs 显示正在使用Socket的程序识别码和程序名称。(PID)
    -s或--statistics 显示网络工作信息统计表。
    -t或--tcp 显示TCP传输协议的连线状况。
    -u或--udp 显示UDP传输协议的连线状况。
    -V或--version 显示版本信息。
    
网络状态:
	LISTEN:侦听来自远方的TCP端口的连接请求
	SYN-SENT:再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了)
	SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)
	ESTABLISHED:代表一个打开的连接
	FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
	FIN-WAIT-2:从远程TCP等待连接中断请求
	CLOSE-WAIT:等待从本地用户发来的连接中断请求
	CLOSING:等待远程TCP对连接中断的确认
	LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被攻击)
	TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
	CLOSED:没有任何连接状态
网络
	netstat -an | grep 端口 | wc -l (wc -l显示满足条件的行数)
	netstat -an | grep 80
	
	 netstat -anp |grep 端口 (查询对应端口的状态 p显示进程号)
例子
	netstat -anp |grep 8080| grep LISTEN
	tcp6       0      0 :::8080                 :::*                    LISTEN      14749/java	

2.ps (英文全拼: process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

#查看该程序是由那个用户启动的
ps -ef | grep [程序名称 or PID] 

3.kill 命令用于删除执行中的程序或工作

kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
参数说明:

-l <信息编号>  若不加<信息编号>选项,则 -l 参数会列出全部的信息名称。
-s <信息名称或编号>  指定要送出的信息。
[程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。
使用 kill -l 命令列出所有可用信号。

最常用的信号是:
    1 (HUP):重新加载进程。
    9 (KILL):杀死一个进程。
    15 (TERM):正常停止一个进程。
例如:
kill -9 8080 #杀死占用80端口进程

三、文件相关

1.tar 解压命令

选项:-c: 建立压缩档案
    -x:解压
    -t:查看内容
    -r:向压缩归档文件末尾追加文件
    -u:更新原压缩包中的文件
    这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
    下面的参数是根据需要在压缩或解压档案时可选的。
    -z:有gzip属性的
    -j:有bz2属性的
    -Z:有compress属性的
    -v:显示所有过程
    -O:将文件解开到标准输出
    参数-f是必须的
    -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
	  
查看	tar -tf aaa.tar.gz   在不解压的情况下查看压缩包的内容

压缩
		tar –cvf jpg.tar *.jpg 		//将目录里所有jpg文件打包成tar.jpg
		tar –czf jpg.tar.gz *.jpg 	//将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
		tar –cjf jpg.tar.bz2 *.jpg 	//将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
		tar –cZf jpg.tar.Z *.jpg   	//将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z

解压
	tar –xvf file.tar //解压 tar包
	tar -xzvf file.tar.gz //解压tar.gz
	tar -xjvf file.tar.bz2   //解压 tar.bz2tar –xZvf file.tar.Z //解压tar.Z
	
总结
	1、*.tar 用 tar –xvf 解压
	2、*.gz 用 gzip -d或者gunzip 解压
	3、*.tar.gz和*.tgz 用 tar –xzf 解压
	4、*.bz2 用 bzip2 -d或者用bunzip2 解压
	5、*.tar.bz2用tar –xjf 解压
	6、*.Z 用 uncompress 解压
	7、*.tar.Z 用tar –xZf 解
例如  # tar -cf all.tar *.jpg 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。 
	  # tar -rf all.tar *.gif 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 
	  # tar -uf all.tar logo.gif 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。 
	  # tar -tf all.tar 这条命令是列出all.tar包中所有文件,-t是列出文件的意思 
	  # tar -xf all.tar 这条命令是解出all.tar包中所有文件,-x是解开的意思

2.unzip解压命令

unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]
参数:
    -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
    -f 更新现有的文件。
    -l 显示压缩文件内所包含的文件。
    -p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
    -t 检查压缩文件是否正确。
    -u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
    -v 执行是时显示详细的信息。
    -z 仅显示压缩文件的备注文字。
    -a 对文本文件进行必要的字符转换。
    -b 不要对文本文件进行字符转换。
    -C 压缩文件中的文件名称区分大小写。
    -j 不处理压缩文件中原有的目录路径。
    -L 将压缩文件中的全部文件名改为小写。
    -M 将输出结果送到more程序处理。
    -n 解压缩时不要覆盖原有的文件。
    -o 不必先询问用户,unzip执行后覆盖原有文件。
    -P<密码> 使用zip的密码选项。
    -q 执行时不显示任何信息。
    -s 将文件名中的空白字符转换为底线字符。
    -V 保留VMS的文件版本信息。
    -X 解压缩时同时回存文件原来的UID/GID。
    [.zip文件] 指定.zip压缩文件。
    [文件] 指定要处理.zip压缩文件中的哪些文件。
    -d<目录> 指定文件解压缩后所要存储的目录。
    -x<文件> 指定不要处理.zip压缩文件中的哪些文件。
    -Z unzip -Z等于执行zipinfo指令。
##在unzip命令后,增加 -o的参数,则不再进行询问,直接覆盖原文件解压缩,节省了很多事儿。
unzip -o file_name.zip

3.查找文件

find / -name 'filename'

4.查找目录

find / -name 'dirName' -type d

5.查找内容

find . | xargs grep -ri 'content'
find . | xargs grep -ril 'content' 只显示文件名称

6.touch命令:创建文件


7.mkdir命令:创建目录

mkdir [-p] dirName
参数说明:
	-p 可创建多级目录,确保目录名称存在,不存在的就建一个。

8.ln命令:软链接(类似于快捷方式)

使用方式:ln [-sf] 源文件 目标文件
选项:-s 就表示创建软链接了,不加的话就是创建硬链接
    -f 表示存在的时候删除在创建
例如:ln -s -i /opt/node/bin/node /usr/bin/node  (接着就可以全局使用node了: node -v)

四、权限相关

1.chmod命令:用于控制用户对文件的权限的命令

chmod 权限 文件名
权限分别对应文:件所有者(Owner)、用户组(Group)、其它用户(Other Users)
权限又分为读(r)、写(w)、执行(x),分别对应数字4、2、1
例如:
	chmod 777 fileName

2.chgrp命令:用于变更文件或目录的所属群组。

基本语法:
	chgrp [-R] 用户组名称 dirname/filename ...
	参数:
	-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录

3.chown命令:用于设置文件所有者和文件关联组的命令。

基本语法:
	chown [-R] 用户名称 文件或目录
	chown [-R] 用户名称:用户组名称 文件或目录 #同时修改属主和属组
	参数:
	-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录

五、用户相关

1.操作用户

  • 创建用户 :adduser username 接着设置密码 passwd username

  • 创建用户并增加到工作组: useradd -g groupname username (注: -g 所属组 -d 家目录 -s 所用的shell)

  • 给已有的用户增加工作组: usermod -G groupname username

  • 临时关闭

    • 关闭用户账号:passwd –l username

    • 重新释放:passwd –u username

    • passwd [-k] [-l] [-u [-f]] [-d] [-S] [username] 命令语法说明。
      	-d 删除密码
      	-f 强制执行
      	-k 更新只能发送在过期之后
      	-l 停止账号使用
      	-S 显示密码信息
      	-u 启用已被停止的账户
      	-x 设置密码的有效期
      	-g 修改群组密码
      	-i 过期后停止用户账号
      
  • 永久性删除用户账号: userdel username

  • whoami 查看当前登录用户名

  • cat /etc/passwd 查看所有的用户信息

例如:root:x:0:0:root:/root:/bin/bash 
含义: username(用户名):passwd(密码):userID(用户id):groupID(用户所在组id):comment(备注):home directory(用户家目录):shell(shell命令所在目录)

2.操作用户组

  • 创建用户组:groupadd groupname
  • 删除用户组:groupdel groupname
  • 强制删除该用户的主目录和主目录下的所有文件和子目录: usermod –G groupname username
  • 查询用户组:cat /etc/group
  • groups:查看当前登录用户的组内成员
  • groups test :查看test用户所在的组,以及组内成员

3.CentOS让一个用户没有登录权限

  • 第一种情况:还未建立用户时,可以使用以下命令
groupadd groupname
例子
useradd -g groupname username -s /bin/false   //-s为默认shell,不给shell,也就不能登录
useradd -g groupname username -s /sbin/nologin    //-s为默认shell,默认给予shell,但是不给登录shell
  • 第二种情况:当用户已经建立了,在建立时没有控制,现在需要取消用户登录权限,可以使用以下命令
切换到root用户,修改/etc/passwd文件
vi /etc/passwd
找到你要修改的用户所在的那一行,例如username:x:502:502::/home/username:/bin/bash,修改为以下代码
username:x:502:502::/home/username:/sbin/nologin


这篇关于Linux常用命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程