查看系统信息

  1. # 我是谁,who 命令经常在查看用户
  2. who # 显示 用户 和终端数目和 pts
  3. who -buT 显示所有用户登录时间,终端()
  4. # -w 详细用户登录信息(机器使用时间,登录人数,机器负载,用户登录列表)
  5. who am i # 当前所在终端用户
  6. root pts/0 2018-12-14 22:29 (112.226.1.75)
  7. uname -s -n -r -m -v #操作系统名、计算机名、版本号、计算机类型、时间等信息
  8. # -> Linux gaox 3.10.0-693.2.2.el7.x86_64
  9. #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
  10. uptime # 输出系统任务队列信息(用户,运行时间,负载)
  11. last # 查看系统开机、登录历史
  12. dmesg # 查看上次开机信息
  13. # 查看指定格式的时间信息
  14. date "+now time is %Y-%m-%d %H:%M:%S"
  15. # -> now time is 2018-12-14 22:48:30
  16. date -s "时间信息" # 设置时间(只有root账户可以)
  17. # 查看centOS 版本
  18. cat /etc/redhat-release
  19. # 查看CPU、内存信息 /proc目录下存放着许多系统信息,还包括时间、定时器等
  20. cat /proc/cpuinfo
  21. cat /proc/meminfo
  22. # 内存使用情况
  23. free -h -c 7 # 查看内存使用情况,以人类习惯方式,数字三位+单位,1s的频率出现7词

1. 停掉进程

# 停用关闭25062进程
kill -9 25062

2. 网络命令

# ping 检测网络连通
ping www.gaox.site

# 显示相关网络配置信息
ifconfig

3. 系统端口

查看占用

# 查看当前系统端口的使用
netstat -an
netstat -aov
netstat -tunlp  # 全部端口
    # t (tcp) 仅显示tcp相关选项
  # -u (udp)仅显示udp相关选项
  # -n 拒绝显示别名,能显示数字的全部转化为数字
  # -l 仅列出在Listen(监听)的服务状态
  # -p 显示建立相关链接的程序名
lsof -i:12002 # lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000

开启

# 开启端口(以80端口为例)
方法一:
/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT   写入修改
/etc/init.d/iptables save   保存修改
service iptables restart    重启防火墙,修改生效

方法二:
vi /etc/sysconfig/iptables  打开配置文件加入如下语句:
-A INPUT -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT   重启防火墙,修改完成

关闭


# 方法一:
/sbin/iptables -I INPUT -p tcp –dport 80 -j DROP   写入修改
/etc/init.d/iptables save   保存修改
service iptables restart    重启防火墙,修改生效

# 方法二:
vi /etc/sysconfig/iptables  打开配置文件加入如下语句:
-A INPUT -p tcp -m state –state NEW -m tcp –dport 80 -j DROP   重启防火墙,修改完成

查看端口状态

/etc/init.d/iptables status

4. free 查看系统内存

image.png
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。

# 自定义格式输出
free -m | sed -n '2p' | awk '{print "used mem is "$3"M,total mem is "$2"M,used percent is "$3/$2*100"%"}' 
    # --》 used mem is 140M,total mem is 1839M,used percent is 7.61283%

5. ps 查看正在运行中的进程的信息

参数

  • -a 显示所有进程(包括其他用户的进程)
  • -u 用户以及其他详细信息
  • -x 显示没有控制终端的进程

image.png

查找关于java的进程

ps -aux |grep java
pstree # 显示当前系统运行状态的进程树

# 设置语言环境英文
export LANG=en

#进程可以有子进程,bash下再打开一个子bash进程
bash

# 查看目录 最基础命令
ls
ll #  ls -l 的缩写 查看文件的详情
ls -a # 查看所有文件包含隐藏文件和 . 开头的文件(包含上层目录路径)
# 多种命令可以组合之用 如:ll -a

6. 文件

查看

#有非常多的工具可以查看、编辑
cat
tail
more
less
vim # vi
# 这些又有很多的功能,我在其他的文章里会再具体讲解的。

增删改

# 新建 filename.fix 文件名.后缀
touch filename.fix
# 强制删除文件不警告
rm -f filename.fix
# 重命名(filename.fix文件夹,dd.txt改后的文件名)
mv filename.fix dd.txt
# 移动(后面跟路径就是移动)(有路径又有文件名,移动并改名)
mv filename.fix /home/gaox/dd.txt
# 复制
cp 文件夹 目录/新文件夹名

目录和文件的区别

我个人的理解一般文件夹在其后有“/”跟随,但不是必须
另外文件夹和文件的创建方式不同
文件夹:mkdir
文件 :touch

创建多级目录,并进入新创建的目录

一般我们需要创建多级目录就需要加上-p选项

常用系统命令 - 图3

编辑用户目录下:vim /root/.bashrc 在末尾添加以下内容

# mkdir -p
mkr()
{
        mkdir -p "$1"
}
# mkdir -p && cd
mkcd()
{
        mkdir -p "$1" && cd "$1"
}

保存退出后,刷新引用该文件,输入如下命令:

source .bashrc

10. history 历史文件

常用系统命令 - 图4

首先要介绍的是命令行工具 history,它能帮你记住那些你曾经用过的命令。包括应用最广泛的 Bash 在内的大多数 Linux shell,都会创建一个历史文件来包含那些你输入过的命令。如果你用的是 Bash,这个历史文件就是 /home//.bash_history。
这个历史文件是纯文本格式的,你可以用任意的文本编辑器打开来浏览和搜索。

1. 如何轻松记住 Linux 命令

2. Linux 新手往往对命令行心存畏惧。部分原因是因为需要记忆大量的命令,毕竟掌握命令是高效使用命令行的前提。

3. 不幸的是,学习这些命令并无捷径,然而在你开始学习命令之初,有些工具还是可以帮到你的。

显示历史命令

语法格式是:history [option] [arg…]
如果不带任何参数,则history命令会显示历史命令的清单

如果history 后给出一个正整数(如50),就只显示历史表中的最后50行命令
如果history后给出一个文件名,就把它作为历史文件名

常用的选项有:

  • -a 在历史文件中添加“新”历史命令行。
  • -n 从历史文件中读取尚未读入的历史命令行,添加到当前历史清单中。
  • -r 读取历史文件的内容,并把它作为当前的历史命令。
  • -w 把当前的历史写到历史文件中,覆盖原有内容。
  • -c 删除历史清单中所有的项。

执行历史命令

执行历史命令是命令替换之一,它以字符“!”开头、后随1个或多个字符来定义用户所需的某种类型的历史命令

基本的事件指定字格式

格 式 意 义
!! 重复上一条命令,也就是“!-1”
!n 重新执行第n条历史命令
!-n 重新执行倒数第n条历史命令。!-1就等于!!
!string 重新执行以字符串string开头的最近的历史命令行。
!?string? 重新执行最近的、包含字符串string的那条历史命令
!# 到现在为止所输入的整个命令行

配置历史命令环境

# 在默认方式下,bash使用用户主目录下面的文件“.bash_history”来保存命令历史 
# 改变存放历史命令的文件 
    $ HISTFILE="/home/mengqc/.myhistory"
# 重新设定能够保留的命令个数 
    $ HISTSIZE=600

11. apropos

确实存在一个可以帮你找到其他命令的命令。这个命令就是 apropos,它能帮你找出合适的命令来完成你的搜索。比如,假设你需要知道哪个命令可以列出目录的内容,你可以运行下面命令:
apropos "list directory"
常用系统命令 - 图5
这就搜索出结果了,非常直接。给 “directory” 加上复数后再试一下。
apropos "list directories"
这次没用了。apropos 所作的其实就是搜索一系列命令的描述。描述不匹配的命令不会纳入结果中。
还有其他的用法。通过 -a 标志,你可以以更灵活的方式来增加搜索关键字。试试这条命令: 你会觉得应该会有一些匹配的内容出现,比如 grep 对吗? 然而,实际上并没有匹配出任何结果。再说一次,apropos 只会根据字面内容进行搜索。
现在让我们试着用 -a 标志来把单词分割开来。(LCTT 译注:该选项的意思是“and”,即多个关键字都存在,但是不需要正好是连在一起的字符串。)
apropos "match" -a "pattern"
常用系统命令 - 图6
这一下,你可以看到很多期望的结果了。
apropos 是一个很棒的工具,不过你需要留意它的缺陷。

12. 用户命令

# 查看所有登录的用户
users
# 创建用户 设置一个空密码 指定home目录
useradd -p '' -d /home/san/ gaox
# 为其设置密码
passwd eric 
# 输入两次密码(密码要符合要求复杂度)

# 修改用户 修改home目录为/home/lisa
usermod -d /home/lisa

# 删除用户
userdel

13. 代码补全

可以输入目录名或文件名的开头部分,然后按Tab键,Linux根据输入的字母查找以这些字母开头的目录或文件,并自动补全剩余的部分。

14. alias 别名

# 没有指定参数是默认输出别名清单
alias
# 定义别名时,往往用单引号将它代表的内容括起来,从而防止shell对其中的内容产生歧义,如对空格和特殊字符另作解释
alias lla 'ls -l -a'
# 取消别名
unalias lla
# 一次性取消所有别名 unalias -a

15. 修改查看主机名

# 查看当前主机名
hostname
# 修改当前主机名
vi /etc/hostname

# 永久设置主机名为centos7_gaox
hostnamectl set-hostname centos7_gaox

hostnamectl命令功能较为完善,可以使用此命令设置。
image.png

top 显示当前系统中进程占用资源的情况

top命令会显示当前系统中占用资源最多的一些进程(默认以CPU占用率排序)如果你想改变排序方式,可以在结果列表中点击O(大写字母O)会显示所有可用于排序的列,这个时候你就可以选择你想排序的列。
如果只想显示某个特定用户的进程,可以使用-u选项。

$ top -u gaox

whereis 程序安装目录

$ whereis java
java: /usr/bin/java /usr/java/jdk1.8.0_201-amd64/bin/java /usr/share/man/man1/java.1

which 程序命令位置

$ which java
/usr/bin/java

locate 显示某个指定文件(或一组文件)的路径

locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

$ locate /etc/sh
搜索etc目录下所有以sh开头的文件。
  $ locate ~/m
搜索用户主目录下,所有以m开头的文件。
  $ locate -i ~/m
搜索用户主目录下,所有以m开头的文件,并且忽略大小写。

网络命令

# ping 检测网络连通
$ ping www.gaox.site

# 显示相关网络配置 
$ ifconfig
# 查看所有网络接口及其状态
$ ifconfig -a
使用up和down命令启动或停止某个接口
$ ifconfig eth0 up
$ ifconfig eth0 down

关机

# 关闭系统并立即关机
$ shutdown -h now
# 10分钟后关机
$ shutdown -h +10
# 重启
$ shutdown -r now
# 重启期间强制进行系统检查
$ shutdown -Fr now

服务

service命令用于运行System V init脚本,这些脚本一般位于/etc/init.d文件下,这个命令可以直接运行这个文件夹里面的脚本,而不用加上路径。

# 查看服务状态
$ service ssh status
# 查看所有服务状态
$ service --status-all
# 重启服务
$ service ssh restart

定时任务

# 查看某个用户的crontab入口
$ crontab -u john -l
# 设置一个每十分钟执行一次的计划任务
/10    * /home/ramesh/check-disk-space