Linux常用命令

Linux

一、系统目录结构

  1. / :根

每一个文件和目录从根目录开始。

只有root用户具有该目录下的写权限。请注意,/root是root用户的主目录,这与/不一样

  1. /bin :用户二进制文件

包含二进制可执行文件。

在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。

例如:ps、ls、ping、grep、cp

  1. /sbin :系统二进制文件

就像/bin,/sbin同样也包含二进制可执行文件。

但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令

  1. /etc :配置文件

包含所有程序所需的配置文件。

也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc/resolv.conf、/etc/logrotate.conf

hosts:设备名称(或域名)到ip地址的解析,相当于本地存在的dns功能。

  1. /dev :设备文件

包含设备文件。

这些包括终端设备、USB或连接到系统的任何设备。例如:/dev/tty1、/dev/usbmon0

  1. /proc :进程信息

包含系统进程的相关信息。

这是一个虚拟的文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid}目录中包含的与特定pid相关的信息。

这是一个虚拟的文件系统,系统资源以文本信息形式存在。例如:/proc/uptime

  1. /var :变量文件

var代表变量文件。

这个目录下可以找到内容可能增长的文件。

这包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp);

  1. /tem :临时文件

包含系统和用户创建的临时文件。

当系统重新启动时,这个目录下的文件都将被删除。

  1. /usr :系统应用程序

包含二进制文件、库文件、文档和二级程序的源代码。

/usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。例如:at、awk、cc、less、scp。

/usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。例如:atd、cron、sshd、useradd、userdel。

/usr/lib中包含了/usr/bin和/usr/sbin用到的库。

/usr/local中包含了从源安装的用户程序。例如,当你从源安装Apache,它会在/usr/local/apache2中。

  1. /home :HOME 目录

所有用户用home目录来存储他们的个人档案。

例如:/home/john、/home/nikita

  1. /boot :引导加载程序文件

包含引导加载程序相关的文件。

内核的initrd、vmlinux、grub文件位于/boot下。

例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic

  1. /lib :系统库

包含支持位于/bin和/sbin下的二进制文件的库文件.

库文件名为 ld或lib.so.*

例如:ld-2.11.1.so,libncurses.so.5.7

  1. /opt代表可选的。

包含从个别厂商的附加应用程序。

附加应用程序应该安装在/opt/或者/opt/的子目录下。

14 /mnt :挂载目录

临时安装目录,系统管理员可以挂载文件系统。

15 /media :可移动媒体设备

用于挂载可移动设备的临时目录。

举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy;

16 /srv :服务数据

srv代表服务。

包含服务器特定服务相关的数据。

例如,/srv/cvs包含cvs相关的数据。

二、SSH 协议(安全外壳协议)

ssh为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

三、命令基本格式

  1. 命令提示符

[root@localhost ~]#

解析:

  1. 命令格式

命令 [选项] [参数]

注意:
【1】个别命令的使用不遵循次格式;
【2】当有多个选项时,可以写在一起;
【3】简化选项与完整选项;
【4】-a 等于 --all;

四、常用命令

  1. 基本命令

  2. 文件查询命令

  3. 文件处理命令

在Linux中一切皆文件,文件夹也是文件

  1. 复制命令

语法

  1. 剪切或改名命令

语法

  1. 文件搜索命令

  2. 文件搜索命令

  3. Linux 中的通配符

  4. 按时间查询

案例

  1. 按文件大小查询

案例

  1. 符合条件查询

案例

  1. 字符串搜索命令

案例

find命令:在系统中搜索符合条件的文件名.
grep命令:在文件中搜索符合条件的字符串.

ps -ef | grep java

ps命令将某个进程显示出来;

grep命令是查找;

中间的|是管道命令 是指ps命令与grep同时执行;

PS是LINUX下最常用的也是非常强大的进程查看命令;

grep命令是查找,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来;

grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户;

以下这条命令是检查java 进程是否存在:ps -ef |grep java;

字段含义如下:
UID PID PPID C STIME TTY TIME CMD

zzw 14124 13991 0 00:38 pts/0 00:00:00 grep --color=auto dae

UID :程序被该 UID 所拥有

PID :就是这个程序的 ID

PPID :则是其上级父程序的ID

C :CPU使用的资源百分比

STIME :系统启动时间

TTY :登入者的终端机位置

TIME :使用掉的CPU时间。

CMD :所下达的是什么指令

  1. 查看帮助命令

语法

  1. 获取命令选项的帮助

语法

五、压缩和解压命令

  1. .zip 格式

1.1 zip 压缩

语法

1.2 zip 解压缩

语法

  1. .gz 格式

语法

  1. .bz2 格式(拓展)

语法

注意:bzip2 命令不能压缩文件夹

.bz2和.gz的区别:

1).bz2和.gz都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件;

2)前者比后者压缩率更高,后者比前者花费更少的时间。也就是说同一个文件,压缩后,.bz2文件比.gz文件更小,但是.bz2文件的小是以花费更多的时间为代价的。

  1. .tar.gz格式 (重点)

其实.tar.gz格式是先打包为tar格式,在压缩为.gz格式

语法

六、关机和重启命令

  1. 关机命令

1.1 shutdown 命令

语法

1.2 其他关机、重启命令

  1. 查看任务进程

命令:top

每行代表意思:

任务进程

第一行:

10:01:23 — 当前系统时间

126 days, 14:29 — 系统已经运行了126天14小时29分钟(在这期间没有重启过)

2 users — 当前有2个用户登录系统

load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

第二行:

Tasks — 任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行:cpu状态

6.7% us — 用户空间占用CPU的百分比。

0.4% sy — 内核空间占用CPU的百分比。

0.0% ni — 改变过优先级的进程占用CPU的百分比

92.9% id — 空闲CPU百分比

0.0% wa — IO等待占用CPU的百分比

0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比

0.0% si — 软中断(Software Interrupts)占用CPU的百分比

第四行:内存状态

8306544k total — 物理内存总量(8GB)

7775876k used — 使用中的内存总量(7.7GB)

530668k free — 空闲内存总量(530M)

79236k buffers — 缓存的内存量 (79M)

第五行:swap交换分区

2031608k total — 交换区总量(2GB)

2556k used — 使用的交换区总量(2.5M)

2029052k free — 空闲交换区总量(2GB)

4231276k cached — 缓冲的交换区总量(4GB)

第五行以下:

PID — 进程id

USER — 进程所有者

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行)

  1. 查看内存占用:free

内存占用情况:

total:内存总数;

used:已经使用的内存数;

free:空闲的内存数;

buffers Buffer:缓存内存数;

cached Page:缓存内存数。

  1. 查看操作历史

  2. 在显示器输出内容

  3. 文件查看命令

七、vi 编辑器

  1. 编辑器的三种模式

【1】编辑模式(命令模式) :所有的机键动作都会理解为编辑整个文档的操作,默认为编辑模式

【2】输入模式:大部分机键动作都会理解为输入的字符

【3】末行模式:在末行模式,输入很多文件管理命令

模式之间的相互转换:

编辑–>输入
i:在光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入
s:删除光标所在的字符并开始插入
I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
A:在光标所在你行的行尾开始插入
O:在光标所在行的上面另起一行开始插入
S:删除光标所在行并开始插入
输入模式–>编辑模式
ESC(键盘左上方的按键)
编辑模式—>末行模式
:
末行模式:–>编辑模式
ESC(键盘左上方的按键)(一次或者多次)
2. 打开和关闭文件

  1. 移动光标

逐字符移动:
h:左移动
l:右移动
j:向下移动
k:向上移动
行内跳转:
0:跳转到行首
$: 跳转到行尾
行间跳转;(末行模式)
num: 跳转到某一行(末行模式)
G: 跳转行最后一行(编辑模式)
gg: 跳转到第一行(编辑模式)
4. 翻屏操作

在编辑模式下
ctrl+f 向下翻一页
ctrl+b 向上翻一页
5. 删除命令

先 vi 文件名,进入改文件

dd:删除光标所在行 (编辑模式);

3dd:从光标行开始删除3行(编辑模式);
1,4d 删除第一行到第四行(末行模式),必须有4行才能删除;

  1. 查找和替换

文件的查找
/parttern 从前往后查找
?parttern 从后往前查找
n: 下一个匹配的字符串
N: 上一个匹配的字符串
文本的替换(末行模式)
startNum,endNums/partter/string/gi
g:全局替换
i:忽略大小写
%s/f/F/gi
:.,$s/F/f/gi
/关键字 按n找下一个
set number 设置行号 或者 set nu
取消行号:set nu!
八、权限管理

  1. 用户管理

1.1 计算资源:(一切皆文件)

权限:定义资源或服务的访问能力,称之为权限

定义某一个特定的人资源或者服务的访问能力, 用户

定义一类用户具有访问某个资源或服务的能力. 用户组(存放一些列用户的容器),同时用户组还拥有具有访问某个资源的权限

定义一个资源的权限:

① 用户具有该资源的权限(文件所有者,属主)

② 用户组具有该资源的权限(属组)

③ 其他用户(既不是属主,也不是属组)

文件权限:

r, 可读 可以执行类似cat命令的操作

w, 可写 可以编辑或者删除此文件

x 可执行

1.2 添加用户

创建用户 :useradd [用户名]

创建用户并分配一个组:useradd -G [组名] [用户名]

查看系统用户:cat /etc/passwd

1 用户名

2 用户的密码,用x替代

3 用户的uid,一般情况下root为0,1-499默认为系统账号,有的更大些到1000,500-65535为用户的可登录账号,有的系统从1000开始。

4 用户的gid,linux的用户都会有两个ID,一个是用户uid,一个是用户组id,在我们登录的时候,输入用户名和密码,其实会先到/etc/passwd查看是否有你输入的账号或者用户名,有的话将该账号与对应的UID和GID(在/etc/group中)读出来。然后读出主文件夹与shell的设置,然后再去检验密码是否正确,正确的话正常登录。

5 用户的账号说明解释

6 用户的家目录文件夹

7 用户使用的shell,如果换成/sbin/nologin/就是默认没有登录环境的。

1.3 添加组

查看系统用户组:cat /etc/group

1.4 修改用户组属性

修改用户组属性

usermod -G [组名] [用户名]

1.5 删除用户

删除用户:

-f:强制删除用户,即使用户已登录

-r:删除与用户相关的所有文件。

1.6 修改密码

passwd 用户名

切换用户: su 用户名

  1. 文件基本权限

2.1 文件权限解释

-rw-r–r-- 1 文件类型(- 文件 d 目录 I 软链接文件)

 rw-         r--         r–

u所有者        g所属组        o其他人

r读 
w写 
x执行

-rw-r–r--. 1 root root 12288 Aug 22 2019 aliases.db

以上内容代表的含义:
权限的数字表示

2.2 添加权限

chmod [选项] 模式 文件名

选项

 -R     递归

模式

[guoa] [±=] [rwx]

[mode=421]

2.3 修改权限的方式

chmod [选项] 模式 文件名

[guoa] [±=] [rwx]

g: groud

u: user

o: other

a: all

修改权限的方式:

chmod u+x 文件

#给当前用户添加指定文件的x执行权限

chmod g+w,o+w 文件

#给该文件用户组合其他人添加指定文件的w写的权限

chmod a=rwx 文件

#给该文件的当前用户,当前组,其他人 添加rwx可读可写可执行的权限

2.4 权限的数字表示

chmod [选项] 模式 文件名

[mode=421]

r :4
r-- : 100

w :2
-w- :010

x :1
–x :001

例子:
权限的数字表示

111—>7 rwx

110—>6 rw-

100—>4 r–

0 —

1 --x

2 -w-

3 -wx

4 r–

5 r-x

6 rw-

7 rwx

示例:

rwx r-x r-x

7 5 5

chmod 755 文件

aa.txt —>

拥有者: 可读可写 rw- 6

所述组: 可读写执行 r-x 5

其他人: 可读可写可执行 rwx 7

chmod 657 aa.txt

2.5 其他权限命令

修改文件的所有者
chown 用户名 文件名

修改文件的所属组
chgrp 组名 文件名

2.6 sudo权限

root把本来只能超级用户执行的命令赋予普通用户执行.

sudo的操作对象是系统命令

visudo

#实际修改的是/etc/sudoers文件

root ALL=(ALL) ALL

#用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)

%wheel ALL=(ALL) ALL

#%组名 被管理注解的地址=(可使用身份) 授权命令(绝对路径)

useradd dafei

passwd admin

dafei ALL = (ALL) /usr/sbin/shutdown

切换到dafei用户后

使用sudo命令执行shutdown

sudo shutdown -h now

2.7 系统服务管理

systemctl是CentOS7的服务管理工具中主要的工具

启动服务:systemctl start <服务名>

关闭服务:systemctl stop <服务名>

重启服务:systemctl restart <服务名>

查看服务状态:systemctl status <服务名>

添加开机启动项:systemctl enable <服务名>

禁止开机启动项:systemctl disable <服务名>

查看开机启动项:systemctl list-unit-files

2.8 进程查看

用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。

ps -ef 显示出的结果:

1.UID 用户ID

2.PID 进程ID

3.PPID 父进程ID

4.C CPU占用率

5.STIME 开始时间

6.TTY 开始此进程的TTY----终端设备

7.TIME 此进程运行的总时间

8.CMD 命令名

2.9 杀死进程

kill -9 pid

九、网络管理

  1. 网络中的基本概念

网络的基本概念
1)ip地址:在网络通信中主机的标识符(好比手机号码);

2)mac地址:主机的物理网卡的唯一标识符(好比身份证号码);

3)子网掩码:用于区分主机的IP地址中的网络地址和主机地址,并由此确定该主机的IP地址的网段;

4)网关:就是一个网络中的主机连接到另一个网络的主机的关口;

5)DNS:域名解析服务器,把域名解析成对应的IP地址;

  1. 防火墙

centos7的防火墙程序服务名为:firewalld

防火墙配置命令:firewall-cmd
防火墙帮助:firewall-cmd --help
查看防火墙状态:firewall-cmd --state
查看所有打开的端口:firewall-cmd --zone=public --list-ports
开启端口:firewall-cmd --zone=public --add-port=端口号/tcp --permanent(–permanent参数为永久生效,不加则重启后失效)
firewall-cmd --zone=public --add-port=80/tcp --permanent

更新防火墙规则:firewall-cmd --reload
删除端口:
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent
firewall-cmd --zone=public --remove-port=80/tcp --permanent
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3. ifcfg-eth解释

文件 /etc/sysconfig/network-scripts/ifcfg-eth0在/etc/sysconfig/network-script在这个目录下面,存放的是网络接口(网卡)的脚本文件(控制文件),ifcfg-eth0是默认的第一个网络接口,如果机器中有多网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg-eth3…(这里面的文件是相当重要的,涉及到网络能否正常工作)。

TYPE=Ethernet #网卡类型

DEVICE=eth0 #网卡接口名称

ONBOOT=yes #系统启动时是否自动加载

BOOTPROTO=static #启用地址协议 --static:静态协议 --bootp协议 --dhcp协议

IPADDR=192.168.1.11 #网卡IP地址

NETMASK=255.255.255.0 #网卡网络地址

GATEWAY=192.168.1.1 #网卡网关地址

DNS1=8.8.8.8 #网卡DNS地址

BROADCAST=192.168.1.255 #网卡广播地址

查看ip:

ip addr

TYPE=“Ethernet”

BOOTPROTO=“static”

IPADDR=“192.168.124.130”

NETMASK=“255.255.255.0”

GATEWAY=“192.168.124.2”

DNS1=“8.8.8.8”

BROADCAST=“192.168.124.255”

ONBOOT=“yes”

重启服务

systemctl restart network