linux之基本命令

菜单


curl-调用接口请求

chmod-修改用户对文件的权限

  1. chmod u+x star.txt:对star.txt的所有者添加执行权限

chown-修改文件所属用户及组

useradd-添加用户

useradd tomcat:增加tomcat用户

passwd-设置密码

passwd tomact:对tomcat用户添加密码

df-查看硬盘空间

df -lh:查看硬盘空间使用情况

du-查看文件及文件夹占用空间大小

  • du -h:以人类可读的方式显示
  • du -a:使用此选项时,显示目录和目录下子目录和文件占用磁盘空间的大小。
  • du -s:使用此选项时,du只显示目录所占用磁盘空间的大小,而不显示其下子目录和文件占用磁盘空间的信息。
  • du --apparent-size:显示文件或目录自身大小,而不是它们占用的磁盘空间大小。
  • du -c:使用此选项时,不仅显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和。
    du -:查看硬盘空间使用情况

cp-复制

cp -r test dir/:递归复制,复制文件夹时需要添加-r

rm-删除

rm -r dir/:递归删除,删除文件夹时需要添加-r

free-查看内存及交换分区使用情况

目前常用的Linux下查看内容的专用工具是free命令。
下面是对内存查看free命令输出内容的解释:
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。

tail-选择性查看文本

9 tail -n 1000 a.txt 查看 a.txt最新的1000条

gzip-解压

gzip -d application.2018-04-02.log.0.gz

远程机器间复制

  • 从远程机器上复制文件到本地桌面

    scp root@114.215.220.41:/tmp/kanche-bridge.jar ~/Desktop/

    通过密钥传输

    scp -i id_rsa_work root@114.215.220.41:/tmp/kanche-bridge.jar ~/Desktop/
  • liukaideMacBook-Pro-2:~ liukai$ scp qa-cs4:/tmp/service-detection.jar ~/Desktop/

列出系统上所有的磁盘

lsblk(list block devices)能列出系统上所有的磁盘 ``` lsblk [-dfimpt] [device] 选项与参数: -d :仅列出磁盘本身,并不会列出该磁盘的分区数据 -f :同时列出该磁盘内的文件系统名称 -i :使用 ASCII 的线段输出,不要使用复杂的编码 (再某些环境下很有用) -m :同时输出该设备在 /dev 下面的权限数据 (rwx 的数据) -p :列出该设备的完整文件名!而不是仅列出最后的名字而已。 -t :列出该磁盘设备的详细数据,包括磁盘伫列机制、预读写的数据量大小等 ```

列出设备的uuid

blkid能列出设备的uuid,当然lsblk -pf也能列出uuid。UUID是全域单一识别码 (universally unique identifier) ,Linux 会将系统内所有的设备都给予一个独一无二的识别 码, 这个识别码就可以拿来作为挂载或者是使用这个设备/文件系统之用

[root@192 ~]# blkid
/dev/sda1: UUID="c7c2cf29-2f94-4bb6-a334-7604c0c7c291" TYPE="xfs" 
/dev/sda2: UUID="2156bb3d-de11-4dd5-8599-70b16d3ef6b5" TYPE="swap" 
/dev/sda3: UUID="7470460a-47a7-41a8-a4f0-7bcdb39b3506" TYPE="xfs"

ssh-远程连接

  • 远程连接到114.215.220.41节点,之后输入密码

    ssh -p 22 root@114.215.220.41

  • 可配置config简化连接过程
    在用户目录下的.ssh文件夹中新建config文件,输入以下内容

Host dev4
    HostName 114.215.220.41
    #Port 22
    User root
    #IdentityFile ~/.ssh/kanche_rsa

然后通过ssh dev4连接服务器

注:IdentityFile配置的为git的账号,表示使用密钥连接服务器,用密钥的方式连接服务器是需要服务器上的 ssh 支持的,需要 ssh的配置文件(默认是在 etc/ssh/sshd_config)里的PubkeyAuthentication 设置成 yes。
在看车我用公司的邮箱使用ssh-keygen -C "邮箱名"命令生成公钥和密钥,并将公钥在服务器上配置,IdentityFile指定本地的私钥,不指定默认为id_rsa
git中创建私钥使用的同样是该命令,并不是git独有的创建公钥私钥的命令

sh与bash

linux系统中/bin目录下存在sh与bash文件,执行sh可进入shell命令行模式,执行bash可进入bash shell命令行模式,bash shell是对shell的扩展

在docker中可在docker容器外执行容器内部的bash文件,进入bash命令行操作,从而操作容器,如果在bash与sh间切换,每次exit退出的是一次切换,如,从外部通过bash连接进容器,然后切换sh,需要两次exit才能退回外部

env-查看所有的环境变量及赋值

env :打印出所有的系统环境变量及赋值
$name : 打印出名字为name的系统变量值

uname-查看系统信息

uname -a:查看系统信息

telnet-判断接口是否通

telnet www.liu-kevin.com 3306

sed-截取日志

  • sed -n '/2017-12-07 18/,/2017-12-07 19/p' application.2017-12-07.log >> tmp.1.log 截取某时间段的日志
  • sed -n '/2017-12-07 18:4/p' application.2017-12-07.log >> tmp.2.2.log 截取符合2017-12-07 18:4的日志

find命令

  • linux 查询包含某内容的文件
find . -name '*.java' -type f |xargs grep 'leader/edit'

grep命令

-A 展示之后的n行

-v 排除某字符串