Linux命令大全(二)

  1. history 查看历史命令
    !166 执行第166行命令
    echo “” > ~/.bash_history 清空历史命令
  2. 用户、用户组的常用命令
    [root@hadoop001 ~]# ll /usr/sbin/user*
    [root@hadoop001 ~]# ll /usr/sbin/group*
    *模糊匹配
    (1)一个用户可以属于多个用户组,但是必须有一个主组
    [root@hadoop001 ~]# useradd ruoze 自动创建一个用户组
    [root@hadoop001 ~]# id ruoze
    uid=501(ruoze) gid=501(ruoze) groups=501(ruoze)
    gid 主组
    groups 所有组
    (2)重新创建
    重新创建用户:
    [root@hadoop001 home]# useradd ruoze
    useradd: warning: the home directory already exists.
    Not copying any file from skel directory into it.
    Creating mailbox file: File exists
    [root@hadoop001 home]# id ruoze
    uid=501(ruoze) gid=501(ruoze) groups=501(ruoze)
    重新创建组:
    [root@hadoop001 home]# groupadd bigdata
    [root@hadoop001 home]# id ruoze
    uid=501(ruoze) gid=501(ruoze) groups=501(ruoze)
    [root@hadoop001 home]# usermod -a -G bigdata ruoze
    [root@hadoop001 home]# id ruoze
    uid=501(ruoze) gid=501(ruoze) groups=501(ruoze),502(bigdata)
    改变主组:
    [root@hadoop001 home]# usermod -g bigdata ruoze
    [root@hadoop001 home]# id ruoze
    uid=501(ruoze) gid=502(bigdata) groups=502(bigdata)
    [root@hadoop001 home]# usermod -a -G ruoze ruoze
    [root@hadoop001 home]# id ruoze
    uid=501(ruoze) gid=502(bigdata) groups=502(bigdata),501(ruoze)
  3. 设置密码
    passwd 用户名称
  4. 切用户
    [root@hadoop001 ~]# su - ruoze
    [ruoze@hadoop001 ~]$ pwd
    /home/ruoze
    [root@hadoop001 ~]# su ruoze
    [ruoze@hadoop001 root]$
    -代表切用户后,进到该用户的家目录且执行当前用户的环境变量文件
  5. 普通用户临时获取root最大权限(生产上不可能给你root)
[root@hadoop001 ~]# vi /etc/sudoers
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
jepson  ALL=(root)      NOPASSWD:ALL
[root@hadoop001 ~]# su - jepson
[jepson@hadoop001 ~]$ 
[jepson@hadoop001 ~]$ 
[jepson@hadoop001 ~]$ ll /root
ls: cannot open directory /root: Permission denied
[jepson@hadoop001 ~]$ sudo ll /root
sudo: ll: command not found
[jepson@hadoop001 ~]$ sudo ls -l /root
total 56
-rw-------. 1 root root  1383 Jan 17 06:58 anaconda-ks.cfg
drwxr-xr-x. 2 root root  4096 Jan 19 20:52 d66
drwxr-xr-x. 2 root root  4096 Jan 16 23:05 Desktop
drwxr-xr-x. 2 root root  4096 Jan 16 23:05 Documents
drwxr-xr-x. 2 root root  4096 Jan 16 23:05 Downloads
-rw-r--r--. 1 root root 10033 Jan 17 06:54 install.log.syslog
drwxr-xr-x. 2 root root  4096 Jan 16 23:05 Music
drwxr-xr-x. 2 root root  4096 Jan 16 23:05 Pictures
drwxr-xr-x. 2 root root  4096 Jan 16 23:05 Public
drwxr-xr-x. 6 root root  4096 Jan 19 21:51 ruozedata
drwxr-xr-x. 2 root root  4096 Jan 16 23:05 Templates
drwxr-xr-x. 2 root root  4096 Jan 16 23:05 Videos
  1. 管道符 过滤
    [root@hadoop001 ~]# cat /etc/passwd | grep ruoze
    管道符:将上一个命令的结果作为下一个命令的输入端;grep表示过滤
  2. exit 退出
  3. 进程 + 端口号
    (1)ps -ef | grep xxx 查看进程
    [root@hadoop001 ~]# ps -ef | grep tail
    root 2425 1779 0 20:39 pts/0 00:00:00 tail -f install.log.syslog
    root 2433 2267 0 20:40 pts/1 00:00:00 grep tail 当命令执行时,它自己本身也会作为被搜索的结果
    [root@hadoop001 ~]# ps -ef | grep tail |grep -v grep 将当前自身的过滤掉 加-v
    root 2425 1779 0 20:39 pts/0 00:00:00 tail -f install.log.syslog
    第一列root:用户;第二列数字:pid;第三列数字:ppid
    (2)netstat -nlp|grep pid 找端口号
    ps:不是所有的进程都有端口号
    正常流程:pid–>port 通过pid找端口号
[root@hadoop001 ~]# ps -ef | grep ssh
root      1434     1  0 19:49 ?        00:00:00 /usr/sbin/sshd
root      1775  1434  0 19:52 ?        00:00:00 sshd: root@pts/0,pts/1
root      2477  2267  0 20:51 pts/1    00:00:00 grep ssh
[root@hadoop001 ~]# netstat -nlp|grep  1434 
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1434/sshd           
tcp        0      0 :::22                       :::*                        LISTEN      1434/sshd      

非正常流程:netstat -nlp|grep ssh 直接通过grep过滤它的名字查找端口号

[root@hadoop001 ~]# netstat -nlp|grep  ssh
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1434/sshd           
tcp        0      0 :::22                       :::*                        LISTEN      1434/sshd           
  1. 当出现链接拒绝错误 Connection refused:
    window : 控制面板-程序和功能-启用或关闭windows功能-选中Telnet客户端-安装部署
    cmd
    ping ip
    telnet ip port
    linux : 先搜索,看存不存在: which telnet
    没有再安装:yum install telnet.x86_64

  2. 面试题: 老板说去A服务器 login,打开xxx软件的web界面,该怎么做?ip:port
    能够登陆A服务器,即表明ip已知
    (1)通过ps找到xxx软件的pid:ps -ef|grep xxx
    (2)通过pid找到端口号:netstat -nlp|grep pid
    (3)看端口号对外可访问的地址是什么,是否能够对外进行访问
    0.0.0.0:22
    :::22
    ——代表当前ip能够对外访问 192.168.137.130
    127.0.0.1:80
    localhost:80
    ——代表当前本机ip,内部的,只针对内部当前机器访问

  3. 杀进程
    kill -9 pid
    kill -9 2470 2661 并行杀
    只想杀死包含log字符的所有进程
    kill -9 $(pgrep -f log)==kill -9 1187 1307 1758 2470
    linux操作: 遇到rm和kill高危命令,需确认再确认

  4. 搜索
    find / -name ‘log’ 全局搜索,从根目录开始,耗时
    find ./ -name 当前目录开始。大多数情况下,知道文件或文件夹在某个目录下面,但具体是哪个目录不清楚
    (1)知道某个文件的名称是什么
    eg:[root@hadoop001 home]# find / -name ‘ruozedata’
    /root/ruozedata
    (2)不知道文件具体名称时,用模糊匹配
    [root@hadoop001 ~]# find ./ -name ‘data
    ./.pulse/7f2fb444cfc3cce107dc80c700000018-card-database.tdb
    ./ruozedata
    ./.gconf/apps/nautilus/desktop-metadata

  5. linux 安装软件,一般通过yum安装rpm包
    yum search http
    yum install -y httpd
    yum remove httpd-tools-2.2.15-69.el6.centos.x86_64

  6. which
    命令都是从环境变量$PATH找
    [root@hadoop001 ~]# echo $PATH
    /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    [root@hadoop001 ~]# which ls
    alias ls=‘ls --color=auto’
    /bin/ls
    [root@hadoop001 ~]# ls
    anaconda-ks.cfg Desktop Downloads Music Public Templates
    d66 Documents install.log.syslog Pictures ruozedata Videos
    [root@hadoop001 ~]# ll /usr/lib64/qt-3.3/bin/
    total 0
    [root@hadoop001 ~]# ll /usr/local/sbin/
    total 0
    [root@hadoop001 ~]# ll /bin/ls
    -rwxr-xr-x. 1 root root 117024 Nov 22 2013 /bin/ls
    [root@hadoop001 ~]# PATH=""
    [root@hadoop001 ~]# echo $PATH
    whereis ls 更全面,一般不用

  7. man 命令帮助,更详细
    yum --help / man yum

  8. 文件夹操作 mkdir rm mv cp cd
    文件操作 touch rm mv cp

  9. vi 文本编辑
    在这里插入图片描述
    养成先备份,再vi的习惯
    cp xxx.conf xxx.conf2019
    vi xxx.conf
    如果遇到问题,可直接将备份文件覆盖回来
    cp 1.conf 1.conf.2019
    cp 1.conf.2019 1.conf
    (1)命令行模式常用快捷键:
    dd 删除当前行
    dG 删除光标以下的所有行(包含光标行)
    ndd 删除光标以下的n行(从光标所在的行开始)
    gg 跳转到第一行的第一个字母
    G 跳转到最后一行的第一个字母
    shift+$ 行尾
    (2)生产场景
    2.1 文件内容很多,想要清空,重新开始编辑
    操作:先跳到第一行第一个字母:gg;然后删除光标以下的所有行:dG
    情况还有两种方式:
    2.1.1 echo “” > ruoze.log.1 伪清空,还有1个字节
    echo ‘’ > ruoze.log.1 伪清空,还有1个字节。shell判断文件是否清空,一般是根据字节大小来判断,这时字节大小不为0,这种方式错了
    2.1.2 cat /dev/null > ruoze.log.2 真正清空
    2.2 文件内容很多,想要追加写文件
    G shift+$ i 朝右箭头按一次 回车 到新的一行
    2.3 当一个文本内容非常多,比如系统的log日志,想要快速定位
    2.3.1 想要快速定位到error关键词
    搜索: 尾行模式输入/error
    行号: 尾行模式输入
    set nu
    set nonu 取消
    2.3.2 想要快速定位某个文件
    cat jepson.log |grep filesystem
    grep filesystem jepson.log
    2.3.3 将日志内容上传到window/mac
    EditPlus编辑器查看

  10. 权限
    Permission denied 没有权限

[root@hadoop001 ruozedata]# ll
total 96
drwxr-xr-x. 3 root root  4096 Jan 19 20:42 1
drwxr-xr-x. 2 root root  4096 Jan 19 20:44 4
drwxr-xr-x. 2 root root  4096 Jan 19 20:44 5
drwxr-xr-x. 2 root root  4096 Jan 19 20:44 6
-rw-r--r--. 1 root root 10033 Jan 19 20:57 install.log.syslog
-rw-r--r--. 1 root root 10033 Jan 19 20:57 install.log.syslog20190119
-rw-r--r--. 1 root root 49566 Jan 23 21:37 jepson.log
-rw-r--r--. 1 root root     1 Jan 23 21:30 ruoze.log.1
-rw-r--r--. 1 root root     0 Jan 23 21:30 ruoze.log.2

(1)d rwxr-xr-x
第一列第一个字母: d文件夹 -文件 l连接
r: 读 4
w: 写 2
x: 执行 shell脚本 1
-: 0
rwxr-xr-x 755
rwxr–r-- 744
766 rwxrw-rw-
rwxr-xr-x :三组
第一组: rwx 7 代表文件夹或文件所属的用户的权限: 读写执行
第二组: r-x 5 代表文件夹或文件所属的用户组的权限: 读执行
第三组: r-x 5 代表其他组的所有用户对这个文件或文件夹的权限: 读执行
(2)第三列:所属的用户
(3)第四列: 所属的用户组
(4)第五列: 字节(一般是文件)
ll -h 只能查看文件大小
du -sh 6 文件夹大小
du -sh install.log.syslog 文件大小
(5)去权限:
chmod 444 ruoze.log.1 只读文件
sudoers
只读权限也去除:
chmod 044 ruoze.log.1 用户组可读,可以编辑
chmod 004 ruoze.log.1 用户组可读,可以编辑
(6)生产:
一般软件安装mysql数据库,都有自己的所属用户 mysqladmin,用户组 mysqladmin
切换 su - mysqladmin : 当前用户有权限创建、读、写、执行
Linux用户 jepson : 只有读权限
当用户、用户组改为jepson
chown -R jepson:jepson 目录
chmod -R 755 目录
chown jepson:jepson 目录/文件
chmod 755 目录/文件
整套Linux学习过程 ,-R参数的命令只需记住这两个,其他都是小r
(7)赋予一个x权限
./xxx.sh 执行 #!/bin/bash
sh xxx.sh 执行

  1. 软连接: 快捷键 删除目标路径,原始路径不删除
    ln -s 原始路径 目标路径
    /xxx/1
    /xxx/1.log
    1
    1.log
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值