记录部分命令,更多请查看菜鸟教程 。学习笔记,如有错误请大佬指点!!!
一、网络相关
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]
linux 下 取进程占用 cpu 最高的前10个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
linux 下 取进程占用内存(MEM)最高的前10个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
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