Linux运维基本命令
[]
表示可选的<>
表示必须的
干货
free -h
:检测内存使用情况df -h
:检测磁盘使用情况top
:综合检测atop
:更全的综合检测lsof -i tcp:<port>
:查看使用port
端口的程序,如果使用port
的程序是sudo
权限启动的,需要加sudo
才能查出来ps -ef | grep <keyword>
:根据关键字筛选查看正在运行的程序的详细信息find . -name "*.txt"
:查找当前目录下拓展名问.txt
的文件
find
命令
格式:
find <path> [option] [-print] [-exec|-ok <command> {} \;]
功能:查找文件
格式拆解:
path
:所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录-print
:将匹配的文件输出到标准输出-exec
:对匹配的文件执行该参数所给出的shell
命令。相应命令的形式为<command> {} \;
,注意{}
和;
之间的空格-ok
:和-exec
的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell
命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行
选项说明:
-ipath p | -path p
:路径名称符合p的文件,ipath
会忽略大小写-name name | -iname name
:文件名称符合name的文件,iname
会忽略大小写-size n
:文件大小是n
,单位,b
代表512位元组的区块,c
表示字元数,k
表示kilo bytes
-type T
:文件类型是T
的文件,T
可为一下之一d
:目录c
:字型装置文件b
:区块装置文件p
:具名贮列f
:一般文件l
:符号连结s
:socket
-empty
:空的文件-gid n
:gid
为n
-pid n
:process id
是n
的文件-group name
:group
名为name
-anewer file
:比文件file
更晚被读取过的文件-cnewer file
:比文件file
更新的文件
注意:以下+n
表示n
以前,-n
表示n
以内
-amin n
:在过去n
分钟内被读取过-atime n
:在过去n
天内被读取过的文件-cmin n
:在过去n
分钟内被修改过-ctime n
:在过去n
天内被修改过的文件
示例:
# 将目前目录及其子目录下所有延伸档名是c的文件列出来。
find . -name "*.c"
# 将目前目录其其下子目录中所有一般文件列出
find . -type f
# 将目前目录及其子目录下所有最近20天内更新过的文件列出
find . -ctime -20
# 查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们:
find /var/log -type f -mtime +7 -ok rm {}\;
# 查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
find . -type f -perm 644 -exec ls -l {}\;
# 为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径:
find / -type f -size 0 -exec ls -l {} \;
ps
命令
格式:
ps [option]
功能:查看当前正在运行的程序的信息
usage: ps [-AaCcEefhjlMmrSTvwXx] [-O fmt | -o fmt] [-G gid[,gid...]]
[-g grp[,grp...]] [-u [uid,uid...]]
[-p pid[,pid...]] [-t tty[,tty...]] [-U user[,user...]]
ps [-L]
-a
:显示现行终端机下的所有程序,包括其他用户的程序-e
:列出程序时,显示每个程序所使用的环境变量-f
:用ASCII字符显示树状结构,表达程序间的相互关系-u
:以用户为主的格式来显示程序状况-x
:显示所有程序,不以终端机来区分- PS:笔者经常是搭配
-ef
和-aux
选项使用,可查看进行的详细信息,如:进程组、启动参数等
grep
命令
格式:
grep [option] <keyword> [file|directory]
功能:过滤
usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
[-e pattern] [-f file] [--binary-files=value] [--color=when]
[--context[=num]] [--directories=action] [--label] [--line-buffered]
[--null] [pattern] [file ...
格式拆解:
keyword
:关键字file|directory
:文件,当加-l
或-r
选项时,可为文件,以及通配符,如:./*/*.txt
选项说明:
-v
:反过滤,除keyword
以外,其他都不过滤-i
:忽略大小写-n
:输出结果加行号-c
:统计字符串出现的次数-w
:全字匹配搜索-l
:只列出文件名-r
:对目录下的所有子目录进行搜索--color
:输出时对keyword
高亮显示- PS:
grep
可以多个一起使用:grep [keyword1] | grep [keyword2] | grep -v [keyword3] ...
示例:
// 在log.txt搜索包含error的行
grep "error" log.txt
// 忽略大小写
grep -i "ErroR" log.txt
// 输出时,带行号
grep -n "error" log.txt
// 统计error出现的次数
grep -c "error" log.txt
// 全字匹配搜索,搜索只有error的行
grep -w "error" log.txt
// 搜索当前文件夹下拓展名为.txt且包含error的文件
grep -l "error" ./*.txt
// 搜索当前文件夹下所有文件包含error的行
grep -r "error" .
// 搜索当前文件夹下所有包含error的文件
grep -lr "error" .
du
命令
格式:
du [option] [file]
功能:显示每个文件和目录的磁盘使用空间。
-a
:显示目录中个别文件的大小。-b
:显示目录或文件大小时,以byte为单位。-c
:除了显示个别目录或文件的大小外,同时也显示所有的目录或文件的总和。-s
:仅显示总计,只列出最后加的值。-h
:以K、M、G为单位输出,提高信息的可读性。
df
命令
格式:
df [option] [file]
功能:可显示目前所有文件系统的可用空间及使用情况(动态显示过程);查看哪一级文件大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
-h
:以K、M、G为单位输出,提高信息的可读性。
top
命令
功能:提供了实时的对系统的处理器的状态监监视;显示系统中各个进程的资源占用状况。
-d
:指定每两次屏幕信息刷新之间的时间间隔。-p
:通过指定监控进程ID来仅仅监控某个进程的状态。
free
命令
功能:查看当前系统内存的使用情况它显示系统中剩余及已用的物理内存和交换内存以及共享内存和被核心使用的缓冲区。
-h
:以K、M、G为单位显示。-b | --bytes
:输出以比特方式显示。-k | --kb
:输出以KB方式显示,这是系统默认项。-m | --mb
: 输出以MB方式显示,这是常用项,比较清晰。-g | --gb
:输出以GB方式显示。-l | --lowhigh
:显示详细信息。-o | --old
:旧格式显示,不显示-/+ buffers/cache项。-t | --total
:显示总共物理内存和交换区间。-c n | --count=n
:显示统计的次数,n默认为1 次。-s n | --repeat=n
: 间隔秒数,持续观察内存使用情况。-V | --version
:显示版本信息。--help
:显示帮助信息。
pstack
命令
格式:
pstack <PID>
功能:可显示每个进程的栈跟踪。必须由相应进程的属主或root
运行。可以使用pstack
来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的PID
。
su
命令
功能:用户之间的切换功能。
su
:切换了root
身份,但shell
环境仍然是普通用户的shell
。su -f
:不必读启文件,仅用于csh
或tcsh
两种shell
。-l
:加了这个参数之后,就好像重新登录一样,部分环境变量都是以该使用者为主,并且工作目录也会改变。如果没有指定USER,缺省情况是root
。
sudo
命令
格式:
sudo [option] <command>
功能:普通用户可以使用root
权限来执行指定命令。
-s
:执行环境变数中的SHELL
所指定的shell
,或是/etc/passwd
里所指定的shell
。-v
:显示版本编号。-h
:显示版本编号及指令的使用方法说明。-l
:显示出自己的权限。-k
:将会强迫使用者在下一次执行sudo时问密码
adduser
命令
格式:
adduser [option] <username>
功能:指令根据指令行参数给系统添加用户,它的配置信息保存在/etc/adduser.conf
文件中。
-r|--system
:创建一个系统用户。-q
:只显示警告信息和错误信息,不显示一般信息。--debug
:用于测试。-c
:加上备注文字。备注文字会保存在passwd
的备注栏位中。-d
:指定用户登入时的启始目录。-D
:变更预设值。-e
:指定帐号的有效期限,缺省表示永久有效。-f
:指定在密码过期后多少天即关闭该帐号。-g
:指定用户所属的群组。-G
:指定用户所属的附加群组。-m
:自动建立用户的登入目录。-M
:不要自动建立用户的登入目录。-s
:指定用户登入后所使用的shell
。-u
:指定用户id。
passwd
命令
功能:修改用户密码。
-d
:删除密码。-f
:强制执行。-k
:更新只能发送在过期之后。