系统管理员常用的Linux命令
整理Linux的一些基本系统管理命令作为备忘
=========================================================================
查看文件或编辑文件:
=========================================================================
查看当前目录下文件、文件夹及读写执行权限
$ ll

输出说明:(以mnt/这条记录为例)
第一列(drwxrwxr-x)标识文件类型和文件权限
第二列(5)标识文件链接个数
第三列(root)标识文件所有者
第四列(bme319-users)标识文件所在组
第五列(4096)表示文件长度(大小)
第六至八列(Aug 3 20:54)文件最后更新时间
第九列表示文件名称
第一列第一个字符表示文件类型:
|
d |
目录 |
|
- |
文件 |
|
l |
链接 |
|
s |
socket |
|
p |
named pipe |
|
b |
block device |
|
c |
character device |
第一列2~10字符每三个字符一组,分别表示文件所有者、文件所在组、其他用户的权限:
rwx(read, write, execute) 显示为有权限,-表示没有权限,以mnt/为例,表示文件所有者root拥有读写执行权限,所在组bme319-users拥有读写执行权限,其他用户有读和执行权限,没有写权限。需要说明的是,用户需要有执行权限才能进入文件夹(或目录)
=========================================================================
查看文件最后一部分内容:
$ tail
查看文件最后10行内容:
$ tail mongod.log
查看文件最后20行内容:
$ tail -n mongod.log
当文件有新内容时打印出来:
$ tail -f mongod.log
适合在执行应用程序时查看日志输出
=========================================================================
查看或合并文件
$ cat
查看文件:
$ cat mongod.log
标注文件行号:
$ cat -n mongod.log
两行以上的空白行只显示一行:
$ cat -s mongod.log
合并文件:
把log1.log的内容加上行号后输入到log2.log里:
$ cat -n log1.log log2.log
把log1.log和log2.log中的内容除空白行外加上行号输入到log3.log里:
$ cat -b log1.log log2.log log3.log
=========================================================================
编辑文件
$ sudo vim /etc/mongod.conf
进入编辑页面后,即可使用vim的一些用法编辑文件:
i 进入编辑插入模式,点击Esc可以返回vim
x 删除光标后的一个字符
:q 退出
:wq 保存并退出
:q! 强制退出(不保存)
具体其他编辑方法请查看vim用法
=========================================================================
权限相关:
更改文件或目录权限:
$ chmod
read权限赋值为4,write权限赋值为2,execute权限赋值为1,更改权限时,将需要赋予的权限相加,共有3个数字,分别表示所有者、所有组、其他用户。例如:对文件mongod.conf,所有者有读写执行权限、所有组拥有读和执行权限、其他用户只有读权限,那么使用如下命令:
$ chmod mongod.conf
对于目录,希望将其子目录都进行更改,只需要增加-R操作:
$ chmod -R /mnt
=========================================================================
更改文件或目录的所有者:
$ chown (change owner)
把文件mongod.conf的所有者更改为bme319
$ chown bme319 mongod.conf
同样可以使用 -R操作:
$ chown -R bme319 /mnt
=========================================================================
更改文件或目录的所有群组:
$ chgrp (change group)
与上面用法类似:
$ chgrp bme319 mongod.conf
$ chgrp -R bme319 /mnt
=========================================================================
curl命令:
这是一个网站开发的十分有用的命令
查看网页源代码:
$ curl www.sina.com
自动跳转(有些网址是自动跳转的):
$ curl -L www.sina.com
可以跳转到www.sina.com.cn
显示http response头信息:
i大写只显示头信息,小写显示头信息及网页代码
$ curl -i www.sina.com
$ curl -I www.sina.com
显示http通信过程:
$ curl -v www.sina.com
或者更详细的通信过程:
$ curl –trace output.txt www.sina.com
或者
$ curl –trace-ascii output.txt www.sina.com
发送表单信息:
GET请求:
$ curl example.com/form.cgi?data=xxx
POST请求:
$ curl -X POST –data “data=xxx” example.com/form.cgi
如果需要将数据进行表单编码:
$ curl -X POST –data-urlencode “date=April ” example.com/form.cgi
注意到上面GET时直接使用$ curl [url]而POST时需要-X参数,事实上,-X参数可以指定任意HTTP动词:
$ curl -X DELETE www.example.com
如果网域需要HTTP认证,可以用--user参数:
$ curl –user name:password example.com
或者只输入用户名,然后会有提示输入密码:
$ curl –user name example.com
若需要模拟客户端设备,需要用到user agent字段,服务器有可能根据这个字段返回不同的数据格式。比如iPhone4的User Agent是:
Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0. Mobile/8A293 Safari/6531.22.
那么使用curl可以这样模拟:
$ curl –user-agent “[User Agent]” [URL]
设置代理:
$ curl -x proxyserver.test.com: http://google.com
FTP服务器上传或下载文件:
列出文件或目录:
$ curl -u ftpuser:ftppass -O ftp://ftpserver/dir/
下载文件:
$ curl -u ftpuser:ftppass -O ftp://ftpserver/dir/file.html
上传文件myfile.log到服务器:
$ curl -u ftpuser:ftppass -T myfile.log ftp://ftpserver
同时上传多个文件:
$ curl -u ftpuser:ftppass -T “{file1, file2}” ftp://ftpserver
从表中输入获取内容保存到服务器指定文件中:
$ curl -u ftpuser:ftppass -T – ftp://ftpserver/myfile.log
上传或下载(保存)文件:
将文件下载到本地并命名为myfile.html
$ curl -o myfile.html http://example.com/file.html
将文件下载到本地而且不重新命名:
$ curl -O http://example.com/file.html
也可以使用>进行转向输出
同时获取多个文件:
$ curl -O URL1 -O URL2
-C选项可以对大文件使用断点续传功能:
若在下载完成前结束进程:
$ curl -O http://example.com/file.html
通过添加-C操作继续对文件进行下载,已经下载过的文件不会被重新下载:
$ curl -C - -O http://example.com/file.html
上传文件:
$ curl –form “fileupload=@filename.txt” http://example.com/dir
=========================================================================
python -m json.tool
使用curl后,API调用的输出可读性很差,JSON格式的数据都堆在一行,若希望将其格式成换行,可以使用python -m json.tool来缩进和组织JSON。需要使用管道机制,将JSON文件的输出作为输入,写入到python -m json.tool命令行。
$ curl http://example.com/api/getjson/ | python -m json.tool
=========================================================================
grep
grep能使用特定模式匹配(包括正则表达式)搜索文本。如果在另一条命令的输出中寻找特定的模式,grep会高亮显示相关的行。可以使用这条命令来搜索日志文件以及特定进程等:
$ cat mongod.log | grep “port ”
=========================================================================
ps
ps可以查看进程的各种状态信息,-e操作表示列出所有,-f选项表示列出详细信息,因此:
$ ps -ef
即可检查服务器运行的所有进程。更常用的是找到具体某个进程的信息,可以和grep连用:
$ ps -ef | gref “mongo”
=========================================================================
env
env用于列出所有的环境变量及为其赋值。在故障排除期间,可能会需要检查是否有错误的环境变量阻止应用程序启动。检查程序主机上设置的环境变量:
$ env
=========================================================================
top
top用于显示系统中各个进程的信息和资源占用情况,类似于Windows的任务管理器。使用该命令可以确定哪些进程正在运行,以及它们小号了多少内存和CPU。

按下C键可以查看启动红线标出的进程的详细启动命令:

=========================================================================
netstat
netstat用于显示网络状态信息。该命令可显示正在使用的网络端口及其传入连接。同样的,一般与grep连用:
$ netstat -tupln | grep
操作符说明:
-t -u (tcp, udp)只显示这两种协议的结果;
-p 显示PID或程序名称
-l 只显示监听端口
-n 不解析域名(只显示IP)
=========================================================================
ip address
用于显示应用程序的主机接口和IP地址。查看某接口的IP地址可以使用show。查看本机IP地址可以使用以下命令:
$ ip address show eth0
如果需要查看所有容器和主机的地址,可以使用以下命令:
$ ifconfig
=========================================================================
lsof
lsof(list open files)用于列出当前系统打开的文件。在Linux系统中,几乎任何和系统的交互都被视为一个文件。因此,如果应用程序写入文件或进行网络连接,lsof会把这个交互映射为一个文件。与netstat类似,可使用lsof检查侦听端口。需要注意的是,可能需要root权限才能查看到所有进程,尤其是当进程不是由当前用户运行的时候。
$ sudo lsof -i tcp:
操作符-i选择了所有ipv4/ipv6的进程。如果根据进程ID(PID)选择:
$ sudo lsof -p
可以查看该进程的所有信息。
=========================================================================
df
使用df命令显示空闲的磁盘空间(display free disk space)以排查磁盘空间问题。为了使结果可读性较好,使用-h操作:
$ df -h
即可获取磁盘空间信息,包括已用和未用等。
=========================================================================
du
也是用于查看使用空间的,但是与df命令不同的是du命令是对文件和目录磁盘使用的空间的查看,要获取有关哪些文件在目录中使用磁盘空间的更多详细信息,可以使用du命令。比如要获得总大小可用-s操作,加上-h可以使结果更可读:
$ sudo du -sh /mnt/*
以上命令是为了获取/mnt目录下所有目录或文件大小。
=========================================================================
id
该命令可以检查当前用户身份,包括UID(user ID), GID(group ID), groups信息。使用方法:
$ id
或
$ id user_name
=========================================================================
dig/nslookup
dig 命令是常用的域名查询工具,可以用来测试域名系统工作是否正常。域名服务器(DNS)有助于将 URL 解析为一组应用程序服务器。然而,你会发现有些 URL 不能被解析,这会导致应用程序的连接问题。
=========================================================================
iptables
iptables 用于阻止或允许 Linux 主机上的流量,用于 IP 包过滤器管理,类似于网络防火墙。此工具可阻止某些应用程序接收或发送请求。更具体地说,如果应用程序难以访问另一个端点,可能已被 iptables 拒绝流量访问该端点。查看iptables规则:
$ sudo iptables -S
=========================================================================
sestatus
通常会在企业管理的应用程序主机上使用 SELinux(一个 Linux 安全模块)。SELinux 对主机上运行的进程提供最低权限的访问,防止潜在的恶意进程访问系统上的重要文件。某些情况下,应用程序需要访问特定文件,但可能会发生错误。要检查 SELinux 是否阻止了应用程序,使用 tail 和 grep 在 /var/log/audit 日志记录中查找”denied”(被拒绝)的信息。否则,使用 sestatus 来检查是否启动了 SELinux。
=========================================================================
history
当你使用大量的命令进行测试和调试时,可能会忘记有用的命令。每个 shell 都有一个 history 命令的变体。它可显示自会话开始以来使用的命令的历史记录。可以使用 history 来记录用来排除应用程序故障的命令。history 命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。
$ history
该命令可以查看历史命令列表,使用!加指定命令的序号可以执行对应命令:
$ !
执行历史命令列表中序号为288的命令。
=========================================================================
设置自定义命令:
$ vim ~/.bashrc
在最后一行添加:
alias 命令别名='原命令'
例:
alias codedir='cd /mnt/codes'
这样在当前用户下,即可使用codedir命令访问/mnt/code文件夹(可能需要重新建立连接才行)
=========================================================================
参考:
https://mp.weixin.qq.com/s/pEwNyYPfZ18h5vUxA_TQsg
http://www.ruanyifeng.com/blog/2011/09/curl.html
系统管理员常用的Linux命令的更多相关文章
- 每天一个linux命令(61):vi命令 /企业常用的linux命令清单
vi/vim 的使用 基本上 vi/vim 共分为三种模式,分别是一般模式.编辑模式与指令列命令模式. 这三种模式的作用分别是: 一般模式:以 vi 打开一个档案就直接进入一般模式了(这是默认的模式) ...
- 工作中常用的Linux命令:mkdir命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6076075.html (转载请注明出处) 在Linux系统中,mkdir命令用来创建一个目录或一个级联目录. ...
- 工作中常用的Linux命令:crontab命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...
- 工作中常用的Linux命令:ipcs/ipcrm命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6057100.html (转载请注明出处) ipcs 1. 命令格式 ipcs [resource-option ...
- 工作中常用的Linux命令:find命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6056571.html (转载请注明出处) 1.命令格式 find [-H] [-L] [-P] [-D deb ...
- 开发过程中常用的Linux命令
做Java开发好几年了,部署JavaWeb到服务器上,一般都选择Linux,Linux作为服务器真是不二之选,高性能,只要熟悉Linux,操作快捷,效率很高. 总结一下工作中常用的Linux命令备忘: ...
- 初学者常用的LINUX命令
测试初学者常用的LINUX命令 一.常用管理命令:1. shutdown -h now 关机命令2. shutdown -r now (reboot) 立即重启命令 3. clear 清屏命令 4. ...
- java web项目在linux部署、启动,查看系统配置常用的linux命令总结
本文为博主原创,未经允许不得转载: 以下为在工作中常用的linux命令进行了总结,主要在项目安装及启动,及编辑部署文件时应用较多1.gz文件是一种压缩文件. 以·tar.gz为扩展名的是一种压缩文件, ...
- 20条最最常用的Linux命令讲解
玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了.当然你也可以在使用时去找一下 ...
随机推荐
- Mountainous landscape
Description 现在在平面上给你一条折线 \(P_1P_2 \cdots P_n\) . \(x\) 坐标是严格单调递增的.对于每一段折线 \(P_iP_{i+1}\) ,请你找一个最小的 \ ...
- 洛谷 P4568 [JLOI2011]飞行路线 解题报告
P4568 [JLOI2011]飞行路线 题目描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在\(n\)个城市设有业务,设这些城市分别标记为0到\(n−1\ ...
- 【洛谷P3411】字串变换
题解:普通的 BFS 没什么可说的,字符串处理是这道题的难点,同时需要注意哈希判重. 另外,对于 \(string\) 类来说,学到了一个 push_back((char)) 操作. c++strin ...
- SpringBoot Logback日志配置
Logback的配置介绍: 1.Logger.appender及layout Logger作为日志的记录器,把它关联到应用的对应的context上后,主要用于存放日志对象,也可以定义日志类型.级别. ...
- [Apio2012]dispatching 左偏树做法
http://codevs.cn/problem/1763/ 维护子树大根堆,当子树薪水和>m时,删除最贵的点 #include<cstdio> #include<iostre ...
- 一个ssm综合小案例-商品订单管理----写在前面
学习了这么久,一直都是零零散散的,没有把知识串联起来综合运用一番 比如拦截器,全局异常处理,json 交互,RESTful 等,这些常见技术必须要掌握 接下来呢,我就打算通过这么一个综合案例把这段时间 ...
- 20155320 2016-2017-2《Java程序设计》第八周学习总结
20155320 2016-2017-2<Java程序设计>第八周学习总结 教材学习内容总结 NIO与NIO2 Channel继承框架 想要取得Channel的操作对象,可以使用Chann ...
- expect 交互 模拟ssh 登陆
模拟ssh登录 #!/bin/bash Ip='192.168.1.6' # 循环就行 RemoteUser='user' # 普通用户 RemotePasswd='userpasswd' # 普通用 ...
- grep 正则表达
常见的 grep 正则表达参数 -c # 显示匹配到得行的数目,不显示内容 -h # 不显示文件名 -i # 忽略大小写 -l # 只列出匹配行所在文件的文件名 -n # 在每一行中加上相对行号 -s ...
- Dream------Hadoop--网络拓扑与Hadoop--摘抄
两个节点在一个本地网络中被称为“彼此的近邻”是什么意思?在高容量数据处理中,限制因素是我们在节点间 传送数据的速率-----带宽很稀缺.这个想法便是将两个节点间的带宽作为距离的衡量标准. 衡量节点 ...