常用Linux命令
虽然说Linux命令需要记忆,但是要建立在理解语法的基础上,去记,这样就算看到新的命令,也只是更容易上手。
日常用到Linux命令的时候,不要盲目去记,先去理解,看语法构成,再形成记忆,纳入自己对Linux的了解体系中。
Linux:Shell 内置命令,外部命令。
一、给文件授权命令:
chmod [who] [+/-/=] [mode] 文件名|文件夹名 (记忆点:这个定义的每个部分的含义)
*) who :赋权给谁,值如下:
u user 用户
g group 用户组
o others 其他用户
a all 所有用户
*) +/-/=
+ : 加
- :减
= :重新分权限
*)[mode] :分配的权限类型
r : read 读权限,数字代号4
w : write 写权限,数字代号2
x : 可执行的权限,数字代号1
*)例子:
##) chmod 777 filename
操作文件或目录的用户,有3种不同类型:文件所有者、群组用户、其他用户。最高位表示文件所有者的权限值,中间位表示群组用户的权限值,最低位则表示其他用户的权限值,所以,chmod 777中,三个数字7分别对应上面三种用户,权限值都为7。
##) chmod 754 filename
将filename文件的读写运行权限赋予文件所有者,把读和运行的权限赋予群组用户,把读的权限赋予其他用户。
二、查看文档的命令:
cat:查看文档所有内容。(记忆点:全拼concatenate,意思是“连接的”,用于连接文件并打印到标准输出设备上)。
more:分页查看文档,按空格向下分页,按q退出
less:PgUp , PgDn 翻页
tail : 查看文件尾,tail -f xxx.log 动态查看文件尾的新内容。(记忆点:tail,含义“尾巴”。所以可以记成在文件尾追加,∴是动态的)。
tail -1000f nohup.out 动态查看最后1000行
操作文档的命令:
cp : 复制文件或目录的命令。
mv (记忆点:理解记忆,move移动文件,想一下会有哪些参数,就想到这个命令大概怎样写了)
移动(也就是剪切) 或 改名
三、日常常用命令
*)pwd :显示当前所在目录的完整路径。
*)history :查看当前登录这次,输入过的所有命令行
*)su :变更账号。(记忆点:英文全拼:swith user。命令用于变更为其他使用者的身份)
*)sudo :以root身份执行命令
*)ifconfig :相当于DOS下的ipconfig
在Ubuntu里第一次执行这个命令,会出现:
不安装的情况下, 查询ip地址可以使用命令:ip addr show
*)ping www.baidu.com :测试是否连外网
*)which mysql : 在环境变量里查找符合mysql的。(记忆点:命令很口语化,见词知义)
*)whereis mysql :查找mysql文件(记忆点:命令很口语化,见词知义)
*) ~:当前用户的根目录,也就是当前登录用户的用户目录。例子:cd ~/tomcat
比如:我登录用户是chen
cd ~
~ 代表的就是 /home/chen/
*) Linux结束前台运行程序的命令:Ctrl+C
*) Linux主机登录另外一台linux服务器,直接在命令行提示符下输入:
ssh 账号@IP地址即可
比如:
ssh oracle@192.168.10.13
然后按照提示输入密码. 一切无误则进入该远程主机.
下图参考自菜鸟教程:https://www.runoob.com/linux/linux-remote-login.html
四、系统常用命令
*)yum install sar : yum安装软件包
yum是在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。使用它需要先安装yum。安装yum需要使用rpm命令,rpm命令是Linux专门用来管理程序安装卸载等的命令,是Linux系统里自带的。(百度一下可以看到各Linux系统发行版如何安装yum)。
*) rpm
Linux rpm 命令用于管理套件。
rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。
*) wget URL :从URL地址下载软件包的命令。
*) apt :ubuntu系统上常用的安装软件包的命令。
*)make :编译和安装软件包的命令。
*)uptime :显示系统的运行情况参数。
*)top : 查看进程,相当于任务管理器。并且头部会显示系统运行和CPU、内存的使用情况(第一行和uptime命令的显示一样)。
会像任务管理器一样不停自动滚动。按q键退出。
(记忆点:像任务管理器一样,动态变化)
*) who
who 查看当前登录用户的账户名
*)whoami: 查看当前登录用户的账户名
*)w : 显示登陆系统的所有用户,和用户的请求情况
*)vmstat -s :查看内存使用情况,虚拟内存交换情况,CPU使用率,IO读写情况。相比top命令,这个命令可以看整个机器的CPU,内存,IO的使用情况,而不是单单看各个进程的CPU使用率和内存使用率。这两个命令的使用情况场景不同:
-s:显示内存相关统计信息及多种系统活动数量:
*)free -m :查看内存的使用情况
- -m 以MB为单位显示内存使用情况。:
*)df -hT :(英文全拼:disk free)查看各个系统目录所占的磁盘空间。
这个命令查不出未挂载的磁盘:
*) lsblk
可以查看所有的磁盘,包括未挂载的:
*) 使用fdisk -l 查看硬盘的详细信息:
*)sar 5 5 : sar是Linux里全面的性能管理工具。可以从多方面查看liunx系统,包括CPU、内存、磁盘IO、系统调用情况、文件读写等。
sar 5(采样间隔,时间s) 5(采样次数)
*)service network start:设置配置文件后,重启网关,使生效
*)ulimit :用来设置和查看Linux的各种资源参数。
ulimit -n查系统最大连接数:
*)help命令:(参考:http://c.biancheng.net/view/770.html)
man help :查看所有的内置命令
help 内置命令 :查看shell内置命令。这个命令只能查看shell内置命令的帮助信息。但Linux的大部分命令是外部命令。
如果用“help 命令”查看了外部命令,会提示报错:
命令 --help :大多数命令(无论内部命令还是外部)都可以用“命令 --help”来查看help的帮助信息,比如:sar --help
五、运维常用命令
*)ps -ef|grep nginx :
ps命令:(英文全拼:process status)命令用于显示当前进程的状态,显示进程的信息,类似windows的任务管理器。
-ef是ps命令中的option参数
#)grep命令:
grep的中文翻译是:正则表达式;查找字符串;
单独的grep命令,用来查找在某些文件里,匹配某些文字的行。语法:
grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
|和grep:| 表示管道,上一条命令的输出,作为下一条命令参数。
*)kill -9 进程号
kill 是Linux的内置命令
-9 option参数,9表示杀死一个进程,(记忆点:参数9表示操作含义)还有其他参数:
- 1 (HUP):重新加载进程。
- 9 (KILL):杀死一个进程。
- 15 (TERM):正常停止一个进程。
*)netstat -anp|grep 8080 查看8080端口的pid 等进程情况,然后再用kill -9 pid 杀死进程
netstat 命令的结果,经由管道,和grep命令的组合。
netstat命令:显示网络状态。语法:
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
参数含义:
-
-
- -a或--all 显示所有连线中的Socket。
- -l或--listening 显示监控中的服务器的Socket。
- -n或--numeric 直接使用IP地址,而不通过域名服务器。
- -p或--programs 显示正在使用Socket的程序识别码和程序名称。
- -t或--tcp 显示TCP传输协议的连线状况。
-
*)netstat -ntlp 查看端口情况
见上
*)lsof -i:端口号,查看端口占用情况
*)nohup
英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
默认输出日志到当前执行命令的目录下的nohup.out中。如果没有这个文件,会自动创建。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
停止的时候,可以用 ps -aux | grep "xx.sh" 查找pid,然后用kill命令杀死进程。
*)启动常用命令:
使用指定版本java启动项目,并把日志重定向到文件里,在后台执行命令(&表示在后台执行,不占用控制台):
nohup /usr/local/jdk1.8/bin/java -jar /home/demo1/grabboot/grab-web.war > catalina.out 2>&1 &
使用指定nginx、指定配置文件 启动前端项目:
/usr/local/nginx/sbin/nginx -c /home/demo1/nginx-1.17.0/conf/nginx.conf
nohup java -jar -Dserver.port=8087 platform-web.jar > uni.log &
nohup java -jar /data/demo1/platform-web.jar --server.port=5050 --spring.profiles.active=test &
*) 使某个端口可以被网络访问到
让网络可以访问到:17835端口
sudo /sbin/iptables -I INPUT -p tcp --dport 17835 -j ACCEPT
*) telnet
比ping更进一步,看某个IP上某个端口是否能通
*)管道符
管道符是: | 。
执行格式:“命令A|命令B” 或者“命令A|命令B|命令C”多个组合。
作用:把前一个命令本来要输出到屏幕上的标准正常数据,当做是后一个命令的标准输入。
和下面的“标准输入/输出/错误重定向”类似,用来把多个命令组合在一起(也可以根据需要和“标准输入/输出/错误重定向”组合),用来实现一个效果。管道符就像一个法宝,可以把它套用在不同的命令上,方便的实现很多效果。
#)输入重定向、输出重定向。参考:https://www.linuxprobe.com/chapter-03.html#32
输入重定向:标准输入重定向。
输出重定向:标准输出重定向、错误输出重定向。输出重定向的模式分为:清空写入、追加写入。
##)标准输入重定向 (左尖括号<)
STDIN,文件描述符为0。
标准输入默认 从键盘输入内容,也可以从其他文件或命令输入。重定向是指,把文件导入到命令中。
输入重定向的符号和作用:
符号 | 作用 |
命令 < 文件 | 将文件做为命令的标准输入 |
命令 <<分界符 | 从标准输入中读取文件,直到遇到分界符才停止 |
命令<文件1>文件2 | 将文件1作为命令的标准输入,并将标准输出到文件2 |
##)标准输出重定向
STDOUT,文件描述符为1。
标准输出默认 输出到屏幕(控制台)。重定向是指,把原本输出到屏幕的数据信息重定向(写入)到指定的文件中。
##)错误输出重定向
STDERR,文件描述符为2。
错误输出重定向 默认输出到屏幕(控制台)。重定向是指,把原本输出到屏幕的报错信息重定向(写入)到指定的文件中。
含义 | 作用 |
命令>文件 | 将标准输出重定向到文件中(清空原有文件数据,即,清空写入) |
命令 2>文件 | 将错误输出重定向到文件中(清空原有文件数据,即,清空写入) |
命令>>文件 | 将标准输出重定向到文件中(追加到原有文件内容的后面,即,追加写入) |
命令 2>>文件 | 将错误输出重定向到文件中(追加到原有文件内容的后面,即,追加写入) |
命令>>文件 2>&1 或者 命令 &>>文件 |
将标准输出和错误输出共同重定向写入到文件中(追加到原有文件内容的后面,即,追加写入) |
六、shell 命令
#)echo
shell的内置命令,用于输出字符串。可以直接输出到标准输出。也可以用重定向符号,重定向到文件中。
七、Linux命令中的通配符
星号(*)代表匹配零个或多个字符,问号(?)代表匹配单个字符,中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,而中括号内加上字母[abc]则是代表匹配a、b、c三个字符中的任意一个字符。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏