美文网首页
Linux命令

Linux命令

作者: 风之老爸 | 来源:发表于2019-08-07 15:43 被阅读0次

基础命令

cat :查看文本文件内容

ls : 查看目录内容

pwd : 输出当前所在的位置

cd : 切换路径的操作

mkdir : 创建目录

touch : 创建文本文件

hostname :查看主机名

ifconfig :查看IP地址

Ctrl + c :结束正在运行的命令

sudo apt-get install openssh-server : 用于实现远程管理的软件

lscpu : 查看CPU信息

nameserver : DNS服务器地址

bc : 计算器

date : 显示日期和时间

date +%F : 显示年-月-日

date +%Y : 显示年

  • Linux命令行完整格式

    命令字 选项 参数

    • 命令字:指定操作
    • 选项:功能不同,决定执行后的结果不同
    • 参数:命令作用的对象

命令以及选项

ls

ls -l:以长格式显示,显示详细信息
ls -h:结合-l选项以长格式显示,显示易读的容量单位
ls -A:显示目录所有内容,包括隐藏数据
ls -a:小写的a会匹配出 . .. 在正则匹配中会出错
ls -d:显示目录本身的详细属性,结合-l选项

cp

cp 格式: cp   选项     源数据    目标路径
                            -r:递归,目录本身以及目录下所有
  • 两个参数以上,永远将最后一个参数作为目标,其余所有的参数均作为源
tarena@aid:/$ sudo cp -r /etc/shadow /etc/lsb-release /opt/
                                                 # 源                    源                               目标
  • . :代表当前路径 经常与cp连用,将数据复制到当前目录下
tarena@aid:/$ sudo cp /etc/passwd .
  • 复制时,可以重新命名目标路径下的名称
tarena@aid:/$ sudo cp /etc/lsb-release /opt/ubuntu
# 复制后文件重命名为ubuntu
tarena@aid:/$ sudo cp -r /boot/ /opt/abc
# 复制后目录重命名为abc
  • 面试题:两次复制的不同:
tarena@aid:/$ sudo cp -r /boot/ /test/abc
                     # 复制/boot目录到/test目录下重新命名为abc

tarena@aid:/$ sudo cp -r /boot/ /test/abc
                     # 复制/boot目录到/test/abc目录下

mv

mv 格式:                   mv   # 源数据   目标路径
tarena@aid:/$ sudo mv /opt/a.txt /opt/stu/
  • 重命名:路径不变的移动
tarena@aid:/$ sudo mv /opt/stu/ /opt/1903
# 将stu重命名为1903

grep

grep: 可以从文本文件内容中,过滤包含指定字符串的行
tarena@aid:/$ grep root /etc/passwd     # 包含root的行
tarena@aid:/$ grep ^root /etc/passwd    # 必须要以root开头
tarena@aid:/$ grep bash$ /etc/passwd    # 必须要以bash结尾

find

find: 在指定路径下查找符合条件的数据
             -name:按照名字去查找,支持通配符
             -type:按照类型去查找,d(目录) f(文本文件)
             -size:按照大小去查找
find格式: find    路径  条件

tarena@aid:/$ sudo find /etc/ -name "passwd"
tarena@aid:/$ sudo find /etc/ -name "*tab"

tarena@aid:/$ sudo find /root/ -type   f     #查找是文件
tarena@aid:/$ sudo find /boot/ -type   d     #查找是目录

tarena@aid:/$ sudo   find  /boot/   -size  +10M   #查找大于10M
tarena@aid:/$ sudo   find  /boot/   -size  -10M   #查找小于10M

cat

cat -n:显示行号

head tail

-x:x为数字,指行数
head -5:显示文本前5行
tail -5:显示文本后5行
tail -f:动态看后n行

rm

rm -r:递归,目录本身以及目录下所有
rm -f:强制删除

mkdir

mkdir -p:连同父目录一同创建

route

route -n:    # 查看网关地址 *mac用法不一样

wc

wc -l:      # 统计文本行数

du

du -sh:     # 统计目录总共的占用空间的大小

/proc : 不占用硬盘的空间,反应内存数据的目录

mount

挂载点(访问点):访问设备内容的入口,在Linux都为一个目录

挂载: mount   设备路径    挂载点目录
sudo  mount /dev/sda1 /mypart/

由挂载点(访问点)作为入口,进行访问设备内容

df

df -h:      # 显示所有正在挂载使用设备的使用情况

ping

ping -c2     # ping次数,2次
ping -i1     # ping间隔时间,1秒
ping -W1     # ping延时,1秒ping不通直接返回

usermod

usermod        # 用来修改用户帐号的各项设定
 -c<备注>      # 修改用户帐号的备注文字。
 -d<登入目录>   # 修改用户登入时的目录。
 -e<有效期限>  # 修改帐号的有效期限。
 -f<缓冲天数>  # 修改在密码过期后多少天即关闭该帐号。
 -g<群组>     # 修改用户所属的群组。
 -G<群组>     # 修改用户所属的附加群组。
 -l<帐号名称>  # 修改用户帐号名称。
 -L           # 锁定用户密码,使密码无效。
 -s<shell>    # 修改用户登入后所使用的shell。
 -u<uid>      # 修改用户ID。
 -U           # 解除密码锁定。linuxso.com linux安全网

命令别名

alias

tarena@aid:/$ alias hn='hostname'        # 定义别名
tarena@aid:/$ unalias hn                 # 删除别名
tarena@aid:/$ alias                      # 查看当前系统所有生效的别名

常见通配符使用

* ? [] {}

/etc/:大多数配置文件所在的目录

*****:任意多个字符
?:单个字符
[]:匹配连续范围,只匹配一位
{}:匹配多种不同的情况

tarena@aid:/$ ls   /etc/*tab
tarena@aid:/$ ls   /etc/*.conf
tarena@aid:/$ ls   /etc/r*.conf
tarena@aid:/$ ls   /dev/tty*

tarena@aid:/$ ls   /dev/tty?
tarena@aid:/$ ls   /dev/tty??
tarena@aid:/$ ls   /dev/tty???

tarena@aid:/$ ls    /dev/tty[0-9]    # 只个位
tarena@aid:/$ ls    /dev/tty1[0-9]   # 十位需要手动补全,然后匹配个位

tarena@aid:/$ ls   /dev/tty{1,3,5,7,9}
tarena@aid:/$ ls    /dev/tty{1[0-9],20} # 匹配10到20

命令行技巧

Tab

  • Tab补全:命令字 选项 路径

重定向命令的输出 > >>

  • 重定向命令的输出: 将前面命令的输出,写入到文本文件中
 >:覆盖重定向
            tarena@aid:/$ hostname > /home/tarena/ls.txt
>>:追加重定向
            tarena@aid:/$ hostname >> /home/tarena/ls.txt # 追加到文件末尾
            tarena@aid:/$ echo 123456 >> /home/tarena/ls.txt # 123456追加到文件末尾

管道操作

  • 管道操作 | : 将前面命令的输出,专递给后面命令,作为后面命令的参数
tarena@tedu:~$ head -12 /etc/passwd | tail -5 | cat -n
# 显示passwd文件的8-12行且显示行号(从1开始编号)
tarena@tedu:~$ cat -n /etc/passwd | head -12 | tail -5
# 显示passwd文件的8-12行且显示行号(从8开始编号)
tarena@tedu:~$ echo 3*8 | bc
# 非交互式计算

快捷键

  • Ctrl + l:清空整个屏幕
  • Ctrl + c:废弃当前编辑的命令行(结束正在运行的命令)
  • Esc + . 或 Alt + . :粘贴上一个命令的参数

VI&VIM

  • 命令模式
    • i 键:在当前位置插入(Esc键回到命令模式)
    • o键:新起一行插入(Esc键回到命令模式)
    • :键 ----》末行模式(Esc键回到命令模式)
    • 光标的跳转:
      行首:^或home
      行尾:$或end
      全文的首行:gg 或 1G
      全文的最后一行:G
      全文的12行:12G
    • 复制粘贴删除
      yy:复制光标所在的当前行 2yy复制两行内容
      p :粘贴
      dd:删除光标所在的当前行 3dd删除三行内容
      u :撤销
      /bin: 全文查找bin 按n向下跳转匹配 按N向上跳转匹配
  • 插入模式(输入模式)
  • 末行模式
    • :wq # 保存并退出
    • :w # 保存
    • :q! # 强制不保存退出
    • :set nu # 开启行号功能
    • :set ai # 开启自动缩进功能
sudo vim /home/tarena/haha.txt
# 没有文件会自动新建,目录必须有,不会新建

压缩包tar与zip

  • 压缩与归档

    归档:将众多的数据,归档整理成一个文件

    压缩:采用压缩算法,计算数据占用空间大小

  • Linux平台的压缩格式:

    gzip---->.gz
    bzip2---->.bz2
    xz----->.xz

  • 制作tar

    格式:tar  选项  /路径/压缩包的名字(多个路径)    被压缩的源数据(只有最后一个)
    -c:创建归档
    -x:释放归档
    -f:指定归档文件名称,必须在所有选项的最后
    -z、-j、-J:调用 .gz、.bz2、.xz格式的工具进行处理
    -t:显示归档中的文件清单
    -C:指定释放路径
    解包:
    格式:tar  选项   /路径/tar包的名字    -C   释放的位置
             tar  -xf   /opt/abc.tar.bz2    -C  /aid01
    
    e.g.
    tar     -zcf    /opt/aid.tar.gz     /boot/  /etc/lsb-release
    tar   -jcf  /opt/abc.tar.bz2  /boot/  /etc/lsb-release
    tar   -Jcf  /opt/file.tar.xz  /boot/  /etc/lsb-release
    tar   -tf   /opt/abc.tar.bz2        # 查看压缩包内容
    
  • zip跨平台的压缩格式(windows与Linux)

    格式:zip      -r      /路径/压缩包名字       被压缩的源数据
    sudo zip    -r    /opt/stu.zip       /boot/    /etc/lsb-release
    解压:
    unzip    被压缩的源数据     -d      /路径/解压文件名字
    unzip    /opt/stu.zip     -d      /aid03/
    

用户与组

  • 用户与组

    UID系统用户:1.登录操作系统 2.权限不同

    GID组:方便管理用户

    组分类:基本组 附加组

    一个用户必须至少属于 一个组

    创建用户时,系统自动创建同名组,将用户加入组

    e.g.
    useradd aid01
    创建同名组:  aid01组      将aid01用户加入到aid01组
    自行创建组:  财务组  销售组  帅哥组   美女组     将aid01用户加入
    
    总结:
    aid01用户一共属于5各组:aid01组  财务组  销售组  帅哥组   美女组
                                             aid01组为aid01用户的基本组
                                     财务组  销售组  帅哥组   美女组为aid01用户的 附加组
    
  • 创建用户:adduser useradd

    sudo adduser aid02         #交互式创建
    sudo useradd  -m  aid03    #非交互式创建
                                -m:创建用户的家目录
    id  aid02                        # 查询存在用户的信息
    

    用户家目录:存放用户个性化信息的目录

    管理员root的家目录:/root

    存放 所有普通用户的家目录:/home

    ~:表示家目录

    /etc/passwd:存放所有用户信息的配置文件

    tail -1 /etc/passwd
    aid04:x:1003:1003::/home/aid04:/bin/sh
    用户名:密码占位符:UID:基本组GID:用户描述:家目录:解释器程序
    

    /etc/shadow:存放密码信息的配置文件

    sudo grep   aid   /etc/shadow
    
  • 设置用户密码

    • 交互式设置密码:sudo passwd 用户名
    • 非交互式设置密码:echo 用户名:密码 | sudo chpasswd
  • 删除用户

    userdel
    -r:递归删除,删除用户的家目录以及用户的邮件文件
    
  • 组管理

    sudo  groupadd   tedu              #创建组账号
    
    组信息存放的配置文件:/etc/group
    tedu:x:1005:
    组名:密码占位符:GID:组的成员列表
    
    sudo   gpasswd   -a   tom      tedu    #添加组成员
                                                成员          组名
    sudo   gpasswd   -d   aid04    tedu   #删除组成员
    
    组的删除:groupdel  组名
    sudo   groupdel   tedu
    

权限和归属

以-开头为文本文件
以d开头为目录

  • 基本权限:

    r:读入权限

    w:写入权限

    x:执行权限

  • 文本文件:

    r:cat head tail

    w:vim > >>

    x:Shell脚本 Python脚本

  • 归属关系:

    所有者(属主):数据创建者

    所属组(属组):所有者的基本组

    其他人:除了所有者与所属组成员其余的用户

  • Linux判断用户具备的权限:

    1.判断用户对于该数据所处的身份 所有者>所属组>其他人 # 匹配即停止

    2.查看相应身份权限位置表示

  • 命令行临时切换用户身份: su - 用户

  • 增、减权限:

    chmod   o+w   /aid10/1.txt      # 为其他人加上w权限
    chmod   o-w   /aid10/1.txt      # 为其他人减去w权限
    
  • 目录权限管理:

    r:显示目录内容

    w:可以在此目录下新建 删除 复制 移动.... 子文件或子目录

    x:用户切换到该目录

  • 归属关系的修改:

    chown       所有者:所属组     参数  
    chown     harry:study    /aid11
    chown     root               /aid11     # 仅修改所有者
    chown     :tarena        /aid11     # 仅修改所属组
    

进程管理

程序:静态的代码 占用硬盘空间

进程:动态执行的代码 占用CPU 与 内存

  • 查看进程:

    systemd:所有进程父进程,上帝进程(mac没有这些命令)

    pstree :结构非常优秀

    -p:进程的PID

    ps aux :正在运行的所有进程详细信息

    top:动态的排名

    按P(大写)进行CPU排序

    按M(大写)进行内存排序

    mac:top

    先输入 o,然后输入 cpu 则按 cpu 使用量排序,输入 rsize 则按内存使用量排序。

  • 进程前后台调度:

    • 后台启动
    – 在命令行末尾添加“&”符号,不占用当前终端
    • Ctrl + z 组合键
    – 挂起当前进程(暂停并转入后台)
    • jobs 命令
    – 查看后台任务列表
    • fg 命令
    – 将后台任务恢复到前台运行
    • bg 命令
    – 激活后台被挂起的任务
    
  • 杀死进程:

    kill:结合PID进行杀死,     支持 -9选项  强制杀
    killall:结合进程名进行杀死, 支持 -9选项  强制杀
    pkill:模糊进行匹配进程名
    
    杀死一个用户开启的所有进程:有登录的状态变成未登录
    killall  -9  -u   用户名
    
  • 查看当前系统监听的端口:netstat -anptu

    -a:所有正在监听         
    -n:数字方式显示
    -p:显示协议信息          
    -t:tcp协议
    -u:udp协议
    

相关文章

网友评论

      本文标题:Linux命令

      本文链接:https://www.haomeiwen.com/subject/jyaodctx.html