linux命令

常用操作

  1. 查看命令手册:man tar
  2. 使用配置文件:source ~/.bash_profile
  3. 查看端口是否被占用:netstat -anp | grep 端口号
  4. 查看后端进程资源占用信息快照: ps -ef | grep mysql 或者 ps aux | more
  5. 实时显示进程资源占用信息 top -c
    uptime 和top命令输出的第一行内容一样
    6.监控系统内存: free
    7.杀死进程 kill pid
  6. 查看当前登录系统账号 who
  7. 查看当前操作系统的账号 whoami
  8. 查看指定命令的路径:which pwd
  9. 定位指令的二进制程序、源码文件和man手册页等相关文件的路径: whereis tomcat
  10. 查看当前shell进程的作业:jobs
  11. 查看当前shell进程的环境变量:env
  12. 查看网卡信息: ifconfig
  13. 检查网络上的主机是否在工作: ping ip
  14. 查看域名和ip的对应关系:nslookup ip 或者nslookup
  15. 在指定的目录下根据文件名查找:find . -name ‘*.c’
  16. 进入当前用户主目录:cd ~
  17. 查看当前文件夹下的文件: ls
  18. 查看当前文件夹下的文件详细信息: ls -lh
  19. 查看隐藏文件:ls -la
  20. 查看当前所在路径:pwd
  21. 查看目录树:tree ~
  22. 创建目录:mkdir yxx
  23. 创建目录及子目录: mkdir -p yxx/xx
  24. 删除空目录: rmdir yxx
  25. 删除包含子目录的空目录: rmdir -p xxxx/xx
  26. 删除文件,删除后不可再恢复:rm xxxx
  27. 删除文件夹,没有提示信息:rm -rf xxxx
  28. 拷贝目标文件到当前目录下,并给提示信息:cp -i ~/doc/yxx.txt .
  29. 拷贝目录: cp -r ~/doc/yxx .
  30. 创建文件:touch a/yxxx
  31. 更改文件名并给提示信息:mv -i xx ss
  32. 移动文件或者目录到当前位置 mv sd/ .
  33. 修改文件读写权限: chmod 666 yxx
  34. 改变某个文件或目录的所有者和所属的组:chown
  35. 变更文件或目录的所属群组:chgrp
  36. 查看文件内容:cat jmeter.log
  37. 分屏读取文件内容 cat jmeter.log | more
  38. 显示文件前5行内容,默认显示10行:head -n 10 jmeter.log
  39. 显示文件后5行内容,默认显示10行:tail -n 10 jmeter.log
  40. 动态查看文件内容:tail -f jmeter.log
  41. 查看目录大小:du yxxx
  42. 统计文件字数:wc jmeter.log
  43. 显示文件系统的磁盘使用情况统计:df
  44. 压缩指定目录下的文件到FileName.tar.gz:tar zcvf FileName.tar.gz DirName
  45. 压缩指定目录下的文件到FileName.tar.tgz tar zcvf FileName.tar.tgz FileName
  46. 解压缩:tar zxvf FileName.tar.gz
  47. 解压缩:tar zxvf FileName.tar.tgz
  48. 新建用户:useradd –d /home/sam -m sam
  49. 删除用户并删除用户主目录:userdel -r sam
  50. 修改用户:usermod 选项 用户名
  51. 新建用户组:groupadd group1
  52. 删除用户组:groupadd group1
  53. 修改用户组:groupmod 选项 用户组
  54. 切换用户:su yxx
  55. 清屏:clear
  56. 显示系统时间:date
  57. 立刻关机:shutdown now
  58. 立刻重新开机:shutdown -r now
  59. 编辑文件:vim s.t
    i 进入输入模式
    ESC:退出输入模式
    :切换到底线命令模式,以在最底一行输入命令。
    q 退出程序
    w 保存文件
    q!强制退出,不保存文件

60.> file 清空文件内容

查阅命令帮助信息

1、command --help
显示command命令的帮助信息
2、man command
显示命令的详细使用手册
man 是manual 手册的缩写。
3、使用man 的操作键
空格键:显示手册页的下一屏
f: 后滚一屏,同空格键效果相同
b: 前滚一屏
q:退出
enter键:一次滚动手册页的一行

补全命令功能

按tab键

查看历史输入命令

按上下键
退出使用ctrl+c

关机/重启

1、shutdown now 现在立刻关机
2、shutdown 23:00 今天23:00关机
3、shutdown +10 系统再过10分钟关机
4、shutdown -c 取消关机计划
5、shutdown -r now 现在重启系统

设置环境变量

方法1:shell终端使用export命令,输入
“export PATH=“ P A T H : / o p t / a u 120 0 r m / b u i l d t o o l s / b i n ” 。 该 环 境 变 量 只 在 当 前 s h e l l 中 有 效 。 方 法 2 : 修 改 p r o f i l e 文 件 , 输 入 v i / e t c / p r o f i l e , 回 车 。 该 环 境 变 量 对 所 有 用 户 都 有 效 。 再 输 入 “ e x p o r t P A T H = " PATH:/opt/au1200_rm/build_tools/bin”。 该环境变量只在当前shell中有效。 方法2:修改profile文件,输入vi/etc/profile,回车。该环境变量对所有用户都有效。 再输入“export PATH=" PATH:/opt/au1200rm/buildtools/binshell2profilevi/etc/profileexportPATH="PATH:/opt/au1200_rm/build_tools/bin”。
方法3:修改当前用户目录下的.bashrc文件,输入vi/root/.bashrc,回车。
再输入“export PATH=”$PATH:/opt/au1200_rm/build_tools/bin”。 只对当前用户有效。

linux系统文件结构

/usr:存放应用程序,类似于windows系统的program files目录
/var:存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/etc: 存放所有的系统管理所需要的配置文件和子目录。
/opt:存放第三方应用程序、数据库等
/bin:存放经常使用的命令
/sbin:存放系统管理员使用的系统管理程序。
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/boot:存放linux启动需要的重要文件
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/dev:存放设备文件
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/mnt: 用户临时挂载其它的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里
/sys:类似proc,虚拟的文件系统。
/srv:该目录存放一些服务启动之后需要提取的数据。
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/selinux:这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

进程管理

ps

1、说明:ps 是process status的缩写。用来监控后台进程的工作情况,是当前进程的快照。
2、返回信息:
USER 用户名
UID 用户ID(User ID)
PID 进程ID(Process ID)
PPID 父进程的进程ID(Parent Process id) SID 会话ID(Session id)
%CPU 进程的cpu占用率
%MEM 进程的内存占用率
VSZ 进程所使用的虚存的大小(Virtual Size)
RSS 进程使用的驻留集大小或者是实际内存的大小,Kbytes字节。 TTY 与进程关联的终端(tty)
START 进程启动时间和日期 TIME 进程使用的总cpu时间
COMMAND 正在执行的命令行命令 NI 优先级(Nice)
PRI 进程优先级编号(Priority)
WCHAN 进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的。
FLAGS 与进程相关的数字标识
STAT 进程的状态
3、进程状态码:
R 运行 Runnable (on run queue) 正在运行或在运行队列中等待。
S 睡眠 Sleeping 休眠中, 受阻, 在等待某个条件的形成或接受到信号。 I 空闲 Idle
Z 僵死 Zombie(a defunct process) 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调 用后释放。
D 不可中断 Uninterruptible sleep (ususally IO) 收到信号不唤醒和不可运行, 进程必须等待直到有中 断发生。
T 停止 Terminate 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。 P 等待交换页
W 无驻留页 has no resident pages 没有足够的记忆体分页可分配。 X 死掉的进程
< 高优先级进程 高优先序的进程
N 低优先 级进程 低优先序的进程
L 内存锁页 Lock 有记忆体分页分配并缩在记忆体内 s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)

  • 位于后台的进程组
    4、命令常用法:
    查看后台进程信息:ps -ef | grep mysql 或者 ps aux | more,两个命令差别不大
    a:显示终端上所有用户的进程,包括其他用户的进程
    u:显示进程详细信息
    x:显示不是用户启动的进程

5、ps命令默认只显示当前用户通过终端启动的应用程序。
在这里插入图片描述

top

1、top命令是linux下常用的性能分析工具,能显示系统中各个进程的资源占有情况,类似win的任务管理器
在这里插入图片描述
2、top 可动态显示进程详细信息,且默认按照cpu使用率和内存占用率排序。 常用top -c
在这里插入图片描述
参考:https://www.cnblogs.com/ftl1012/p/top.html
第一行,任务队列信息,同 uptime 命令的执行结果

系统时间:19:27:01

运行时间:up 54 min,

当前登录用户: 1 user

负载均衡(uptime) load average: 0.02, 0.03, 0.00

 average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了

第二行,Tasks — 任务(进程)

总进程:159 total, 运行:1 running, 休眠:157 sleeping, 停止: 1 stopped, 僵尸进程: 0 zombie

第三行,cpu状态信息

0.0%us【user space】— 用户空间占用CPU的百分比。

0.1%sy【sysctl】— 内核空间占用CPU的百分比。

0.0%ni【】— 改变过优先级的进程占用CPU的百分比

99.9%id【idolt】— 空闲CPU百分比

0.0%wa【wait】— IO等待占用CPU的百分比

0.0%hi【Hardware IRQ】— 硬中断占用CPU的百分比

0.0%si【Software Interrupts】— 软中断占用CPU的百分比

第四行,内存状态

1012288k total, 234464k used, 777824k free, 24084k buffers【缓存的内存量】

第五行,swap交换分区信息

614396k total, 0k used, 614396k free, 72356k cached【缓冲的交换区总量】

备注:

可用内存=free + buffer + cached

对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,

第四行中空闲内存总量(free)是内核还未纳入其管控范围的数量。

纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

第六行,空行

第七行以下:各进程(任务)的状态监控

PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S —进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)

CPU(s):
显示的是当前cpu平均值,若想看每个物理CPU的使用情况,可按下键盘1
%id是统计CPU空闲率,CPU的总使用率用1-%id获得
如果wa使用率过高(等待输入输出的CPU百分比)需要考虑IO是否有性能瓶颈,可用iostat、sar等命令进行分析
swap:交换分区,类似于虚拟内存,就是当内存不足时,把一部分硬件空间虚拟成内存来使用,从而解决内存容量不足的情况。当swap的user项值在不断变化时,说明内核在不断的进行内存和swap的数据交换,这是真正的内存不够用了
mem 中used是指内系统内核控制的内存数,free是内核还未纳入其管控范围的数量。 used的内存不见的都在使用,还包括过去使用过的现在可以被重复利用的内存,内核并不会把这些可被重复使用的内存交还到free中,所以linux上free内存会越来越少,不必担心
进程实际使用的内存查看RES那列的信息
TIME+ 表示的是进程使用CPU时间的总计,不是进程存活时间,单位是1/100秒

env

env : 查看当前进程环境变量

jobs

jobs :查看当前shell下运行的作业

网络管理

域名

是ip地址的别名

端口

1、区分一台计算机上的应用程序
2、不同应用默认端口号
web服务器 8080
https 443
ssh 22
ftp 21

netstat

1、是一个监控TCP/IP网络的常用工具,显示网络连接状态、网络端口、路由表信息。
2、返回信息:
Proto 协议种类
Recv-Q 不是由程序连接产生的字节bytes数
Send-Q 从远程传来的字节bytes数
Local Address 本地IP/主机名
Foreign Address 远程IP/端口
State 显示状态列
3、状态
ESTABLISHED 已建立的连接
LISTEN 监听端口
SYN_SENT 接收到要求主动连接请求
TIME_WAIT 连接中断socket还在网络等待结束
FIN_WAIT1 socket已结束,连接正在中断
FIN_WAIT2 连接已中断,等待对方主机相应中断请求
4、netstat -anp | grep 端口号 检查端口是否被占用,看到tcp,端口号,LISTEN表示端口被占用了
5、netstat -nultp 显示所有已经被占用的端口

nmap

1、nmap默认总是会扫描端口,要扫描本机端口,很方便。
nmap localhost

ifconfig

1、ifconfig : 查看网卡信息,包括Ip等
2、ifconfig | grep inet 可以只看ip
3、127.0.0.1是本机地址,可用于检查本机网卡是否能正常工作

ping

1、ping ip: 检查网络上的主机是否在工作
2、ping 127.0.0.1 检查本机网卡是否正常

nslookup

nslookup ip 或者nslookup 域名 : 查看域名和ip的对应关系

磁盘

df

1、df是 disk free的缩写,显示磁盘占用情况。
2、df -h 人性化显示磁盘剩余空间,主要关注根目录的剩余空间
在这里插入图片描述

du

1、du 是 disk usage的缩写, 可查看目录下文件大小
2、使用 du -h ./yxx 查看yxx目录下文件的大小
在这里插入图片描述

目录和文件

linux下文件和目录的特点:
1、linux文件和目录的名称最长可以是256个字符
2、以.开头的是隐藏文件,常用于存储环境变量
3、.代表当前目录
4、…代表上一级目录

ls

1、说明:ls是list的简写
2、ls:查看当前目录下的文件
3、ls -l :查看当前目录下的文件详细信息,包括读写权限、用户权限、时间、文件大小
4、ls -lh : -lh可以看到文件大小的单位 -l没有文件大小的单位
5、ls -a :可以查看所有文件,包括隐藏文件
6、ls与通配符的使用
ls *.txt : * 匹配任意个字符
ls 1?1.txt : ? 匹配一个字符,必须匹配1个
ls [a-s].txt: [a-s]匹配[]中的任意一个字符。

tree

1、tree : 以树状图列出文件目录结构
2、tree -d :只显示目录
3、tree ~ :显示当前用户主目录的目录结构

cd

1、说明:cd 是change directory的缩写
2、cd 或者 cd ~ 表示切换到当前用户主目录
3、cd . 保持当前目录不变
4、cd … 切换到上一级目录
5、cd - 在最近两次目录之间随机切换

pwd

pwd:查看当前所在路径

touch

touch a/b/c.txt : 文件不存在时创建文件;文件存在时修改文件的时间属性

mkdir

mkdir yxx: 创建目录
mkdir -p yxx/xx: 创建目录及子目录

rmdir

rmdir yxx:删除空目录
rmdir -p yxx/xx:删除子目录,子目录为空

rm

1、说明:rm删除文件后不可再恢复,删除文件不会放到回收站里
2、rm yxx:删除文件
3、不能直接使用rm 删除目录, 需使用-r选项
4、rm -r 会递归删除文件目录
5、-f 会强制删除文件。如果有就删除文件;如果没有也不给任何提示信息。

cp

1、说明:cp是copy的缩写
2、cp 源文件 目标文件 : 拷贝文件
cp ~/doc/a.txt b.txt 拷贝a.txt到当前目录下,并重新命名为b.txt
3、如果不改变拷贝文件的名字,只需要指定目标路径就ok
cp ~/doc/a.txt . 拷贝a.txt 到当前目录下,文件名为a.txt
4、不能直接使用cp 拷贝目录, 需使用-r选项
5、如果源文件是目录 , 使用 -r 可以递归拷贝源目录下的目录和文件。
6、如果目标文件已存在,拷贝源文件到目标文件中,打开页面会提示”文件已修改,是否重新载入“。 加-i 选项命令行会给出提示信息。
cp -i ~/doc/a.txt .

mv

1、mv aaa.txt bbb.txt:更改aaa.txt文件名为bbb.txt
2、如果目标文件已经存在,直接使用mv aaa.txt bbb.txt 会覆盖bbb.txt原先的内容,很不安全,此时可以使用-i选项
3、mv 原目录 目标目录 :将原目录移动到目标路径下
4、mv /usr/student/* . 将student目录下的文件移动到当前路径下

cat

1、cat jmeter.log : 查看文件内容,一次性显示文件所有内容
2、cat -b a.log : 显示行编号,空行不显示
在这里插入图片描述
3、cat -n a.log : 显示行编号,空行也显示
在这里插入图片描述

more

1、more和cat一样,可以显示文件内容,但是是分屏显示的。
2、同man命令类似,使用的操作键
空格键:显示手册页的下一屏
f: 后滚一屏,同空格键效果相同
b: 前滚一屏,
q:退出
enter键:一次滚动手册页的一行

grep

1、grep是一个强大的文本搜索工具,类似于在word文档中用control+f搜索某个文字。
2、grep 1-10 jmeter.log 查找jmeter.log文件中包含‘1-10’的行
在这里插入图片描述
还可以这样写 cat jmeter.log | grep 1-10
在这里插入图片描述
3、-n 可以显示匹配的行号
在这里插入图片描述
4、-v 显示匹配行之外的行
在这里插入图片描述
5、-i 忽视大小写
6、grep 允许对文件进行模式查找,如以a开始的 ^a
在这里插入图片描述

echo

1、打印信息,常结合重定向命令使用
在这里插入图片描述

重定向 > 或者>>

1、命令执行结果重定向到一个文件中 ,echo China > a.txt 。单个> 会覆盖原来的文件内容
在这里插入图片描述
2、>> 会追加内容
在这里插入图片描述

管道命令 |

1、一个命令的输出 作为另一个命令的输入,所以使用管道至少需要使用两个命令。
2、常用的在|后的命令 是more和grep 。more可分屏显示内容;grep可查询指定的文本

less

less [OPTION] FILE…
查看文本文件的内容,屏幕显示完一屏就等待用户按键,用户可以向上或向下查看,如 果中途不想继续看下去了,可以按Ctrl+C或q终止显示。

head

head -5 jmeter.log : 显示文件前5行内容

tail

1、实时查看文件内容
2、tail -200f a.txt 动态查看后200行内容

sed

查看文件中间一段,你可以使用sed命令,如:
sed -n ‘5,10p’ /etc/passwd ,这样就可以只查看文件的第5行到第10行

diff

diff 1.txt 2.txt: 逐行对比两个文件内容的不同

文件属性和用户组

who

who 显示当前登录用户、登录时间、登录设备
who -uH 查看当前登录用户、登录时间、登录设备、线路、进程号

whoami

查看当前登录用户

id

查看当前登录用户的详细信息,包括 uid 和 gid 及所属分组及用户名等
在这里插入图片描述

which

which cd : 查看指定命令的路径

远程管理

ssh

1、通过ssh客户端可以连接到运行了ssh服务器的远程机器上
2、ssh客户端是使用了ssh协议连接到远程计算机的软件程序
3、特点:加密和压缩
4、加密:利用ssh协议可以防止远程管理过程中的信息泄露
通过ssh可以对所有传输数据进行加密,也能够防止dns及ip欺骗
5、压缩:ssh可以对传输的数据进行压缩,加快传输速度
4、ssh [-p port] user@remote_ip
port 是ssh 监听的端口号,默认是22
remote_ip是远程机器地址,可以是ip\域名\别名
user 是远程机器上的用户名,如果不指定则默认为当前用户
5、ssh 命令可以直接在mac linux上直接使用,在windows上需安装putty 或xshell客户端软件。

scp

1、scp是远程拷贝文件命令。scp只能在linux或者mac下使用。
2、scp -P 22 01.py user@remote_ip:Desktop/01.py
把本地当前目录下的01.py拷贝到远程Desktop目录下
3、scp -P 22 user@remote_ip:Desktop/01.py 01.py
把远程Desktop目录下的01.py拷贝到本地当前目录下
4、使用-r 选项可以拷贝文件夹
5、在windows中可以使用putty工具的pscp命令来拷贝文件。或者安装FileZilla 使用FTP进行文件传输。
FileZilla在传输文件时使用的是ftp协议,不是ssh协议

终端是哪个文件夹下的哪个文件

终端 /dev/tty

黑洞文件是哪个文件夹下的哪个命令

黑洞文件 /dev/null

日期

1、date : 查看当前系统的时间
2、cal查看当前日历
在这里插入图片描述
3、cal -y 查看一年的日历
在这里插入图片描述

vim在这里插入图片描述

nohup &

nohup. 不挂断的运行
& 在后台运行

  1. sh test.sh &
    将sh test.sh任务放到后台 ,即使关闭xshell退出当前session依然继续运行,但标准输出和标准错误信息会丢失
  2. nohup sh test.sh
    将sh test.sh任务放到后台,关闭标准输入,前台不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。
  3. nohup sh test.sh &
    将sh test.sh任务放到后台,但是依然可以使用标准输入,前台能够接收任何输入,重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。

nohup /root/runoob.sh > runoob.log 2>&1 &

在后台执行 root 目录下的 runoob.sh 脚本,并重定向输入到 runoob.log 文件
2>&1 解释:
将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。

  •   0 – stdin (standard input,标准输入)
    
  •   1 – stdout (standard output,标准输出)
    
  •   2 – stderr (standard error,标准错误输出)
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值