Linux02-常用命令

Linux02-常用命令

1.Linux常用命令-磁盘管理

  1. df,查看文件系统整体的使用情况。
  2. df -h,-h,显示容易阅读的磁盘大小。
  3. du,查看目录占用磁盘的容量。
  4. du -sha /*,查看/目录下每个目录占用的磁盘容量。-s,只显示一个,使用这个参数不会显示子目录;-a,显示所有目录,包含隐藏的。
  5. du -sh ./*,查看当前目录中每个文件夹或者文件的大小,只查看一级。
  6. df -h ./*,查看当前目录中每个文件夹或者文件在挂在盘的大小。

2.Linux常用命令-目录挂在

  1. mount /dev/text /mnt/text,将外部设备text挂在到/mnt/text,挂在之后就可以使用了。
  2. umount -f /mnt/text,卸载设备。

3.Linux常用命令-进程管理

  1. ps -aux,显示所有进程的详细信息,包含进程使用的内存CPU。

    1. -a,显示当前终端正在执行的进程。
    2. -u,显示进程的详细信息,包含进程的User、CPU和内存使用率、开始时间、执行进程的目录。
    3. -x,显示后台进程运行的参数。
    4. -aux输出参数说明。
    VSZ,占用的虚拟内存大小。
    RSS,占用的物理内存大小。
    TTY,终端名称,缩写。
    STAT,运行的状态。-S,休眠;-R,正在运行;-D,短期等待;-Z,僵死进程;-N,比普通进程的优先级更低。
    START,开始时间。
    TIME,使用CPU的总时间。
    COMMAND,执行的命令
    
  2. ps -ef,显示所有进程。

    1. -e,显示所有进程。
    2. -f,会显示进程的UID和PPID(父id),进程id是PID。
  3. pstree,查看进程树。如果没有找到pstree命令,yum install psmisc安装。

  4. pstree -pu,-p,查看PID;-u,查看UID。

  5. free -h,查看内存使用情况,-h可读。

  6. top,查看进程占用内存、CPU的情况,q退出。

  7. jps。查看java进程信息,需要一些配置。

  8. 杀死进程。

    1. kill 1111,通过进程号,杀死1111进程。
    2. kill -9 1111,强制杀死1111进程。
    3. killall 进程名,通过进程名杀死进程。

4.Linux常用命令-端口查看

  1. netstat -ap|grep 22,。-a,显示所有连接的端口;-p,显示 PID和进程名。
  2. netstat -lnpt,查看正在监听的端口。
  3. netstat -ano | findstr "8080",Windows上查看8080端口是否被占用。返回结果为空,表示8080端口没有被占用。

5.Linux配置网络

  1. yum install net-tools,安装网络相关的工具。
  2. cd /etc/sysconfig/network-scripts。
  3. vim ifcfg-ens33。
ONBOOT=yes
  1. service network restart,重启网络服务。之后虚拟机就可以访问网络了。

6.Linux常用命令-重定向和追加

  1. echo "1" > k.txt,重定向,会覆盖原来的内容。
  2. echo "1" >> k.txt,将1追加到k.txt中。追加,不会覆盖原来的内容。

7.Linux常用命令-history

  1. history,显示所有的历史指令。
  2. history 10,显示最近的10条指令。显示的命令都有一个编号,可以通过!编号来执行该命令。
[root@localhost network-scripts]# history 10
  308  cd ../
  309  ls
  310  cd sysconfig/
  1. !10,执行历史编号为10的命令。

8.Linux常用命令-时间管理

  1. date,查看当前时间。
  2. date +%Y_%m_%d_%H:%M:%S,查看当前时间,并以指定的格式输出当前时间。
  3. date -s "2020-12-12 12:20:12",设置当前时间为2020-12-12 12:20:12。
  4. cal,查看当月的日历。
  5. cal 2021,查看2021年的日历。
  6. ntpdate cn.pool.ntp.org,时间校准。需要安装,yum install npt。

9.Linux常用命令-文件名查找

  1. find / -name '*.sh',在根目录下寻找以.sh结尾的文件。
  2. find / -size +20M,查找大于20M的文件。
  3. find /tmp -user root,查找属于root用户的文件。

10.Linux常用命令-文件内容查找

  1. grep -rni 'h' /,在/根目录下查找文件中包含h的文件。-r,递归子目录;-n,显示行号;-i,不区分大小写。
  2. cat g01.sh | grep -n 'h',制定文件中查找包含h的行。

11.Linux常用命令-解压和压缩

  1. tar -zxvf filename.tar,解压。
  2. tar -czvf filename.tar 1.txt 2.txt,压缩,将1.txt和2.txt压缩为filename.tar。

12.Linux常用命令-任务调度

  1. crontab -e,编辑任务调度;crontab -r,删除当前用户所有的定时任务;crontab -l,显示当前用户的所有定时任务。
  2. 执行crontab -e后,在插入*/1 * * * * ls -l / >> /tmp/crontab.txt,每隔一分钟,将ls -l /的结果追加到/tmp/crontab.txt文件中。
  3. 执行crontab -e后,在插入*/1 * * * * /tmp/crontext.sh,每隔一分钟,执行一次crontext.sh脚本。
  4. cron表达式的解释。
    1. */1 * * * *,一共5位,每个位置分别表示分钟、小时、天、月、星期几。
    2. */1 * * * *,每隔一分钟。/(斜线),表示间隔。
    3. 1,2 * * * *,每小时的1和2分钟时执行。,(逗号),特定时间执行。
    4. 0 10-12 * * *,每天的10点到12点执行,即10点整、11点整和12点整执行。-(短杠),一个时间到另一个时间。
  5. 修改定时任务。直接通过crontab -e修改。

13.Linux常用命令-free、top

  1. free -h, 查看内存使用情况,-h可读。
  2. top,查看进程占用内存、CPU的情况。输入top命令后,在输入:p按照CPU排序;:m按照内存排序;:n按照PID排序。

14.Linux常用命令-systemctl

  1. systemctl命令兼容了service,并将unit存放在/usr/lib/systemd/system,unit主要分为四类:
    1. .mount,定义挂载点。
    2. .service,定义一个服务。
    3. .target,定义基础组件,供.service调用。
    4. .wants,定义要执行文件的集合。
  2. systemctl命令的格式。systemctl [command] [unit]。commond有七种:start、stop、status、enable(开启启动)、disable(关闭开机启动)、restart(相当于先执行start,在执行stop)、reload(不关闭unit,重新载入配置文件,让配置生效)。
  3. systemctl list-units,查看已经启动的unit。
  4. systemctl list-unit-files,查看系统安装的unit。
  5. systemctl list-unit-files --type=service,查看系统安装的服务。
  6. systemctl --failed,查看启动失败的unit。
  7. systemctl get-default,获取当前的target。
  8. systemctl isolate multi-user.target和sudo systemctl poweroff切换操作模式。
    1. sudo systemctl poweroff,系统关机。
    2. sudo systemctl reboot,重新开机。
    3. sudo systemctl suspend,进入暂停模式。
    4. sudo systemctl hibernate,进入休眠模式。
    5. sudo systemctl rescue, 强制进入救援模式。
    6. sudo systemctl emergency,强制进入紧急救援模式。

15.Linux常用命令-firewalld

  1. systemctl status firewalld,查看防火墙的状态。
  2. systemctl start firewalld,开启防火墙。
  3. firewall-cmd --query-port=80/tcp,查看80的端口是否开启,返回no、yes。
  4. firewall-cmd --add-port=80/tcp --permanent,开启80端口。--permanent,永久开放;tcp,协议。
  5. firewall-cmd --add-port=80/tcp,临时开放。
  6. firewall-cmd --reload,开放端口后需要重新加载,方可生效。
  7. firewall-cmd --permanent --remove-port=80/tcp,永久移除80端口。
  8. firewall-cmd --zone=public --list-ports,查看对外部已经开放的端口。
  9. chkconfig --list,查看每个服务的运行级别。

15.telnet

  1. telnet 192.168.253.128 23,Windows上查看linux23端口是否开启。
  2. 需要在Windows中开启telnet Client。开启方式控制面板,启动或关闭Windows功能,Telnet客户端打钩,然后确定。

16.Linux常用命令-rpm

  1. RPM全称,RedHat Package Manager。
  2. rpm -qa| grep xxx,全称软件是否安装。
  3. rpm -qf /etc/passwd,查询文件属于哪个软件包。
  4. rpm -ql setup-2.8.71-11.el7.noarch,查询软件包安装的位置。
  5. rpm -e --nodeps foo,强制卸载。
  6. rpm -ivh foo,软件安装。

17.Linux常用命令-yum

  1. yum是一个shell前端软件包管理,基rpm管理,能够从指定的服务器自动下载rpm包并且安装。
  2. yum list | grep vim,查询服务器是否有需要安装的软件。
  3. yum install vim,从服务器上安装vim。

18.Linux常用命令-其他命令

  1. cut
cut -s -d ":" -f 1-2 /etc/passwd # 对/etc/passwd每一行数据通过:进行切割。
# -s,不显示没有切割符:的列。
# -d 指定切割符 :
# -f 显示的列 1-2列

cut -s -d ":" -f 1,2,6 /etc/passwd # 显示1,2,6列的数据

cut -sd ":" -f 1,3,5 --output-delimiter="|"  p # 显示1,3,5列的数据,并将切割符 变为 "|"
  1. wc,Word Count。
wc p # 查看文件p的信息 
# 21  30 905 p,一共21行,30个单词,905字节。
wc -l p # 查看文件p的行数
wc -w p # 查看文件的单词数
  1. awk,强大的文本分析工具。
awk -F ":" '{print $1}' p
# -F 对文件p每行内容使用 : 切割。
# '{print $1}',输出第一列的数据,'{print $1}' 必须使用 '',不能使用""。

# 切割后使用 == 拼接
cat /etc/passwd | awk -F ":" '{print $1"=="$2}'

# 输出指定的开始文字和指定的结束文字。
cat /etc/passwd | awk -F ":" 'BEGIN {print "name,x"} {print $1"=="$2} END {print "end,k"}'

# 搜索带有 root 关键字的行
cat /etc/passwd | awk '/root/'

# 正则表达式搜索,以root开头的行。
awk '/^root/' /etc/passwd

# 搜索以root开头,并输出分割后第一列的内容。
awk -F : '/^root/{print $1}' /etc/passwd

# awk中内置变量
ARGC               命令行参数个数
ARGV               命令行参数排列
ENVIRON            支持队列中系统环境变量的使用
FILENAME           awk浏览的文件名
FNR                浏览文件的记录数
FS                 设置输入域分隔符,等价于命令行 -F选项
NF                 浏览记录的域的个数
NR                 已读的记录数
OFS                输出域分隔符
ORS                输出记录分隔符
RS                 控制记录分隔符

# 使用awk的内置变量输出,文件名、当前行、和列对应内容
awk -F : '{print "filname:" FILENAME  ",linenumber:" NR ",colums:" NF ",content:" $0}' /etc/passwd

# 使用awk的printf函数 awk -F : '{print $0}' -> awk -F : '{printf("out:%s")}}
awk -F : '{printf("filname:%s,linenumber:%s,colums:%s,content:%s\n",FILENAME, NR, NF, $0)}' /etc/passwd

# 自定义变量 使用count统计行数
awk -F : 'BEGIN {count=0;print "count is", count} {count=count+1;print $0} END {print "end count is ", count}' /etc/passwd

# if...else for while 数组
# name[count] 直接操作数据。
awk -F : 'BEGIN {count=0} {name[count] = $1;count++} END {for(i = 0;i < NR;i++) print i, name[i]}' /etc/passwd
  1. sed,文件处理。
sed -n '1p' my.txt # 查看my.txt文件第一场的内容。
# 参数p,输出内容和-n一起使用。
# d,删除该行的内容
# a,会新增一行内容,目标行的下一行。
# i,会新增一行内容,目标行的上一行。

19.curl

curl -X GET "http://192.168.253.1:8080/user/1" # Get请求

# Post
# -d 指定请求的参数。使用-d之后,默认为Post请求,可以不写-X POST
# -b 指定Cookie。即Cookie:JSESSIONID=123456
# -H 指定请求头。
curl -d '{"id": 100}' -b "JSESSIONID=123456" -H "user:tom" -X POST "http://192.168.253.1:8080/user"

# 使用Post请求后,请求参数的类型默认为Content-Type:application/x-www-form-urlencoded;charset=UTF-8,所以传递Json数据需要设置Content-Type。
curl -d '{"id": 100}' -b "JSESSIONID=123456" -H "user:tom" -H "Content-Type:application/json" -X POST "http://192.168.253.1:8080/update/user"

# 指定/tmp/myshell/a.txt文件中的数据作为请求参数。
curl -d '@/tmp/myshell/a.txt' -b "JSESSIONID=123456" -H "user:tom" -H "Content-Type:application/json" -X POST "http://192.168.253.1:8080/update/user"

20.ssh

# 在133上通过ssh在135上创建目录
ssh 192.168.253.135 "mkdir /tmp/mytest"

# 在133上登录135
ssh 192.168.253.135
ssh-kengen -t rsa # 生成秘钥
ssh-copy-id root@192.168.253.135 # 授权,免密登录

21.scp和rsync

# scp 推送到135,-r 递归拷贝
scp -r /opt/* admin@192.168.253.135:/opt/

# 在136上拉取 134上的文件
# -a 归于,归档
# -v 显示拷贝文件进度。
rsync -av admin@192.168.253.134:/opt/* /opt/

22.后台启动jar包并输出日志到指定文件中

java -jar /opt/module/redis-0.0.1-SNAPSHOT.jar >> /opt/module/jar.log 2>&1 &

23.xargs

# 上一个命令的执行结果作为下一个命令的执行参数
ls # mylog.log
ls | xargs cat # 输出mylog.log文件中的内容

# xargs和grep的区别,grep只是对上一下命令的执行结果,如'mylog.log'字符串进行过滤
ls | grep  l
posted @ 2021-10-17 21:27  行稳致远方  阅读(25)  评论(0)    收藏  举报