LInux常用指令(一)

1.vim 的常用三种模式

  在命令行中输入 vim+文件名 进入的就是正常模式;按Esc+i 进入的是编辑模式,可对文本内容进行编辑;按Esc+:进入的是命令模式。

# 正常模式下
'''
1.拷贝当前行,并粘贴
    拷贝:yy    粘贴:p
2.拷贝当前行向下5行(包括当前行总共5行),并粘贴
    拷贝5行:5yy
3.删除当前行
    删除:dd
4.删除当前行向下5行(包括当前行总共5行)
    删除5行:5dd
5.光标移至最后一行
    G
6.光标移至首行
    gg
7.移动到第7行
    7gg
8.撤销
    u
'''

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

2.开机 / 重启 / 用户切换 / 注销 

1)关机/重启命令

shutdown 命令
    shutdown -h now / 2    # 立刻关机 / 2分钟以后再关机(数字代表的是分钟)
    shutdown -r now / 2     # 立刻重启 / 2分钟以后再重启

sleep 30 && halt    # 30秒钟以后关机(数字代表的是秒数)
halt  / reboot      # 关机 / 重启
sync        # 把内存同步到磁盘(关机或重启前,都应当先执行一下sync指令)

 2)切换 / 注销用户

su - 用户1      # 切换到用户1 
exit          # 回到原来用户

logout     # 注销用户(图形界面无效)

 3.用户管理

1)添加用户(useradd)

useradd 用户名    # 添加一个新用户
    useradd lin         # 添加一个用户 in
    passwd lin          # 为用户 lin 设置登录密码
useradd -d 目录路径 用户名    # 指定家目录
useradd -g 用户组名 用户名    # 指定用户所在的组名,组要先创建好才可以使用 
    useradd -g hxx lin    # 指定用户 lin 在 hxx 组里    

2)删除用户(userdel)

userdel  用户名        # 删除用户,保留家目录(常用这种)
userdel  -r  用户名    # 删除用户,不保留家目录

id 用户名  # 常用于查看用户是否存在

3)增加组(groupadd)

groupadd 组名
  groupadd hxx    # 增加一个名为 hxx 的组名

4)删除组(groupdel)

groupdel 组名
    groupdel hxx    # 删除一个名为 hxx 的组名
# 注意:组内如果有用户会导致删除失败,此时先删除用户再删除组。

5)修改用户的组(usermod)

usermod -g 组名 用户名
'''
[root@localhost home]# groupadd hxx
[root@localhost home]# groupadd lxx
[root@localhost home]# useradd -g hxx lili
[root@localhost home]# id lili
uid=501(lili) gid=504(hxx) 组=504(hxx)
[root@localhost home]# usermod -g lxx lili
[root@localhost home]# id lili
uid=501(lili) gid=505(lxx) 组=505(lxx)
'''
etc/passwd文件   # 用户的配置文件,记录着用户的各种信息
etc/shadow文件   # 口令配置文件,存用户密码和相关时间的地方
etc/group文件    # 组的配置文件

4.运行级别相关指令

1)指令运行级别(/etc/inittab)

0:关机
1:单用户[找回丢失密码]      # 没有密码,直接是root用户
2:多用户状态[无网络服务]    # 基本不用
3:多用户状态[有网络服务]   # 正常都是它  
4:保留级别
5:图形界面     
6:系统重启

2)运行级别相关操作

vim /etc/inittab      # 进入到配置文件中
id : 5 : initdefault :      # 表示当前指令运行级别为 第5级别

init [012356]   #  输入数字几,就表示当前指令运行级别为 第几级别
'''
如何找回 root 密码,如果我们不小心,忘记 root  密码,怎么找回?
​  解题思路: 进入到 单用户模式,然后修改 root 密码。因为进入单用户模式,root 不需要密码就可以登录。

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

5.文件目录指令

1)pwd指令

pwd        # 显示当前所在的目录

2)ls指令

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

3)长度路径指令

绝对路径:cd /etc/
相对路径:
    cd ~  或者 cd:    # 回到家目录
    cd ..                    # 回到上一级目录

4)创建 / 删除 文件夹(mkdir/rmdir)

mkdir:
    mkdir  路径1+文件夹1        # 在路径1下创建一个文件夹1
    mkdir -p 路径+文件夹名    # 创建多级文件夹

rmdir:
    rmdir 路径+文件夹名        # 删除空文件夹
    rmdir -p  路径+文件夹名         # 递归删除空文件夹
    rmdir -p  文件夹1 文件夹2 文件夹3    # 依次删除空文件夹
# 注意:如果文件夹下有内容,删除失败

5)创建文件(touch)

touch 路径1+文件1   # 在路径1 下创建一个 文件1
touch 路径+文件名1  路径+文件名2     # 可以一次创建多个文件,中间用空格隔开

6)拷贝文件到目标路径(cp)

cp 源路径 目标路径            # 拷贝单个文件  相当于复制
cp  源路径 目标路径          # 取消提示,强制复制。
cp -r 源路径 目标路径     # 将源路径拷贝到目标路径下

'''
1./home下创建test1文件夹
    mkdir /home/test1
2.test1文件夹中创建a.txt,b.txt,c.txt三个文件
    cd /home/test1
    touch a.txt b.txt c.txt
3.把test1中的a.txt复制到/home下
    cp /home/test1/a.txt /home
4.新建一个文件夹test2
    mkdir /home/test2
5.拷贝整个test1到test2下
    cp -r /home/test1 /home/test2
'''

7)移动文件或重命名(mv)

mv 源路径  目标路径
    mv a.txt  d.txt      # 将test1中的a.txt 重命名为 d.txt
    mv /home/test1/c.txt  /home      # 把test1中的c.txt 移动到/home下

8)删除目录或者文件(rm)

rm [选项] 目标路径
    rm 文件路径        # 删除文件
    rm -r 文件夹路径      # 删除文件夹
    rm -f xxxx        # 强制删除不提示
    rm -rf xxxx      # 强制删除,不留痕迹   一般不建议使用

9)显示文件内容(cat)

cat [选项] 文件路径
    cat 文件路径          # 显示文件内容
    cat -n 文件路径      # 显示文件内容,并显示行号
    cat -n /etc/profile | more      # 把内容传给more,分页显示

10)重定向(>指令  />> 指令)

>:输出重定向        # 会覆盖原来文件内容
>>:追加重定向        # 追加到文件末尾
'''
1.把 ll 查找的结果,用输出(覆盖)重定向写进桌面的a.txt中
    ll > /root/桌面/222.txt
2.把 ll 查找的结果,用追加重定向写进桌面的a.txt中
    ll >> /root/桌面/222.txt
'''

11)显示文件部分内容(head / tail)

head  #用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
    head 文件路径            # 查看文件前10行
    head -n 5 文件路径        # 查看文件前5行。n后接的数字可任意设置


tail  #用于显示文件的结尾部分内容,默认情况下tail指令显示文件的后10行内容
    tail 文件路径            # 查看文件前10行
    tail -n 5 文件路径        # 查看文件前5行
    tail -f 文件路径        # 实时追踪文件所有的更新   经常使用

6.时间日期类

1)查看日期(date)

date             # 显示当前日期
date +%Y        # 显示当前年份
date +%m        # 显示当前月份
date +%d        # 显示当前天
date  "+%Y-%m-%d %H:%M:%S"   # 设置当前显示时间的格式
'''
1.设置当前时间格式为 2019年12月26日 23时44分35秒
    date "+%Y年%m月%d日  %H时%M分%S秒"  
'''

2)查看日历(cal)

cal           # 显示当前日历
cal 2020       # 显示2020年的日历
cal 10 2018     #  显示2018年10月份日历

3)find 查找指令

find [路径] [选项] [查找内容]         #路径如果不写默认从当前向下找,类似于windows的查找

选项:
    -name 文件名       #按文件名查找
    -user 用户名       # 查找属于该用户的所有文件
    -size          # 按文件大小查找
'''
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 的文件. “ *.txt”  通配符要加引号"
    find / -name "*.txt"
'''

4)过滤查找指令 (grep)

# 管道符:"|",表示将前一个命令的处理结果  再作为条件输出传递给后面的命令处理
grep [选项] 过滤内容

选项:
    -n        显示匹配行及行号
    -i        忽略字母大小写
'''
1.查找a.txt文件中'yes'所在行,并显示行号
    cat a.txt | grep -n "yes"
2.忽略大小写,查找a.txt文件中'yes'所在行
    cat a.txt | grep -ni "yes"
'''
原文地址:https://www.cnblogs.com/blue-tea/p/12099524.html