Linux常用命令
systemctl:服务管理命令
systemctl是一个系统管理守护进程、工具和库的集合,用于取代System V、service和chkconfig命令,初始进程主要负责控制systemd系统和服务管理器
systemctl #列出所有的系统服务
systemctl status docker #显示服务状态 systemctl list-dependencies docker #列出服务层级和依赖关系 systemctl start docker #启动服务 systemctl stop docker #关闭服务 systemctl restart docker #重启服务 systemctl enable docker #设置服务自启动 systemctl disable docke #禁止服务自启动
systemctl is-active docker #查看服务是否运行
systemctl is-enabled docker #查看服务是否自启动
systemctl list-units --type=service #列出系统所有服务的启动情况
systemctl list-unit-files|grep enabled #列出所有自启动服务
centos6 没有使用 systemd,所以没有 systemctl 命令。对应的旧指令(chkconfig、service)
service docker status #显示服务状态 systemctl list-dependencies docker #列出服务层级和依赖关系 service docker start #启动服务 service docker stop #关闭服务 service docker restart #重启服务 chkconfig --level 3 docker on #设置服务自启动 chkconfig --level 3 docker off #禁止服务自启动 chkconfig --list docker #查看服务是否自启动 chkconfig --list #列出系统所有服务的启动情况
ps查看进程信息
ps -f -C docker # 使用 -C 查找 或
ps -ef|grep docker # 使用 grep 查找;
| 符号,是个管道符号,表示ps 和 grep 命令同时执行;
grep 命令是查找(Global Regular Expression Print),能使用正则表达式搜索文本,然后把匹配的行显示出来;
ps命令常用参数:
- -C : 显示指定进程
- -e : 显示所有进程
- -f : 全格式
- -h : 不显示标题
- -l : 长格式
- -w : 宽输出
- a :显示终端上的所有进程,包括其他用户的进程。
- r :只显示正在运行的进程。
- u :以用户为主的格式来显示程序状况。
- x :显示所有程序,不以终端机来区分。
which寻找配置在环境变量$PATH中的可执行文件命令,返回系统命令的位置 。
which nginx #如果nginx正确安装可放回环境变量中配置的位置
whereis: 命令用于搜索指定程序的相关文件
这些文件包含 二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)如果省略参数,则返回所有信息
whereis nginx
- -b : 仅搜索二进制文件
- -m : 仅搜索说明文件
- -s : 仅搜索源代码文件
find:根据条件是在硬盘上遍历查找文件
find [paths] [expression] [actions]
find 命令接受一个或多个路径(paths)作为搜索范围,并在该路径下递归地搜索。即检索完指定的目录后,还会对该目录下的子目录进行检索,以及子目录下的子目录。。。直到到达目录树底部
默认情况下(不带任何搜索条件),find 命令会返回指定目录下的所有文件,所以常常需要通过特定的 expression
对结果进行筛选。
find 命令默认的 action 是将所有检索结果打印至标准输出。可以通过自定义 action ,让 find 命令对搜索到的结果执行特定的操作。
常用参数
- -[a,m,c]time [+/-]n : 在过去 n 天内被访问(a)、修改(m)、状态属性修改(c)过,带“-”表示符合该数量n以后的,带“+”表示符合该数量以前n+的。
- -[a,m,c]min n : 在过去 n 分钟内被访问(a)、修改(m)、状态属性修改(c)过,带“-”表示符合该数量n以后的,带“+”表示符合该数量以前n+的。
- -delete : 删除检索到的文件
- -depth n : 检索深度为 n 的文件,即位于指定目录以下 n 层的文件
- -empty : 检索空文件或空目录
- -fstype type: 指定文件所在的文件系统的类型
- -group gname : 指定文件的属组
- -iname pattern : 同 -name,忽略大小写
- -ipath pattern : 同 -path,忽略大小写
- -ls : 打印搜索到的文件的详细信息
- -maxdepth n : 指定递归的最大层数为 n
- -name pattern : 搜索时使用 pattern 对文件名进行匹配
- -path pattern : 搜索时使用 pattern 对文件路径进行匹配
- -perm mode : 根据文件权限搜索
- -size n[ckMGTP] : 根据文件大小搜索
- -type t : 根据文件类型搜索,t = f: 文件;d: 目录;l: 符号链接
- -user uname : 指定文件的属主
- -exec 选项可以对搜索到的结果执行特定的命令。
- -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
- -print: find命令将匹配的文件输出到标准输出。
一些示例
find /usr -name '*.txt' #查找 /usr 目录下所有文件名以 .txt 结尾的文件 find /usr -name '????' #查找 /usr 目录下所有文件名刚好为 4 个字符的文件 find ~ -type d -empty #检索用户主目录下所有的空目录 find /usr -type d -name 'python*' #检索 /usr 下所有文件名以 python 开头的目录 find . -name "[A-Z]*" #查以大写字母开头的文 find . -name "[a-z][a-z][0–9][0–9].txt" #查以两个小写字母和两个数字开头的txt文件 find /usr -type f ! -name '*.txt' # 检索 /usr 下所有文件名不以 .txt 为后缀的文件 find /usr -type f ! -empty # 检索 /usr 下所有内容不为空的文件 find / -type f -user starky # 检索根目录下所有用户属主为 starky 的文件 find /usr -type f -mtime 2 #检索 /usr 下两天前被修改过的文件 find /usr -type f -mtime +50 -mtime -100 #检索 /usr 下 50 到 100 天之前修改过的文件 find /usr -type f -mtime 2 -amin 5 #检索 /usr 下两天前被修改过且 5 分钟前又读取过的 find / -size +1G 检索文件大小高于 1 GB 的文件, find /usr -perm u=rwx,g=rx,o=rx # 如需要检索 /usr 目录下权限为 rwxr-xr-x 的文件 find /usr -perm a=rx #搜索 /usr 目录下所有权限为 r-xr-xr-x(即系统中的所有用户都只有读写权限)的文件和目录 find /usr -perm 644 搜索 /usr 目录下权限为 644(即 rwxr-xr-x)的文件 find / '(' -mmin -5 -o -mtime +50 ')' -a -type f # 搜索5分钟前,到前50天以后的文件 find ~ -type d -empty -delete # 搜索~目录下所有空文件并删除这些文件 find ~ -type f -mtime +7 -ok rm {} \; # 查找~目录中更改时间在7日以前的普通文件,并在删除之前询问 find ./ -type f -name '*.mp3' -exec cp {} /media ';' #搜索当前目录下所有mp3文件,并拷贝到 /media 目录中 find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} + #检索出所有符合条件的音频文件,再将得到的文件列表传递给后面的压缩命令
>或tree清空文件
>test.log true >test.logs
stat :显示文件或目录文件系统的详细信息
stat testfile #显示testfile文件信息 File: `testfile' Size: 102 Blocks: 8 IO Block: 4096 regular file Device: 807h/2055d Inode: 1265161 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2014-08-13 14:07:20.000000000 +0800 Modify: 2014-08-13 14:07:07.000000000 +0800 Change: 2014-08-13 14:07:07.000000000 +0800
date:查看和修改Linux的时间
1. 查看时间和日期
date #显示当前时间 Fri Jun 28 11:19:17 CST 2019
date -R #显示当前时区
Fri, 28 Jun 2019 11:19:30 +0800
2.设置时间和日期
date -s 11/03/2009 #将系统日期设定成2009年11月3日的命令
date -s 17:55:55 #将系统时间设定成下午5点55分55秒的命令
3. 将当前时间和日期写入BIOS,避免重启后失效
hwclock -w
uname:显示计算机操作系统信息
uname命令用于显示电脑以及操作系统的相关信息。
uname [-amnrsv][--help][--version]
- -s 显示内核名称
- -n 显示网络节点上的主机名
- -r 显示linux内核发行号
- -v 显示linux内核版本
- -m 显示主机的硬件架构名称
- -p 显示处理器类型
- -i 显示硬件平台
- -o 显示操作系统名称
- -a 显示全部信息
- --help 显示帮助。
- --version 显示uname版本信息。
demo
uname -a #显示全部信息 Linux webserver 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
lsb_release:查看当前系统的发行版信息
lsb_release [-avidrch]
- -v 显示版本信息。
- -i 显示发行版的id。
- -d 显示该发行版的描述信息。
- -r 显示当前系统是发行版的具体版本号。
- -c 发行版代号。
- -a 显示上面的所有信息。
- -h 显示帮助信息。
lsb_release -a #显示全部信息 LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.6.1810 (Core) Release: 7.6.1810 Codename: Core
如果lsb_release没有安装可以使用“yum install -y redhat-lsb”安装也可以直接使用 cat /etc/issue或cat /etc/os-release 查看
添加固定ip
vi /etc/sysconfig/network-scripts/ifcfg-eth0
#设置静态ip地址
bootproto=static
onboot=yes
#然后再设置下ip地址、子网掩码、网关、dns服务器
IPADDR=192.168.0.164
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.1
systemctl restart network