概述
本文列举了一些场景的基础命令、基本用法。各场景还有更优的命令或工具,精力有限未整理,如有补充欢迎留言。
目录
基础
目录与文件
磁盘
进程
账号
网络
系统服务
其他场景
基础
描述 | 命令 | 示例/详解 |
---|---|---|
登录后切换账户 | su | su root |
退出 | exit | |
取消 | ctrl+c | |
退出命令输出流 | q | 部分命令提供(如man、top) |
根路径 | / | cd / |
当前登录用户默认路径 | ~ | cd ~ |
隐式文件前缀 | . | cat ~/.bash_history |
目录或文件名自动补全 | Tab键 | |
查找命令 | where或which | |
命令解释 | man 具体命令 | man cat |
查看时间 | date | |
查看历史指令 | cat ~/.bash_history | 一般可用于快速重放以前输入的指令,也可用于嗅探系统关键路径和服务 |
系统环境变量 | /etc/profile | 修改后要即时生效可以执行source /etc/profile |
常见指令参数 | -a -l -r -h | 全部:-a,列表:-l,数量统计:-c,目录递归:-r, 自动转换空间单位:-h,显示进度:-v |
系统关键路径 | /bin; /sbin; /proc; /etc; ~/; | |
输出/打印文本 | echo | echo "test" |
统计行数 | {内容} | wc -l | cat /etc/passwd | wc -l |
检索 | 1. grep expression file 2. {内容} | grep expression | (expression为正则匹配表达式)
|
目录与文件
切换路径:cd directory
创建目录:mkdir 目录名,实用参数(-p),常见于嵌套创建多级、多分支目录,比如mkdir -p test/tes/t{1,2,34}
创建软连接:ln -s [src] [name]
查看当前路径:pwd
查看当前路径下文件:ls,ls -l(一般会声明别名ll=ls -l)
创建文件:touch file
编辑文件:vi file或vim工具,保存操作为按“Esc”后输入 “:”,确认保存输入“w”“q”回车,不保存直接退出输入“q”“!”回车
查看文件:more file或less file,具体可参考 http://www.cnblogs.com/peida/archive/2012/11/02/2750588.html
查看文件尾部:tail [f] file,可用参数-f,-100
查看文件头部:head,类似与tail
查看及链接文件:cat file1, file2 ...
写入文件:echo $text >> $file(>> 表示追加,>则是覆盖写入)
-
引申使用场景
-
-
tomcat等容器运行中,清理日志;一般因为应用程序保持着句柄,删掉文件是不会重建文件的;
-
-
cat /dev/null > /var/log/httpd/access.log
-
其他方案
-
-
$ : > filename
-
$ > filename
-
$ echo "" > filename
-
$ echo > filename
-
-
上述方案执行后,文件大小是不一样的。
-
-
1和2 两种方式,是0kb
-
3和4 两种方式,是1kb;使用grep会提醒文件变成二进制文件,应该是文件头丢失
-
-
-
日志自动切割、清理:https://blog.csdn.net/qq_29269907/article/details/84328269
-
输出同时写入文件:echo $text | tee -a $file
压缩与解压缩:
- gz
- 压缩:tar -zcvf gz_file_name source
- 解压:tar -zxvf source
- zip
- 压缩:zip zip_file_name source
- 解压缩:unzip source
- 安装命令:yum install zip,yum install unzip
上传文件到服务器:rz
从服务器下载文件:sz source
-
如果提示没有命令,可执行`yum -y install lrzsz`安装
向其他服务器发送文件:scp source user@host:directory(file)
从其他服务器获取文件:scp [-P 端口号] user@host:directory(file) local_directory
磁盘
磁盘占用:df,du
当前路径磁盘占用:du -h|grep "./[^/]*$"
磁盘挂载:Linux磁盘挂载方法
进程
系统资源、进程堆栈查看:top
-
查看指定进程:top -Hp PID
-
只查看一次:top -n1
-
设置top视图
-
-
输入top后,输入f可调整视图; 上下方向键切换列,右方向选中、然后可以上下移动、移动结束后按回车或左方向键提交变化; d或者空格用于切换是否显示,s用于设置为拍序列; q或esc退出视图编辑
-
搜索进程:ps -ef |grep 关键字 或ps aux | grep 关键字
查看进程路径:ls -l /proc/$PID
查看进程下所有线程:pstack pid
查看进程的线程资源占用情况:ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid或top -Hp PID
dump当前jvm堆栈(TID为16进制):jstack PID|grep TID -a30
进程持有文件句柄数:usr/sbin/lsof -n| grep 18901| awk '{print $9}'|sort|uniq -c|sort -nr|more
查看某端口使用情况:netstat -nap|grep 11211|awk '{print $6}'|sort|uniq -c|sort -nr|more
账号
添加账户:useradd -d [path] -m [username]
修改自己或root修改其他用户密码:passwd [userName]
更改文件所有者 chown [-R] ownerName:groupName file或directory
更改文件权限 chmod 777 filename 二进制权限标记100读10写1执行,所以777分别代表所有者、所属用户组、其他用户权限;给定777表示授予所有用户全部权限
屏蔽文件权限 umask 000 filename 给定000表示授予全部权限
禁止用户登录:chsh -s $shell $user
网络
查看IP:/sbin/ifconfig
查看安装的工具或服务:rpm -qa |grep $service_name
卸载工具或服务:rpm -e $service_name
查看端口使用情况:netstat –apn 或 netstat -lpnut
开启端口:iptables -A INPUT -ptcp --dport 端口号 -j ACCEPT
关闭端口:iptables -A INPUT -p tcp --dport $PORT -j DROP、
iptables -A OUTPUT -p tcp --dport $PORT -j DROP
或关闭相应的应用程序
服务器访问网址:curl+url或wget+url;curl的参数较多
-
curl
-
-
一个利用URL规则在命令行下工作的文件传输工具。 curl 支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。 作为一款强力工具,curl支持包括HTTP、HTTPS、FTP等众多协议,还支持 GET、POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征,还可以做网页处理流程和数据检索自动化
-
默认GET请求:curl protocol://ip:port/url?args
-
执行POST请求:curl -d "key1=value1&key2=value2&key3=value3" protocol://ip:port/path
-
定义Header:curl -H "Content-Type:application/json" -X POST -d 'json data' URL
-
-
eg. curl -H "Content-Type:application/json" -X POST -d '{"user": "admin", "passwd":"12345678"}' "https://proxy.mimvp.com/login"
-
eg. curl -H "Content-Type:application/json" -d "{"expires":1588904402434,"trial":1,"version":20001}" "http://127.0.0.1:8187/service/company/subscription/application/update?companyID=174822224&applicationType=2"
-
-
更多用法参考:https://blog.csdn.net/ithomer/article/details/82156402
-
注:url最好用双引号包起来,避免错误解析
-
系统服务
查看操作系统版本:`cat /proc/version`,前者可能不全,还可以通过`cat /etc/issue`或`cat /etc/redhat-release`进一步补充信息
查看CPU信息:`cat /proc/cpuinfo`
查看内存信息:`cat /proc/meminfo`
查看开启启动服务:
-
service --status-all
-
systemctl -a
设置开机启动服务:
-
/etc/rc.local(编辑“/etc/rc.local”,把启动程序的shell命令输入进去即可,注意要写绝对路径; 默认root账号启动。使用其他账号启动:su - admin -c '/bin/sh target_shell' )
-
设置crontab,通过定时模拟开机启动
-
chkconfig
-
-
将启动文件cp到 /etc/init.d/或者/etc/rc.d/init.d/(前者是后者的软连接)下
-
-
vim 启动文件,文件前面务必添加如下三行代码,否侧会提示chkconfig不支持
-
#!/bin/sh 告诉系统使用的shell,所以的shell脚本都是这样
-
#chkconfig: 35 20 80 分别代表运行级别,启动优先权,关闭优先权,此行代码必
-
#description: http server(自己随便发挥)//两行都注释掉!!!,此行代码必
-
chkconfig --add 脚本文件名 操作后就已经添加了
-
-
其他参考资料:https://www.cnblogs.com/shengulong/p/6763688.html
-
-
(未测试过)将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下,系统启动后就会自动执行该目录下的所有shell脚本
设置定时任务:
-
crontab -e 分钟 小时 天 月 星期 shell命令所在位置,可以使用通配符表示不限制,可以使用,隔开多个时间点,重启该服务service cron reload
-
编辑/etc/crontab文件
常用工具:vim, lsof
其他场景
查看安装的版本:cat /etc/shells或者ls /bin/*sh
自定义命令:alias,取消自定义命令unalias
转化进制d->h:printf "%xn" 30834
输出字符MD5值:echo -n "123456" | md5sum| awk '{print $1}'
替换: sed -i "s#$old#$new#g" $target
trim:
sub(/^[[:blank:]]*/,"",变量) 是去掉变量左边的空白符
sub(/[[:blank:]]*$/,"",变量) 是去掉变量右边的空白符
gsub(/[[:blank:]]*/,"",变量) 是去掉变量中所有的空白符
最后
以上就是糟糕背包为你收集整理的Linux服务器常用命令及场景基础目录与文件磁盘进程账号网络系统服务其他场景的全部内容,希望文章能够帮你解决Linux服务器常用命令及场景基础目录与文件磁盘进程账号网络系统服务其他场景所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复