Linux了解

常识

1.为什么要使用linux ?

...

2.如何连接到远程服务器?

1.远程连接工具:Xshell
2.远程登录条件:
对方机器:
ip :
查看机器网卡的ip
ifconfig
port :(一般22)
用户名
密码

3.linux概述?

1.操作系统
2.发明:
林纳斯 =》linux内核
=》git
3.版本:
乌班图、小红帽、centos、Debian、。。。
centos =》 win 专业版
4.其他操作系统?
1.win、linux、ios、and、mac、鸿蒙os
部署linux系统:
1.vm 安装
2.linux镜像【centos 7.x】
centos :
6.x
7.x
配置:
/boot ext4 : 1g
分配linux机器启动的时候 需要的空间
swap:
linux 内存 1g =》
把磁盘当做内存来使用 1g
/ : 完整的磁盘空间 ext4 =》 18g

相关命令

1.pwd 查看当前光标所在的目录

[root@gh10 ~]# pwd
/root

2.ls 显示文件夹或者文件

用法:ls [选项]... [文件]...
ls -l 显示文件夹或者文件详细信息
ls -l -a 显示文件夹或者文件详细信息+ 显示隐藏文件 【隐藏文件:.开头的文件】
ls -l => ll
ls -l -h 查看文件大小

[root@gh10 ~]# ls
    zuoshao

3.mkdir 创建文件夹

[root@gh10 ~]# mkdir zuoshao
//并级创建文件夹: 
[root@gh10 ~]# mkdir xuanxuan tiantain haoge
//串级创建文件夹:
[root@gh10 ~]# mkdir -p zuoshao/dir1/dir2/dir3

4.cd 切换目录

[root@gh10 ~]# cd zuoshao/

//目录【路径】:
//相对路径:从当前光标开始的路径
[root@gh10 ~]# cd haoge/
//绝对路径:从根目录开始的路径
[root@gh10 ~]# cd /root/haoge/

如何回到家目录:
1.cd /root
2.cd 回车
3.cd ~

./ => 当前路径
../ ==》 上一层级目录

cd - 回到上一次操作的目录

5.创建文件:(三种方式)

    1.touch xx.xx 
    2.vim/vi xx.xx 【编辑文件的命令】
        /*退出保存:
            shift+;=》 : + wq  回车*/
    3.echo "zuoshao zhen shuai" >> 3.log 

echo "zuoshao zhen shuai" => 控制台打印
// > 创建或者 覆盖一个文件
// >> 追加到文件

需求:
三种方式创建文件,名字 zuoshao1.txt zuoshao2.txt zuoshao3.txt

需求:
创建一个空文件?

        1.touch xx.xx
        2.vim/vi xx.xx 【不要用】
        3.cat /dev/null > done 【空文件】    

cat 查看文件所有内容
/dev/null 就是一个空文件

    4.echo "" > done1 【不能创建空文件】

6.vim 编辑文件+ 【文件里面添加内容】

vim 三种模式:
1.命令行模式
2.编辑模式
3.尾行模式
vim 2.log =》 命令行模式
i =>进入编辑模式【insert】
esc 退出保存: 编辑模式 -》 命令行模式
shift+;=》: 命令行模式 =》 尾行模式
尾行模式
w 保存
q 退出
! 强制

扩展
1.命令行模式:
1.移动光标:
行:
1.光标移动首行 gg **
2.光标移动尾行 G **
3.光标移动num行 num+G
行内移动:
1.移动行头 shift +^
2.移动行尾 shift+$
2.复制
1.复制光标当前行 yy+p **
2.复制光标当前行以下num行 y+num+y +p
3.删除
1.删除当前光标所在行 dd **
2.删除当前光标所在行以下num行 d+num+d
3.删除当前光标以下所有行 dG **
3.撤回 u

2.尾行模式: shift+; =>:
1.w 保存
2.q 退出
3.! 强制退出
4./查找的词 n 查找下一个 N 往上找
5.显示行号 set nu
6.关闭行号 set nonu
退出保存: 尾行模式: shift+; =>:
1.wq
2.wq!
3.x
4.快捷键 shift+zz

需求:
清空一个文件? 【里面没有内容】
1.echo "" > xx.log
2.cat /dev/null > xx.log
3.删除 +touch 【先不用】
人为编辑一个文件 该如何清空?
gg + dG ***

7.查看文件

  • cat 查看文件所用内容 打印到控制台 **【文件内容比较少】
    文件内容比较多 =》 vim

  • more 文件内容一页一页往下翻 按空格 往下翻 q退出 终止进程 ctrl+z ctrl +c

  • less 文件内容一页一页往下翻 按空格 往下翻 上下箭头 q退出 终止进程 ctrl+z ctrl +c

  • tail 实时查看文件内容: flume 采集日志【了解】
    -f -F的区别

-f 监听某个文件夹,当文件夹被删除后重新创建不会在监听它
-F => -f + retry 监听某个文件夹,当文件夹被删除后重新创建会继续监听它
日志数据:
java app =》 springboot =》 log 【log4j】
qingtian.log 100m
qingtian.log qingtian_1.log
qingtian.log
日志:
qingtian.log 【正在生成的日志】
qingtian_1.log 【写完】
qingtian_2.log
qingtian_3.log
qingtian_4.log
qingtian_5.log
flume :
tail -F qingtian.log

  • cat
    log => 监控app运行情况 =》
    error
    1.安装app
    tail -f log
    2.app 运行 报错

    思考:
    快速定位 error 的位置 【log 1g】

        cat anaconda.log | grep -A  10 error 后10行  after
        cat anaconda.log | grep -B  10 error 前10行
        cat anaconda.log | grep -C  10 error 前后各10行

| 管道符 上一个命令的结果作为下一个命令的输入
grep 过滤

cat anaconda.log | grep -C 10 error > error.log [error.log日志文件还是很大]

下载到本地

文件上传下载:
1.yum install -y lrzsz
rz上传
sz xxx 下载
2.远程连接工具:
上传 【直接拖】
下载 【】

linux里面安装软件: 【centos】
1.yum
2.rpm
3.tar

8.mv cp 移动 复制

//mv 移动: 操作的文件始终是 1份
//1.移动
[root@gh10 ~]# mv ./5.log ./zuoshao/
//2.改名字
mv 1.log 1_1.log

//cp 复制:操作的文件始终是 2份
//1.移动
[root@gh10 ~]# cp 4.log ./zuoshao/
//2.改名字
[root@gh10 ~]# cp 4.log 4_1.log

9.rm 删除文件或者文件夹【高危命令】

//1.文件
[root@gh10 ~]# rm 4_1.log
//rm:是否删除普通空文件 "4_1.log"?y

[root@gh10 ~]# rm -f 1_1.log

[root@gh10 ~]# rm -rf .zuoshao
//2.文件夹
[root@gh10 ~]# rm -r zuoshao/
//rm:是否进入目录"zuoshao/"? y
//rm:是否删除普通空文件 "zuoshao/4.log"?y
2.[root@gh10 ~]# rm -r -f haoge/

通用:
rm -rf xxx

rm -rf ./* * 表示所有
[root@gh10 ~]# rm -rf ./*
rm -rf / [千万别写]
rm -rf /xxx[也不要写] xxx可能是一个空的 /xxx => /

10.别名 alias

ls -l => ll

[root@gh10 ~]# alias aa="cd /tmp"//等号2边不能有空格
//注意:在当前会话生效 ,在其他会话不生效
[root@gh10 anaconda]# aa
bash: aa: 未找到命令...

aa命令 在任何位置都能用?

环境变量:好处=》在任何位置都能用
环境变量:
环境变量文件:
1.全局环境变量 【所有用户都可以使用】
/etc/profile
2.个人环境变量 【个人用户可以使用】
~/.bash_rc
~/.bash_profile

//1.配置环境变量: 
    [root@gh10 ~]# vim /etc/profile
    alias aa="cd /tmp"
//2.生效环境变量:
    [root@gh10 ~]# source /etc/profile
//切换用户: 
    su - xxx 

zuoshao 用户
alias cc="cd /tmp"
配置在个人环境变量:
~/.bash_rc

11.history

[root@hxh ~]# history
 97  cd /etc
 98  cd etc/sysconfig/network-scripts/
 99  cd ./sysconfig
 100  cd ./network-scripts/
 101  vi ifcfg-ens33 
 102  su ameng
 103  cd ~
 104  cd etc/
 105  mkdir aa
 106  cd aa/

注意:
如果你干坏事 history会记录
1.!执行历史操作
[root@gh10 ~]# !176
2.如果你干坏事 history -c 【如果有堡垒机还是会被逮到】

12.用户相关命令

    //用户
    [root@gh10 ~]# ll /usr/sbin/user*
        -rwxr-x---. 1 root root 118192 11月  6 2016 /usr/sbin/useradd 
        -rwxr-x---. 1 root root  80360 11月  6 2016 /usr/sbin/userdel 
        -rwxr-x---. 1 root root 113840 11月  6 2016 /usr/sbin/usermod 
    //用户组
    [root@gh10 ~]# ll /usr/sbin/group*
        -rwxr-x---. 1 root root 65480 11月  6 2016 /usr/sbin/groupadd
        -rwxr-x---. 1 root root 57016 11月  6 2016 /usr/sbin/groupdel
        -rwxr-x---. 1 root root 57064 11月  6 2016 /usr/sbin/groupmems
        -rwxr-x---. 1 root root 76424 11月  6 2016 /usr/sbin/groupmod
//1.用户
    //1.创建用户
     //useradd: 
    [root@gh10 ~]# useradd qs
    [root@gh10 ~]# id qs //查询用户
    uid=1002(qs) gid=1002(qs) 组=1002(qs)

    /*useradd qs: 命令干的事
        1.创建了一个用户 qs
        2.创建了一个用户组 qs 
        3.生成了家目录:/home/qs */
    
    /*2.切换用户 
    su - xx 
    su xx 
    注意: 
        root =》 xx  不需要密码
        xxx =》xxxx   都需要密码*/


    //3.存储用户信息的文件 /etc/passwd
    //2.组 
        //1.添加一个组   
            [root@gh10 ~]# groupadd jjm
        //2.存储用户组信息的文件 /etc/groups

    //修改qs用户组?
        //组:
            //主组 附属组
        //usermod -a -G jjm qs

        //需求: 
            //qs 主组 jjm 附属组 qs jjm 

            [root@gh10 ~]# usermod -g jjm qs
            [root@gh10 ~]# id qs
            uid=1002(qs) gid=1004(jjm) 组=1004(jjm)
            [root@gh10 ~]# usermod -a -G qs qs
            [root@gh10 ~]# id qs
            uid=1002(qs) gid=1004(jjm) 组=1004(jjm),1002(qs)
//3.设置用户密码
    passwd xxx [root]
    //4.普通用户临时具有root用户的权限
    //sudo ls 
        //前提: 配置一个普通用户临时具有root用户的权限 文件
            /etc/sudoers
            [root@gh10 ~]# vim /etc/sudoers
            zuoshao ALL=(ALL)      NOPASSWD: ALL
            [zuoshao@gh10 root]$ sudo ls
            2.log

13.文件权限相关命令

    //1.权限
    drwxr-xr-x. 2 root root     4096    3月  18 15:48 app
    权限          用户 用户组  大小  时间      文件 文件夹的名字

drwxr-xr-x:10个字母

  • 1.第一个字母:
    d 文件夹
    - 文件
    l 软连接【快捷方式】

  • 2.权限rwxr-xr-x 755
    权限:
    r 读权限 4
    w 写权限 2
    x 执行权限 1
    - 没权限 0
    第一组:rwx 4+2+1=7 代表文件的所属用户的权限
    第二组:r-x 4+0+1=5 代表文件的所属用户组的权限 jjm
    第三组:r-x 5 代表文件的其他用户组的权限
    drwxr-xr-x. 2 root root 4096 3月 18 15:48 app
    755
    -rw-r--r--. 1 root root 10 3月 18 14:50 2.log
    644

  • 3.修改文件权限
    文件:
    chmod 646 2.log
    文件夹:
    chmod -R 646 xx
    drwxr-xr-x 755
    chmod -R 750 data

  • 4.修改文件的所属者
    chown

//文件: 
[root@gh10 tmp]# chown zuoshao:zuoshao 1.log
//文件夹:
[root@gh10 tmp]# chown -R zuoshao:zuoshao xx

14.其他

//1.查找文件:
find / -name "*zuoshao*"
locate xxx [选择性使用]

2.查看文件大小
ll -h =>只能查看文件大小
du -sh xx => 既可以查看文件夹 也可以查看文件

3.相关的命令

//查看机器内存:free
[zuoshao@gh10 ~]$ free -h
//磁盘:df
[zuoshao@gh10 ~]$ df -h
//top:查看进程 实时进程 top
//load average: 0.00, 0.04, 0.05 负载  =》 10 
//每个进程的 cpu mem

网络:
linux 192.168.10.133
win
1.ping

2.查看某个进程的pid
ps -ef | grep
java app =》 jps =》pid
启动

[zuoshao@gh10 ~]\$ service httpd start

httpd =》 有哪些进程
1.查看进程的pid
ps -ef | grep httpd
2.杀死 进程
service httpd stop 【优雅】
kill -9 pid
3.按照app名字进行杀进程
kill -9 $(pgrep -f http)

netstat =>pid =>port

你可能感兴趣的:(Linux了解)