文章目录
概要
作为程序员,对于Linux命令需要有一定的掌握,最起码万一部署在服务器上,咱们能知道怎么操作:
Linux命令汇总
一、文件和目录操作
- ls: 列出文件和目录。
例:ls -lah 查看当前目录下的所有文件和目录,包括隐藏文件,并显示详细信息。
- cd: 切换目录。
例:cd /var/log 进入日志目录。
- mkdir: 创建目录。
例:mkdir /home/user/newdir 在指定路径创建一个新目录。
- rm: 删除文件或目录。
例:rm -rf /tmp/oldfiles 删除/tmp/oldfiles目录及其内容。
- cp: 复制文件或目录。
例:cp source.file destination.file 将source.file复制到destination.file。
- mv: 移动或重命名文件或目录。
例:mv oldname newname 将oldname重命名为newname。
- touch: 创建空文件或更改文件的时间戳。
例:touch newfile.txt 创建一个新的空文件newfile.txt。
- cat: 查看文件内容。
例:cat myfile.txt 查看myfile.txt的内容。
- tail: 跟踪文件的最后几行。
例:tail -f /var/log/syslog 实时跟踪查看系统日志文件。
- head: 查看文件的开头几行。
例:head -n 10 filename 查看文件的前10行。
- find: 查找文件。
例:find / -name myfile.txt 在根目录下查找名为myfile.txt的文件。
- grep: 文本搜索。
例:grep -r "searchtext" /path/to/dir 在指定目录下递归搜索含有"searchtext"的文件。
二、权限和所有权
- chmod: 更改文件权限。
例:chmod 755 script.sh 设置script.sh为755权限。
- chown: 更改文件所有者和组。
例:chown user:group filename 将filename的所有者和组更改为user和group。
三、网络和连接
- ping: 测试网络连接。
例:ping google.com 测试到google.com的网络连接。
- telnet: 测试TCP连接。
例:telnet localhost 8080 测试本地8080端口的TCP连接。
- wget 或 curl: 从网络上下载文件。
例:wget http://example.com/file.zip 下载file.zip到本地。
- netstat: 显示网络连接和端口。
例:netstat -tulpen 显示所有的端口和正在使用它们的应用。
- ssh: 安全地连接到远程服务器。
例:ssh user@remotehost 使用ssh登录到远程主机。
四、查看系统信息
- uname: 显示系统信息。
例:uname -a 查看所有系统信息。
-
top 或 htop: 查看实时系统性能指标。
-
df: 显示磁盘空间使用情况。
例:df -h 以可读格式显示所有的磁盘空间使用情况。
- du: 查看特定目录的磁盘使用。
例:du -sh /var/log 显示/var/log文件夹的总磁盘使用。
- free: 显示内存使用情况。
例:free -m 以MB为单位显示内存使用情况。
- ps: 显示当前运行的进程。
例:ps aux 显示所有运行的进程。
- kill/pkill/killall: 发送信号到进程以终止进程。
例:kill -9 PID 发送SIGKILL到对应PID的进程。
五、系统管理
- useradd/userdel: 添加或删除用户。
例:useradd newuser 添加新用户newuser。
-
groupadd/groupdel: 添加或删除组。
-
passwd: 更改用户密码。
例:passwd username 更改指定用户名的密码。
- crontab: 设置定时任务。
例:crontab -e 编辑当前用户的crontab文件。
六、包和服务管理
- 对于Debian/Ubuntu系统,使用apt或apt-get。
例:apt-get install nginx 安装nginx。
- 对于Red Hat/CentOS系统,使用yum。
例:yum install httpd 安装httpd(Apache)。
- systemctl: 管理systemd服务。
例:systemctl status nginx 查看nginx服务的状态。
七、软件部署和运行
- scp: 安全地复制文件到远程主机。
例:scp myapp.jar user@server:/path/to/destination 复制myapp.jar到远程服务器指定目录。
- java: 运行Java应用程序。
例:java -jar myapp.jar 运行Java应用程序。
- maven (mvn): 构建和管理Java项目。
例:mvn clean install 清理并构建Maven项目。
- nohup: 在退出shell/session后继续运行命令。
例:nohup java -jar /path/to/app.jar & 在后台以nohup方式启动Java应用。
八、编辑文件
- vim/nano/emacs: 文本编辑器。
例:vim /path/to/configfile 使用vim编辑配置文件。
小结
这玩意没啥可总结的就是1+1等于2的事情,懂了就用的方便点,不常用时间一长就忘了,没啥
其实主要是:
1、查询日志命令,这里有很多种变形需要注意
2、查询服务进程
3、查询服务器指标:如CPU利用率啥的
补充 top:
1、时间行:
- 当前时间。
- 系统开机运行时间。
- 当前登录的用户数。
- 系统负载均值,分别对应过去1分钟、5分钟和15分钟的负载数据。
2、任务行:
- 总进程数。
- 正在运行的进程数。
- 处于睡眠状态的进程数。
- 停止的进程数。
- 僵尸进程数。
3、CPU行:
- 用户态使用的CPU百分比(us) --- 执行用户进程的时间比例。
- 系统态使用的CPU百分比(sy) --- 内核程序执行的时间比例。
- 优先权调整值nice为正的进程占用的CPU百分比(ni)。
- 空闲的CPU百分比(id) --- 未被任何进程使用的时间比例。
- 等待I/O的CPU时间百分比(wa)。
- 硬件中断的CPU时间百分比(hi)。
- 软件中断的CPU时间百分比(si)。
- 虚拟化控制下其他操作系统占用的CPU时间(st,仅在虚拟化环境中出现)。
4、内存行:
- 系统的总内存(total)。
- 系统中未使用的内存(free)。
- 当前已用的内存(used)。
- 用作缓存的内存和被系统缓冲的内存(buff/cache)。
5、交换行:
- 总交换空间。
- 未使用的交换空间。
- 已用的交换空间。
- 可用内存,考虑了缓存和交换的情况。
各进程详细信息:
默认情况下显示以下列:
- PID:进程标识号,用于唯一标识系统中的进程。
- USER:运行该进程的用户。
- PR:进程优先级。
- NI:nice值,表示进程的优先级。值越小优先级越高。
- VIRT:虚拟内存的使用量,包括进程使用的所有内存,包括物理内存、交换空间和尚未加载到内存的部分。
- RES:常驻内存集的大小,进程当前占用的实际物理内存。
- SHR:共享内存的大小,多个进程可能会共享相同的内存区。
- S:进程的状态(如 R 表示运行,S 表示睡眠等)。
- %CPU:进程自上次更新以来占用的CPU百分比。
- %MEM:进程占用的物理内存的百分比。
- TIME+:自进程开始以来占用的总CPU时间。
- COMMAND:启动该进程的命令或程序名。
通过top命令,你可以收集应用和系统的性能数据,比如:
- 哪些进程占用最多CPU和内存资源,可能表明它们是性能瓶颈或不正常的资源消耗。
- 系统是否有足够的内存,或者是否需要增加更多的内存。
- 系统负载是否异常高,可能影响程序响应时间。
此外,你还可以通过交互命令实时操作top,比如:
- 按P来按CPU使用率排序。
- 按M来按内存使用率排序。
- 按1来查看各CPU核心的使用情况。
这些信息可以帮助Java开发专家调优应用程序,追踪性能问题,以及确保系统资源得到合理分配。