linux常用命令

1. linux常用命令

1.1 简介

Linux_百度百科 (baidu.com)

1.2 虚拟机相关

安装:虚拟机安装linux,这里不做介绍

登录:如果是root,提示符为#,普通用户则为$

退出:logout

重启:reboot

关机:halt

1.3 linux文件系统

了解即可

linux下一切皆是文件

目录结构

1.3.1  目录说明

 /:为跟目录

/bin:bin是Binary的缩写。这个目录存放着最经常使用的命令,例如cp、mv、ls等

/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。

/dev:dev是Device(设备)的缩写。该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

/etc:是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录

/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/lib:这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

/opt:opt 是 optional(可选) 的缩写,这是给主机额外软件安装目录 cd /opt/lamp/

/proc:proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息

这个目录的内容不在硬盘上而是在内存里

less /proc/cpuinfo

/root:该目录为系统管理员,也称作超级权限者的专用目录

/sbin:s 就是 Super User 的意思,是 Superuser Binaries (超级用户root的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

/tmp:tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的

/usr:usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录

  • /usr/local:这是提供给一般用户的/usr目录,在这里安装一般的应用软件
  • /usr/lib:存放一些常用的动态链接共享库和静态档案库
  • /usr/include:用来存放Linux下开发和编译应用程序所需要的头文件
  • /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序
  • /sbin, /usr/sbin 则是给 root 使用的指令
  • /usr/bin:系统用户使用的应用程序(指令)
  • /bin, /usr/bin 是给系统用户使用的指令(除root外的通用户)
  • /usr/src:内核源代码默认的放置目录

/var:var 是 variable(变量) 的缩写,存放经常改动的数据文件,包括各种日志文件,如果你想做一个网站,你也会用到/var/www这个目录

1.3.2 目录颜色

蓝色:目录

绿底蓝字:绿底蓝字,说明这个目录加了x权限

绿色:可执行文件

红色:压缩文件

浅蓝:链接文件

灰色:其他文件

 1.4 用户

#表示root,$表示普通用户

useradd:添加用户

su:切换用户

su root 还是之前的目录

su - root 进入这个用户的家目录

sudo:获取超级用户权限

 有一些命令是普通用户没有权限操作的,所以要用sudo来获取超级用户权限

1.5 vi/vim文本编辑器命令

命令模式下

1.5.1 行号

显示行号::set nu

不显示行号: :set nonu

1.5.2 光标定位

方向键

左:h    backsapce

右:l    空格

上: k

下:j

上一行行首:-

本行行首:0(数字0)
本行行尾:Shift+4(即$)
指定行:nG,定位到第5行,5G
向后半屏:ctrl + d
向后全屏:ctrl + f
向前半屏:ctrl + u
向前全屏:ctrl + b
文件末尾:G(shift + g)

搜索:

/   向光标下搜索关键字 

? 向光标上搜索关键字

n  从上往下看结果

N(shift+n) 从下往上看结果

替换

替换当前行首次出现: :s/old/new    old表示旧数据 new表示新数据

替换当前行全部: :s/old/new/g

替换指定范围行的首次::x,y s/old/new   从x行到y行

替换指定范围全部: :x,y s/old/new/g

修改全部: :%s/old/new/g

复制

单行: yy 粘贴p
多行:nyy  1,3y 复制1-4行

粘贴:

小p

大P

删除

1.删除字符

x 光标所在位置

X 光标前

nx 删n个,从光标所在位置开始

nX 删n个,光标前的字符

2.行内删除

D 当行,光标及光标后的内容

d$ 当行,光标及光标后的内容

d0 当行,光标前的内容

3.整行删除

dd 单行删除
ndd 多行删除
x,yd 多行 最后需要按回车键

撤销

u 撤销最近的一次操作

U 撤销所有操作

退出 :q

保存退出 :wq  w意思是write,保存文本,q是quit,这样就会退出 vim

不保存退出 如果编辑了,还没保存,不想要了,可以输入:q!,后面加叹号的话表示强制

进入编辑模式

i:光标不会移动插入

I:光标移动到当前行首插入

a: 光标向后移动一个字符的位置,按Esc退出该模式后光标会向前挪一个字符的位置。

A:光标移动到当前行行尾插入

o:会伴随有新起一行(光标所在行的下一行)的操作,按Esc退出该模式后换行的操作仍不会撤销。

O:会伴随有新起一行(光标所在行的上一行)的操作,按Esc退出该模式后换行的操作仍不会撤销。

退出编辑模式:esc

1.6 帮助

1.6.1 help

命令使用摘要及参数列表 

xxx -h

如:ls --help

说明:可能内核版本原因,如果不行,就用man

1.6.2 man

命令说明文件 

比help更加详细的文档,man xxx (q退出)

如:man ps

 1.7 文件管理

pwd:显示当前路径

ls:列举指定目录下的子目录和文件

-a, --all:不隐藏任何以“.” 字符开始的项目

-1:用列表(长格式)的方式列出文件信息

ls -l (ll):

-rwxr-xr-x  1 mysql mysqlg  152 7月   9 17:20 test1.txt

说明:

其中第一个字段的第一个字符是文件类型

  • “-”表示普通文件
  • “d”代表目录
  • “l”代表连接文件
  • “b”代表设备文件

-rwxr-xr-x 第一个字段剩下的 9 个字符是模式

(这三组分别表示文件所属的用户权限、文件所属的组权限以及其他用户的权限)

其实就是权限位(access permission bits)。

3 个一组,每一组 rwx 表示“读(read)”“写(write)”“执行(execute)”。

如果是字母,就说明有这个权限;如果是横线,就是没有这个权限

1 第二个字段是硬链接(hard link)数目,这个比较复杂

mysql  第三个字段是所属用户

mysqlg 第四个字段是所属组

152 第五个字段是文件的大小(字节)

第六个字段是文件被修改的日期

第七个字段是最后是文件/文件夹名

你可以通过命令chown改变所属用户,chgrp改变所属组。

-t 以时间排序,时间由近及远

-r, --reverse 以相反次序排列,如果是-rt,表示时间由远及近

-R, --recursive 同时列出所有子目录层

-S 按大小排序,单位是字节

-h 易读方式,根据文件大小,转换为M、K

cd change directory,就是切换目录

cd 回车 退到当前用户个人目录 (同 cd ~)

cd / 进入根目录

cd .. 返回上级目录

cd ../xx 退到上级目录的xx目录

cd - 回到上一次操作的目录

cp 复制文件夹/文件

参数

-a:尽可能的将文件的属性、权限的内容都照原状复制

-b:如果目的文件存在,就创造一个备

-r:若源中有子目录,则将子目录下的文件及目录亦全部复制至目的目录

-i:若目的地有重复的文件,询问是否覆盖 

-f:若目的地有重复的文件,则覆盖原有文件 

 -L:复制符号链接,自动修改链接以保证链接有效

例如:复制目录并改名

cp -r phpwind_v9.0.1_20141223/upload/ ~/37/phpwind

 mv 移到文件/文件夹、改名

用法:

  • 如果目标目录存在,则是复制到该目录下
  • 如果目标目录不存在,则是改名

参数

-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆 盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可 以避免误覆盖文件

-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用

rm 删除文件/文件夹

参数

-r:删除目录及子目录,目录下如果有子目录及文件也会被删除

-f:不询问直接删除

-i:删除前逐一询问确认

rm -rf test/* 删除test目录下的所有内容

rm -rf test/ 删除test目录

rm -rf test 删除test目录

mkdir 创建文件夹

mkdir -p /mysql/{data,redo,binlog,tmp,logs}

rmdir 用来删除一个空文件夹

rmdir不能删除非空目录

-p 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除

rmdir -p test1/test2 -p表示连同子目录一起删除

touch 创建一个空文件

cat 查看小文件内容,否则内存撑爆了

参数

-n:由第一行开始对所有输出的行数编号

-b:和-n相似,只不过对于空白行不编号

将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件 cat a.txt b.txt > c.txt

对行进行编号(显示行号)

  • cat -b test.txt
  • cat -n test.txt

往文件中添加内容(如果文件不存在,会创建文件):cat 1.txt> test.txt

tac 反向显示文档内容,

由最后一行到第一行反向在屏幕上显示出来,cat和tac相反

more 是分页后只能往后翻页

翻到最后一页自动结束返回命令行

用法:more [参数] 文件 

下一页:回车

下一行:空格

less 是往前往后都能翻页

用法:less [参数] 文件

下一行:

  • 回车
  • j
  • 方向键↓

上一行

  • k
  • 方向键↑

下一页

空格

展示第一行:g

展示最后一行:G

head 显示文件的开头至标准输出中

-n 显示的行数

示例:

head -2 /etc/passwd

head -n2 /etc/passwd

tail 动态查看文件内容

查看文件末尾内容

-f 动态读取

示例

查看passwd的后2行:tail -2 /etc/passwd

du 文件和目录的磁盘使用空间

用法:du -sh *

参数:

-s或--summarize 仅显示总计,只列出最后加总的值

-h或--human-readable 以K,M,G为单位,提高信息的 可读性

-m或--megabytes 以MB为单位输出

lsof 列出当前系统打开文件的工具

参数:

lsof filename 显示打开指定文件的所有进程

lsof -i :80 查询指定端口打开的文件

lsof -p pid 查询指定的pid打开的文件

chmod 用来给文件或者文件赋权限

两种方式:

数字 r=4 w=2 x=1

文本

示例:chmod 755 test.txt

chown 改变文件所有者和所属组

-R 递归式地改变指定目录及其所有子目录、文件

chgrp 改变文件所属组

-R 递归

wc 统计指定文件中的行数、字节数、字数,并将统计结果显示输出

参数

-c 统计字节数。

-l 统计行数。

-m 统计字符数。这个标志不能与 -c 标志一起使用。

-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

示例:cat access.log |wc -l

clear:清屏

history 查看历史命令

命令记录个数 echo $HISTSIZE

修改 export HISTSIZE=1000

清除历史命令 history -c

1.8 搜索

1.8.1 grep 显示文件中的匹配行

参数

-c:显示匹配行数

-e 字符串:匹配特殊字符串,如-开头 

-i:忽略大小写

-v:输出不匹配行

-w:匹配指定字符串

可以和别的命令通过"|"管道符连接使用

示例

ps -ef|grep httpd |grep -v grep

grep ren /etc/passwd

grep -c ren /etc/passwd

去掉空行、注释 grep -Ev '#|^$' nginx.conf.default > nginx.conf

1.8.2 find 查找目录下的文件

用法:find 目标目录 搜索参数 操作参数

参数

-name 文件名:可以跟通配符

-amin 分钟数:文件最后访问时间为指定分钟之前,负数表示之后 

-atime 天数:文件最后访问时间为指定天数之前,负数表示之后 

 -cmin 分钟数:文件最后修改时间为指定分钟之前,负数表示之后 

-ctime 天数:文件最后修改时间为指定天数之前,负数表示之后

-user 用户名:属于用户的目录和文件

-type 文件类型

示例:find / -name lampp

1.9 定位文件位置

1.9.1 whereis

whereis mysql

1.9.2 which

which mysql

which lrzsz

区别:

whereis是搜索程序名,如果是一个普通的文件是找不到的

which命令只查找环境变量中path里面的路径

1.10 归档压缩

1.10.1 zip/unzip

压缩zip包和解压缩以.zip结尾压缩文件

zip

命令格式:zip [选项] 压缩文件名 需要压缩的文档列表

参数

 -r 递归压缩,将指定目录下的所有文件以及子目录全部压缩

-x “文件列表” 压缩时排除文件列表中指定的文件

-m 将文件加入压缩文件压缩后,删除原始文件,即把文件移到压缩文件中

unzip

参数

-x "文件列表" 解压文件,但不包含文件列表中指定的文件

-t 测试压缩文件有无损坏,并不解压

-v 查看压缩文件的详细信息,具体包括压缩文件中包含的文件大小、文件名和压缩比等,并不解压

-n 解压时不覆盖已经存在的文件

-o 解压时覆盖已经存在的文件,并且不要求用户确认

-d 目录名 把压缩文件解压到指定目录下

1.10.2 tar 

参数

-c:创建新文档

-x:解压缩归档文件

-f 文件名:使用归档文件

-z:使用gzip解压缩

-v:详细输出模式

压缩:tar -zcvf 1.tar.gz 1.txt 2.txt 3.txt,命令可以将1.txt,2.txt,3.txt 打包并压缩成1.tar.gz

解压缩:tar zxvf 1.tar.gz,可以解压

1.11 进程

1.11.1 ps 显示瞬间进程 (process) 的动态

显示瞬间进程 (process) 的动态,使用权限是所有使用者

参数

ps -aux

ps -ef

可以用管道符连接其他命令使用

示例:ps -ef|grep tomcat

1.11.2 kill 用来终止指定的进程

-9 强制终止进程

kill -9 pid

杀所有java进程:ps -ef | grep java|grep -v grep | awk '{print $2}' | xargs kill -9

1.12 软件安装

1.12.1 rpm安装包

参数

-i 安装

-U 更新(升级)

-e 卸载

-v 显示安装信息

-h 显示安装进度

使用

安装: rpm -ivh xxx.rpm

如果提示有依赖关系,我们忽略依赖关系强制安装

 rpm -ivh --nodeps xxx

查询:rpm -qa|grep xxx
卸载:rpm -e xxx --nodeps

如果卸载的时候提示有软件依赖它,卸载时需要加上 --nodeps

1.12.2 yum 

yum install -y xxx

源码安装 

二进制安装

posted @ 2023-07-09 19:11  万溪汇海  阅读(28)  评论(0编辑  收藏  举报