linux之基本命令
菜单
curl-调用接口请求
- linux命令行调用接口请求:
curl -i "http://mip.m.womai.com/geo/getLocation?source=bT671wtasAulUXjlCbdjFv0FBjNsBloO&longitude=116.4022&latitude=39.97832" - curl -X GET http://localhost:8080/init
- 添加header:curl -H "Authorization:63027e8ee6cf4561a1737efa1d52bfc1" http://localhost:8080/categorys?sellerProp=C&businessType=INITIAL
chmod-修改用户对文件的权限
- 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/
- 从本地向远程机器上传文件
scp /home/ixdba/etc.tar.gz root@192.168.60.168:/tmp
列出系统上所有的磁盘
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 排除某字符串