Linux命令

常用命令

su - root  # 登入管理员
exit   # 退出
init0  # 关机
shutdown -h now  # 立即关机
init6  # 重启

ctrl+alt+f2  #  切换终端
whoami  # 查看当前用户
date  # 查看日期
data 121215252019(月日时分年)  # 修改日期,按照月日时分年的顺序修改
cal/cal 3 2019  # 查看当前日历/查看2019年3月份日历

clear/ctrl+L  # 清屏
passwd  # 修改密码
echo 123 | passwd -- stdin root  # 修改用户密码为123

目录操作

# 增加目录
mkdir /a  # 在根目录下创建a目录
mkdir -p /b/g  # 使用了“-p”,可以直接在b目录下创建g目录或者文件

#
ls  # 查看根目录下所有文件

#
mv /a/b /a/f  # 将a下的b改为f
 mv /a/c /b  # 将a下的c移动到b文件夹下
ctrl+c  # 取消运行

#
rm -r /b/g  # 可以直接删除b目录下的g(必须加上-r)
rm -rf /b  # 直接全部删除,不会提示(j尽量不轻易使用)

文件操作

#
touch a.txt  # 新增文件

# 查看
ls 

# 修改
mv a.txt b.txt  # 将a文件改为b文件

#删除
rm -rf b.txt  # 删除b文件

用户管理

cat etc/passwd  # 用户信息文件
vim /etc/shaow  # 与用户密码先关
cat /etc/group  # 组相关
cat /etc/gshadow  # 组密码相关

useradd 用户名  # 添加用户
userdel用户名  # 删除用户,保留家目录
userdel -r 用户名  # 删除用户,不保留家目录
useradd -d 目录路径 用户名  # 指定家目录
useradd -g 用户组名 用户名  # 指定用户组

组操作命令

groupadd 组名  # 增加组名
groupdel 组名  # 删除组名
usermod -g 组名 用户名  # 修改用户组名

**前提:组内不能有用户,否则无法删除**

ls命令

ls  目录或文件  # 查看文件信息
ls -a  # 查看所有文件和目录,包括隐藏的
ls -l  # 以列表的方式显示

cd命令

cd # 路径
cd ~ # 回到家目录
cd ..  # 回到上一级目录

cp命令

cp test cat  # 拷贝test文件到cat文件中
cp -r 源路径(test) 目标路径(cat)      # 拷贝文件夹
cp [选项] 源路径 目标路径  # 取消提示,强制复制

rm命令

rm 文件路径  # 删除文件
rm -r 文件夹路径  # 删除文件夹
rm -f xxx  # 删除不再提示

cat命令

cat 文件路径  # 显示文件夹内容
cat -n 文件路径  # 显示文件内容,并显示行号

cat -n /etc/profile | more  # 正常情况为了方便阅读,我们会在cat指令最后加上管道符"
|",把内容传给more,分页显示

 tail命令

1、tail -f filename
说明:监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。
2、tail -n 20 filename
说明:显示filename最后20行。
3、tail -n +20 filename
说明:显示filename前面20行。
4、tail -r -n 10 filename
说明:逆序显示filename最后10行。

 Vim命令

1.拷贝当前行,并粘贴
    拷贝:yy    粘贴:p
2.拷贝当前行向下5行,并粘贴
    拷贝5行:5yy
3.删除当前行
    删除:dd
4.删除当前行向下5行
    删除5行:5dd
5.光标移至最后一行
    G
6.光标移至首行
    gg
7.移动到第7行
    7gg
8.撤销
    u

1.查找某个关键字
/关键字
2.取消高亮
:nohl
3.显示行号
:set nu
4.取消行号
:set nonu

 

more指令快捷键

空格  # 向下翻一页
Enter  # 向下翻一页
q  # 立即离开
Ctrl+F  # 向下滚动一屏
Ctrl+B  # 向上滚动一屏
=  # 显示当前行号
:f  # 输出文件名和当前行号

less指令快捷键

空格  # 向下翻一页
pagedown  # 向下翻一页
pageup  # 向上翻一页
/字符串  # 向下查找[字符串],n下一个,N上一个
?字符串  # 向上查找[字符串],n下一个,N上一个
q  # 离开less

关机/重启命令

shutdown命令
    shutdown -h now :立即关机
    shutdown -h 2   :1分钟后关机
    shutdown -r now :立即重启
    shutdown -r 1    :1分钟后重启

halt
    关机
reboot
    重启
sync:
    把内存的数据同步到磁盘

特别注意:当关机或重启前,都应当先执行一下sync指令,把内存的数据写入磁盘,防止数据丢失

 

问题

如何找回 root 密码,如果我们不小心,忘记 root 密码,怎么找回。

思路: 进入到 单用户模式,然后修改 root 密码。因为进入单用户模式,root 不需要密码就可以登录。

 

开机->在引导时输入 回车键-> 看到一个界面输入 e ->  看到一个新的界面,选中第二行(编辑内核)在输入  e->  在这行最后输入1 ,再输入 回车键->再次输入 b ,这时就会进入到单用户模式。
这时,我们就进入到单用户模式,使用 passwd  指令来修改 root  密码。

find指令

指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端

find [范围] [选项]
范围:指路径,不写默认从当前向下找,类似于windows的查找

选项:
-name 文件名  # 按文件名查找
-user 用户名  # 查找属于该用户的所有文件
-size  # 按文件大小查找
    +20M
    -20M
    20M
    20K

“*.txt” 通配符要加引号

练习:

1.根据名称查找/home 目录下的 a.txt 文件
    find /home -name a.txt
    find /home -name "*.txt"

2.查找/opt 目录下,用户名称为 lxx 的文件 find /opt -user lxx
3.查找整个 linux 系统下大于 20M 的文件 find / -size +20M
4.查询/ 目录下,所有.txt 的文件 find / -name "*.txt"

grep 指令 和 管道符号 

管道符:"|",表示将前一个命令的处理结果输出传递给后面的命令处理

grep:过滤查找
grep -n 过滤内容 # 显示匹配行及行号
grep -i 过滤内容 # 忽略字母大小写
例子:
1.创建文件,写上多行,包含'yes''YES'
    
2.查找'yes'所在行,并显示行号
    cat a.txt | grep -n "yes"
3.忽略大小写,查找'yes'所在行
    cat a.txt | grep -ni "yes"

 

压缩和解压

gzip/gunzip 指令(只能用于文件压缩)

用于压缩和解压文件

gzip 文件路径  # 压缩
gunzip gz 文件路径  # 解压

zip/unzip 指令

zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的

zip [选项] xxx.zip 被压缩内容            # 压缩文件或者目录
    -r                             # 压缩目录

unzip [选项] xxx.zip                 #  解压文件    
    -d 目录                #  指定压缩后的存放目录
例子:
1.将 /home 下的 所有文件进行压缩成 mypackage.zip
    zip -r mypackage.zip /home
    zip -r mypackage.zip /home/*
2.讲mypackge.zip解压到/opt/tmp下
    unzip -d /opt/tmp mypackge.zip

tar指令

tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件

压缩:
tar -zcvf xx.tar.gz  被压缩内容(文件,文件夹,多个也行)                        #压缩
tar -zxvf xx.tar.gz     -C 目标路径                                        #解压

z:使用gzip格式压缩,否则是单纯打包
c:压缩
x:解压
f:显示压缩解压过程
v:显示提示信息
例子:
1.压缩多个文件,将  /home/a1.txt 和  /home/a2.txt 压缩成    a.tar.gz
    tar -zcvf a.tar.gz /home/a1.txt /home/a2.txt
2.将/home 的文件夹 压缩成 myhome.tar.gz
3.将  a.tar.gz    解压到当前目录
4.将 myhome.tar.gz    解压到 /opt/ 目录下

组管理和权限管理

文件/目录 所有者

一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。

查看文件的所有者

ls -ahl

修改文件所有者

chown 用户名 文件名

文件/目录 所在组

当某个用户创建了一个当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。

查看文件/目录 所在组

ls –ahl

修改文件所在组

chgrp 组名 文件名

其他组

除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

改变用户所在组

在添加用户时,可以指定将该用户添加到哪个组中,同样的用 root 的管理权限可以改变某个用户所在的组

改变用户所在组

usermod    –g    组名    用户名

权限基本介绍

ls -l
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

0-9 位说明
第 0 位确定文件类型(d,-,l)
第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限
第 4-6 位确定所属组(同用户组的)拥有该文件的权限
第 7-9 位确定其他用户拥有该文件的权限

rwx权限详解

rwx作用到文件

r  # 可读
w  # 可写[可写不代表可以删除,删除一个文件的前提是对文件所在的目录有写的权限]
x  # 可执行

rwx作用到目录

r  # 可读(可用ls查看目录内容)
w  # 可写[可在目录内创建+删除+重命名文件或目录]
x  # 可执行[可以进入目录]

文件及目录权限实际案例

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

- 表示类型为文件
第一组rwx: 表示所有者 可读  可写 可执行
第二组rw-: 表示同组用户  可读 可写 但不能执行
第三组r--: 表示其他用户  只可读

可用数字表示:
r = 4
w = 2
x = 1
因此rwx = 4+2+1 = 7

修改权限

chmod 权限变更格式 文件或目录路径

权限变更格式一:
u  # 所有者    
g  # 所有组    
o  # 其他用户    
a  # 所有人


1. u=rwx,g=rx,o=x
2. o+w  # 其它用户增加w权限
3. a-x  # 所有人减去执行权限
例子:
1.给 abc 文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限
    chmod u=rwx,g=rx,o=rx abc
2.给 abc 文件的所有者除去执行的权限,增加组写的权限
    chmod u-x,g+w abc
3.给 abc 文件,所有用户添加读的权限
    chmod a+r abc
权限变更格式二:
r = 4   w = 2  x = 1    rwx = 7      rx = 5
chmod u=rwx,g=rx,o=x   可以写成        chmod 751
例子:
1.将 /home/abc 文件的权限修改成    rwxr-xr-x, 使用给数字的方式实现
    chmod  755  /home/abc

修改文件所有者

chown newowner file  # 改变文件所有者
chown -R newowner 文件夹  # 使得所有子文件或子目录生效

修改文件所在组

chgrp newgroup file  # 改变文件所有组
chgrp -R newgroup 文件夹  # 使得所有子文件或子目录生效

crond任务调度

    crontab -e  # bianji crontab定时任务
    crontab -l  # 查询crontab
    crontab -r  # 删除当前用户所有的crontab任务
例子:
每分钟执行查看一次/ect目录,把目录内容写进/tml/a.txt下

具体实现步骤:
1.crontab –e
2.*/ 1 * * * * ls -l /etc >> /tmp/a.txt
3.保存退出

 

挂载的经典案例

需求是给我们的 Linux 系统增加一个新的硬盘,并且挂载到/home/newdisk

步骤:
1.虚拟机添加硬盘
2.分区
    fdisk /dev/sdb
    m    选择帮助
    n    增加分区
    p    划主分区
    1    主分区1
    1    默认
    w    写入分区信息并退出

3.格式化
    mkfs -t ext4 /dev/sdb1

4.挂载
    mount /dev/sdb1 /home/newdisk


5.设置自动挂载
    vim /etc/fstab
    (内容如下)
    mount -a   立即生效

磁盘情况查询

查询系统整体磁盘使用情况

df -lh

查询指定目录的磁盘占用情况

du      #  /目录
    -h  # 带计量单位
    -s  # 指令目录占用磁盘大小
    -a  # 含文件
    -c   # 列出明细,并显示汇总值
    --max-depth=1  # 子目录深度

网络配置

Linux网络配置原理图(NAT)

查看网络ip和网关

查看虚拟网络编辑器

修改ip地址(修改虚拟网络的ip)

查看网关

 

查看windows环境的中 VMnet8

网络配置 (ipconfig 指令)

1.使用命令查看

ipconfig

ping 测试主机之间网络连通

基本语法

ping 目标ip      # 测试当前服务器是否可以连接目的主机

Linux网络环境配置

直 接 修 改 配 置 文 件 来 指 定 IP, 并 可 以 连 接 到 外 网

vim  /etc/sysconfig/network-scripts/ifcfg-ens33

 修改配置文件后,要重启网络服务才能生效

service network restart

进程管理

指令详解

BSD风格 详解

user             用户名称
pid                进程号
%cpu            进程占用cpu百分比
%%mem            进程占用物理内存的百分比
vsz                进程占用虚拟内存的大小
rss                进程占用物理内存的大小
tty                终端名称(后台则为?)
stat            进程状态
    S:睡眠
    s:会话的先导进程
    N:进程拥有比普通优先级更低的优先级
    R:正在运行
    D:短期等待
    Z:僵尸进程
    T:被跟踪或者被停止
start            进程启动时间
time            使用cpu总时间
command            启动进程所用的命令和参数,如果过长会被截断显示

system V 风格详解

uid             用户id
pid                进程id
ppid            父进程id
C                进程占cpu百分比
stime            进程启动时间
tty                终端名称(后台则为?)
cmd                启动进程所用的命令和参数

查看进程树 pstree

pstree [选项]
    -p    查看进程pid
    -u      查看进程所属用户

服务(service)管理

基本使用

service 服务名 [start | stop | restart | reload | status]

查看服务名

/etc/init.d 此文件夹下放着系统都有哪些服务

ls -l /etc/init.d

chkconfig指令

 通过 chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭

chkconfig  # 查看每个服务的配置
chkconfig 服务名  # 查看具体服务的配置
chkconfig --level 5 服务名  on/off  # 给服务设置是否自动启动

chkconfig 重新设置服务后自启动或关闭,需要重启机器 reboot 才能生效

动态监控进程

top 与 ps 命令很相似。它们都用来显示正在执行的进程。Top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程

top [选项]
    -d            指定每隔几秒更新,默认3秒
    -i            不显示任何闲置或者僵尸进程
    -p id号        监听指定进程


交互操作:
P        以cpu使用率排序,默认就这个
M        以内存使用率排序
N        以pid排序
u        监听具体用户
k        终止指定进程
q        退出top

 

原文地址:https://www.cnblogs.com/xiongying4/p/11973840.html