linux常用命令

linux的一些常用命令使用

1.简单系统命令

# 查看ip地址
    ip a
    ip addr
# ping网络(测试网络连通)
    ip 目标机器的ip
# 查看系统时间
    date
# 注销
    logout
# 关机
    shutdown now
# 重启
    reboot
# 清屏
    clear

2.Linux文件系统

linux 含义 windows
/bin 所有用户可用的基本命令存放的位置 windows没有固定的命令存放目录
/sbin 需要管理员权限才能使用的命令
/boot linux系统启动的时候需要加载和使用的文件
/dev 外设连接linux后,对应的文件存放的位置 类似Windows中的U盘,光盘的符号文件。
/etc 存放系统或者安装的程序的配置文件,注册服务等 类似windows中的注册表,
/home 家目录,linux中每新建一个用户,会自动在home中为该用户分配一个文件夹 类似windows中的"我的文档",每个用户有自己的目录。
/root root账户的家目录,仅供root账户使用 类似windows中的Administrator账户的"我的文档"
/lib linux的命令和系统启动,需要使用一些公共的依赖,放在lib中,类似我们开发的代码执行需要引入的jdk的jar
/usr 很多系统软件的默认安装路径 类似windows中的C盘下的Program Files目录。
/var 系统和程序运行产生的日志文件和缓存文件放在这里

3. 文件管理命令

注意事项:命令区分大小写

3.1. 查看文件列表

    ls [-参数1参数2] [目标文件夹]

# 查看当前目录下的文件列表
    ls
# 查看指定目录下的文件
    ls /
# 查看详细信息,元数据信息(用户、组、大小、创建时间、权限信息、文件类型)
    ls -l
# 查看隐藏文件
    ls -a 
# 参数并用
    ls -la
-a  显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l  使用长格式列出文件及目录信息
-r  将文件以相反次序显示(默认依英文字母次序)
-t  根据最后的修改时间排序
-A  同 -a ,但不列出 “.” (当前目录) 及 “…” (父目录)
-S  根据文件大小排序
-R  递归列出所有子目录

3.2. 切换目录

    cd 目标文件夹

# 绝对路径切换
    cd 绝对路径
# 相对路径切换
    cd 相对路径
# 例子:切换到/etc/sysconfig/networks-scripts 目录下

3.3. 查看当前命令所在的目录

[root@centos7 network-scripts]# pwd
/etc/sysconfig/network-scripts
# 特殊目录符号
    ~ 当前用户的home目录
    . 当前目录
    .. 上一级目录

-L  显示逻辑路径

3.4. 新建文件夹及文件

# 在当前位置新建文件夹
    mkdir 文件夹名
# 在指定目录位置,创建文件夹,并创建父文件夹
    mkdir -p /a/b/文件夹名
# 在当前目录下新建文件
    touch 文件名

-p  递归创建多级目录
-m  建立目录的同时设置目录的权限
-z  设置安全上下文
-v  显示目录的创建过程
-R  强制创建目录

3.5. 删除文件及文件夹

# 删除文件
    rm 文件
# 删除文件夹
    rm -r 文件夹
# 强制删除不询问
    rm -rf 文件

    -f  忽略不存在的文件,不会出现警告信息
    -i  删除前会询问用户是否操作
    -r/R    递归删除
    -v  显示指令的详细执行过程

3.6. 拷贝文件及文件夹

# 拷贝文件
    cp 原文件  新文件
# 拷贝文件夹
    cp -r 源文件夹 新文件夹

-f  若目标文件已存在,则会直接覆盖原文件
-i  若目标文件已存在,则会询问是否覆盖
-p  保留源文件或目录的所有属性
-r  递归复制文件和目录
-d  当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-l  对源文件建立硬连接,而非复制文件
-s  对源文件建立符号连接,而非复制文件
-b  覆盖已存在的文件目标前将目标文件备份
-v  详细显示cp命令执行的操作过程
-a  等价于“dpr”选项

3.7. 移动文件或修改文件名

# 移动源文件到目标文件夹中
    mv 文件  文件夹
# 修改文件A的名字为文件B
    mv 文件A 文件B

    -i  若存在同名文件,则向用户询问是否覆盖
    -f  覆盖已有文件时,不进行任何提示
    -b  当文件存在时,覆盖前为其创建一个备份
    -u  当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

4. 文本内容查看命令

4.1 cat 命令

# 查看文件中的全部信息(适合查看小文档)

    cat 文件名

    -n  显示行数(空行也编号)
    -s  显示行数(多个空行算一个编号)
    -b  显示行数(空行不编号)
    -E  每行结束处显示$符号
    -T  将TAB字符显示为 ^I符号
    -v  使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
    -e  等价于”-vE”组合
    -t  等价于”-vT”组合
    -A  等价于 -vET组合
    –help   显示帮助信息
    –version    显示版本信息
cat 命令

4.2 less 命令

# 以分页的方式浏览文件信息(适合查看大文档),进入浏览模式

    less 文件名

# 浏览模式快捷键
    ↑ #上一行
    ↓ #下一行
    G #最后一页
    g #第一页
    空格 #下一页
    /关键词 #搜索关键词
# 退出浏览模式,回到Linux命令行模式
    q #退出

    -b  置缓冲区的大小
    -e  当文件显示结束后,自动离开
    -f  强迫打开特殊文件,例如外围设备代号、目录和二进制文件
    -g  只标志最后搜索的关键词
    -i  忽略搜索时的大小写
    -m  显示类似more命令的百分比
    -N  显示每行的行号
    -o  将less 输出的内容在指定文件中保存起来
    -Q  不使用警告音
    -s  显示连续空行为一行
    -S  在单行显示较长的内容,而不换行显示
    -x  将TAB字符显示为指定个数的空格字符

命令内部操作:

    b 向后翻一页
    d 向后翻半页
    h 显示帮助界面
    Q 退出less 命令
    u 向前滚动半页
    y 向前滚动一行
    空格键 滚动一页
    回车键 滚动一行
less 命令

4.3 tail 命令

# 实时滚动显示文件的最后10行信息(默认10行)

tail -f 文件名
# 显示文件的最后20行信息
tail -n 20 文件名
tail -n -20 文件名
# 显示文件信息从第20行至文件末尾
tail -n +20 文件名

    –retry  即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用
    -c或——bytes= 输出文件尾部的N(N为整数)个字节内容
    -f<name/descriptor> --follow:   显示文件最新追加的内容
    -F  与选项“-follow=name”和“–retry”连用时功能相同
    -n< N>或——line=< N>  输出文件的尾部N(N位数字)行内容
    –pid=<进程号>  与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令
    -f  循环读取
    -q  不显示文件名信息
    -v  显示文件名信息
    –help   显示指令的帮助信息
    –version    显示指令的版本信息
tail 命令

4.4 more 命令

# 分屏展示

more 文件名

    -num    指定每屏显示的行数
    -l  more在通常情况下把 ^L 当作特殊字符, 遇到这个字符就会暂停,-l选项可以阻止这种特性
    -f  计算实际的行数,而非自动换行的行数
    -p  先清除屏幕再显示文本文件的剩余内容
    -c  与-p相似,不滚屏,先显示内容再清除旧内容
    -s  多个空行压缩成一行显示
    -u  禁止下划线
    +/pattern   在每个文档显示前搜寻该字(pattern),然后从该字串之后开始显示
    +num    从第 num 行开始显示

命令内部操作:

    Space键:显示文本的下一屏内容
    Enter键:向下n行,需要定义,默认为1行
    斜线符\:接着输入一个模式,可以在文本中寻找下一个相匹配的模式
    H键:显示帮助屏
    B键:显示上一屏内容
    Q键:退出more命令
    Ctrl+F、空格键:向下滚动一屏
    Ctrl+B:返回上一屏
    =: 输出当前的行号
    :f:输出文件名和当前的行号
    V:调用vi编辑器
    !:调用Shell,并执行命令
more 命令

4.5 echo 命令

# 输出字符串或变量提取后的值

    -n  不输出结尾的换行符
    -e “\a” 发出警告音
    -e “\b” 删除前面的一个字符
    -e “\c” 结尾不加换行符
    -e “\f” 换行,光标扔停留在原来的坐标位置
    -e “\n” 换行,光标移至行首
    -e “\r” 光标移至行首,但不换行
    -E  禁止反斜杠转移,与-e参数功能相反
    —version    查看版本信息
    –help   查看帮助信息
echo 命令

5. 文件查找

5.1 文件名查找

# 语法
    find 搜索路径 -name "文件名关键词"
# 例子
    find / -name "passwd"
    find / -name "ifcfg-*"

5.2 文件内容查找

# 语法
    grep -参数 要查找的目录范围
    # 参数
    -n 显示查找结果所在行号
    -R 递归查找目录下的所有文件
# 例子
    grep aries /etc
    grep aries /etc/passwd

    -i  搜索时,忽略大小写
    -c  只输出匹配行的数量
    -l  只列出符合匹配的文件名,不列出具体的匹配行
    -n  列出所有的匹配行,显示行号
    -h  查询多文件时不显示文件名
    -s  不显示不存在、没有匹配文本的错误信息
    -v  显示不包含匹配文本的所有行
    -w  匹配整词
    -x  匹配整行
    -r  递归搜索
    -q  禁止输出任何结果,已退出状态表示搜索是否成功
    -b  打印匹配行距文件头部的偏移量,以字节为单位
    -o  与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位

5.3 vi 命令

5.3.1 vi在命令模式下的参数

  • i保存退出命令(末行模式用于保存内容、查找替换、设置行号等 功能性操作)
参数名 解释
:q :    退出
:wq 保存并退出
:w  保存编辑内容
:q! 强制退出
:wq!    强制保存并退出
:set number或:set nu 显示行号
:set nonumber或:set nonu 取消显示行号

5.3.2 复制粘贴 (命令模式下)

  • yy 复制一行
  • p 粘贴
  • [n] yy复制光标后n行
  • p 粘贴

5.3.3 剪切与删除(命令模式下)

  • dd 删除一行
  • [n] dd删除光标行的后n行
  • p 粘贴上面的内容

5.3.4 快捷操作(命令模式下)

  • u 撤销操作
  • 重复上次操作

5.3.5 搜索

  • 命令模式下,键入 / 后面按搜索的内容
    • 按 n 向后搜索
    • 按 N 向前搜索

5.3.6 替换

  • 末行模式下
    • :%s/源/目标替换/g %指代整个文件内容 g代表全局替換
    • :1,10s/源/目标替换/ 替换从第1行到10行中每行第一个目标内容
    • :1,5s/源/目标替换/g 替换从第1行到5行中所有的目标内容

5.3.7 撤销

- 命令模式下,u 撤销至上一步
- crtl + r 恢复至上一步撤销

6 系统管理

# 静态查看系统进程
    ps -aux

# 实时查看系统进程
    top
    # 快捷键
        ↑ 下翻
        ↓ 上翻
        q 退出

# 实时查看系统进程
    top
    # 快捷键
        ↑ 下翻
        ↓ 上翻
        q 退出

7 管道

# 管道

# 语法,将命令1的输出结果,作为命令2的输入
命令1 | 命令2

# 例子
查找aries用户:cat /etc/passwd | grep -n “baizhi”
查找aries组:cat /etc/group | grep -n “baizhi”
查找sshd进程:ps -aux | grep sshd
查询历史命令:history
查询历史命令关键字: history | grep start

8 权限

8.1 权限含义

权限字母 含义 对文件 代表命令 对文件夹 代表命令
查看文件内容和复制文件 more cat less cp head tail 查看文件夹下的文件 ls
W(w) 编辑文件 vi 在文件夹内创建和删除文件 rm touch
X(x) 执行 执行该文件(执行必须具备r权限) - 切换到文件夹 cd

8.2 权限访问控制列表(ACL access controll list)

权限访问控制列表

8.3 命令

# 查看权限

ls -la 文件
ll 文件

# 设置文件所有者

语法:chown [-R] user名:group名 文件名
参数:-R 如果是文件夹,需要使用这个参数,可以将文件夹及其内部所有文件的所有者和组全部修改
注意:命令权限需要root
## 修改文件所有者
    chown 用户名 文件名
## 修改文件所属组
    chown :组名 文件名
## 修改文件所有者和所属组
    chown 用户名:组名 文件名
## 修改文件夹的所有者和所属组
    chown [-R] 用户名:组名 文件夹

8.3.1 权限设置1

语法:chmod u±rwx,g±rwx,o±rwx 文件名
运算符:
    - 删除权限
    + 添加权限
    = 赋值权限
## 给文件的所有者添加执行权限
chmod u+x 文件名
## 给文件的其他人删除所有权限
chmod o-rwx 文件名
## 给文件的所属组设置读写权限
chmod g=wx 文件名

8.3.2 权限设置2

# 文件的每个归属方的权限的值使用rwx之和计算出来的。
# 语法
    chmod [-R] nnn 文件 -R 递归设置文件夹内所有文件 # 设置文件的权限为(所有者可读可写可执行,所属组可读可写,其他人可读) chmod 764 文件名
权限设置

9 系统软件管理

9.1 压缩解压缩

压缩语法:tar -zcvf 压缩后文件名 被压缩文件
解压缩语法 tar -zxvf 压缩文件名 -C 解压后文件所在目录

# 参数1:
-z  操作tar.gz文件需要使用
-x  解压缩
-c  压缩
-v  显示压缩或者解压缩的执行过程信息
-f  要处理的文件file,必须放在最后

# 参数2:
-C 指定解压后的文件存放的位置

9.2 rpm软件

# 简介:类似于windows中的.exe程序

1. 安装rpm软件
  语法:rpm -ivh xxx.rpm 2. 查看系统中是否已安装的过该rpm软件 语法:rpm -qa 软件名 3. 卸载rpm软件 语法:rpm -e 软件名 4. 例子:安装tree工具 作用:查看某个目录下的文件信息 # 以树状结构查看2层文件信息 tree -L 2 要查看的路径

9.3 yum

# - 简介:yum基于rpm实现的,提供了除了rpm的安装软件、卸载软件等功能以外还有,自动查找、下载软件并自动处理软件的彼此之间的依赖关系,下载并安装依赖包。

## 列出所有可以安装的软件包
    yum list
## 安装软件
    yum install -y 软件名
## 卸载软件
    yum remove 软件名
## 查找软件包
    yum search all 软件名

9.4 Linux服务

# 例如:sshd network firewalld 等

# 服务器管理命令
    systemctl status 服务名
# 启动服务
    systemctl start 服务名
# 重启服务
    systemctl restart 服务名
# 停止服务
    systemctl stop 服务名
# 禁止服务随linux启动。
    systemctl disable 服务名
# 设置服务随linux启动。
    systemctl enable 服务名

9.5 ip设置

服务名:network

[root@centos7 dirnew]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
----------------网卡对应的文件内容---------------------
    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="none"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="ens33"
    UUID="0bd5d8a5-fe1b-42de-82bd-bfa7d2984b95"
    DEVICE="ens33"
    ONBOOT="yes"
    IPADDR="192.168.199.8" # 修改这里的ip地址即可
    PREFIX="24"
    GATEWAY="192.168.199.2"
    DNS1="192.168.199.2"
    DNS2="8.8.8.8"
    IPV6_PRIVACY="no"
[root@centos7 dirnew]# systemctl restart network #重启网卡服务

9.6 防火墙

服务名:firewalld

# 开启防火墙
systemctl start 服务名
# 关闭防火墙(服务器重启后还会自动开启防火墙)
systemctl stop firewalld
# 禁止防火墙开机启动
systemctl disable firewalld

9.7 主机名

# 查看主机名
hostname
# 设置主机名
hostnamectl set-hostname 主机名

9.8 ip映射

- 域名解析
- 本地hosts编辑

[root@centos7 ~]# vim /etc/hosts
--------------下面是文件------------------
    192.168.199.8 centos7

9.9 SSH

# 远程登录linux
ssh 远程linux的ip或者映射域名

9.10 免密登录

# 简介
ssh登录远程linux,免去输入密码的麻烦

# 生成公钥和私钥
[root@centos7 ~]# ssh-keygen
------------执行结果-----------
    [root@centos7 ~]# tree .ssh
    .ssh
    ├── id_rsa # 私钥
    ├── id_rsa.pub # 公钥
    └── known_hosts
# 发送公钥
    保存公钥的文件为/root/.ssh/authorized_keys [root@centos7 .ssh]# cat id_rsa.pub > authorized_keys # 发送公钥 [root@centos7 .ssh]# ssh-copy-id 目标主机的ip

9.11 远程拷贝

scp 本地的文件 root@远程linuxip:/远程linux的文件路径
scp -r 本地的目录 root@远程linuxip:/远程linux的文件路径