预备知识
Linux的目录结构中“/”表示根目录,然后根目录下面有较为常见的bin(存放可执行二进制文件),home(存放用户文件的根目录)还有root超级管理员目录。
以上图片中root代表当前用户为root,hecs-x-medim……则代表计算机的名称,~代表的就是用户主目录,当我切换目录到test时就显示:
至此,对命令行的界面有了一定的了解。
语法:
俗话说知其然得知其所以然,使用linux命令之前得对它的语法格式先有一定的了解,linux命令的基本格式为:
command ... [option]... [argument]
command ... [options]... [arguments]
比如网上常见的入狱小技巧:
rm -rf /*
rm 是command,r和f是两个option,/*则是argument。
option:定义命令的执行特性,可以有长短两种选项:
- 长选项:用 – 引导,后面跟完整的单词,如 --help
- 短选项:用 - 引导,后面跟单个的字符, 如 -a
多个短选项可以组合使用,例如: -r -f -等价于 -rf,但是长选项不能组合使用(长选项和短选项没有质的区别)
技巧1
Linux中共有上百种的命令每个命令又有很多参数,要我们把所有命令参数和对应的命令记下来那是不可能的,因此Linux自带命令行手册,当我们记不到某个命令时就可以借助手册来操作:
command --help
该命令用于查询一个命令的用法,比如我不知道mkdir命令是怎么用的,我可以这样做:
mkdir --help
结果如下:
Usage: mkdir [OPTION]... DIRECTORY...
Create the DIRECTORY(ies), if they do not already exist.
Mandatory arguments to long options are mandatory for short options too.
-m, --mode=MODE set file mode (as in chmod), not a=rwx - umask
-p, --parents no error if existing, make parent directories as needed
-v, --verbose print a message for each created directory
-Z set SELinux security context of each created directory
to the default type
--context[=CTX] like -Z, or if CTX is specified then set the SELinux
or SMACK security context to CTX
--help display this help and exit
--version output version information and exit
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'mkdir invocation'
当然也可以用man(manual)命令:
man mkdir
技巧2
很多时候在切换目录或者操作文件时我们很难把文件名或目录名全部记下来再敲上去,因此可以借助“Tab”键来自动补充文件名和目录名。
常用命令
- 【cd (chage directory ) 】:切换目录
cd test | 进入test目录 |
---|---|
cd… | 切换到上一层目录 |
cd / | 切换到系统根目录 |
cd ~ | 切换到用户主目录 |
cd - | 切换到上一个所在目录 |
-
【pwd(print work directory)】显示当前所在目录
-
【clear】清屏
-
【 ls】:list用来显示当前目录下的内容
例如,在/根目录下执行该命令:
[root@node03 /]# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
得到的结果是不是和文章开头的那张图一样。
- 快捷键
ctrl+c 取消操作
ctrl+l 清屏
文件相关
ls -a | 显示所有内容包括隐藏的 |
---|---|
ls -l | 显示详细内容(简写为ll) |
- 【cat、more、less】文件查看
cat yum.txt | 查看yum文件 |
---|---|
more yum.txt | 用于查看内容较多的文件,空格键显示下一页 |
less yum.txt | 和more相同,可用pageUP和pagedown控制 |
- 【taill】用于显示文件后几行的内容。
tail -10 /exa/test | 查看test文件的最后10行 |
---|---|
tail -f catalina.log | 动态查看该日志文件 |
- 【mkdir(make directory)】用来创建子目录。
mkdir app | 在当前目录下创建app目录 |
---|---|
mkdir –p app2/test | 级联创建aap2以及test目录 |
- 【rmdir(remove directory)】用来删除“空”的子目录
rmdir test | 删除test目录 |
---|
- 【rm 】 删除文件
rm a.txt | 删除a.txt文件 |
---|---|
rm -f a.txt | (force)不询问,直接删除rm 删除目录 |
rm -r a | (recursive)递归删除,即删除a里面包含的所有内容 |
rm -rf a | 不询问递归删除 |
rm -rf * | 删除所有文件 |
rm -rf /* | 自毁模式(入狱小技巧) |
- 【cp(copy)、mv(move)】拷贝移动(重命名)
cp(copy)命令可以将文件从一处复制到另一处。一般在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。
cp a.txt b.txt | 将a.txt复制为b.txt文件 |
---|---|
cp a.txt …/ | 将a.txt文件复制到上一层目录中 |
mv a.txt …/ | 将a.txt文件移动到上一层目录中 |
mv a.txt b.txt | 将a.txt文件重命名为b.txt |
- 【find】文件查找
find / -name “tex*” | 查找文件名称是以tex开头的文件 |
---|---|
find / –user user1 –ls | 查找用户user1的文件 |
find / –user user1 –type d –ls | 查找用户user1的目录 |
find /-perm -777 –type d -ls | 查找权限是777的文件 |
- 【grep】查找文件里符合条件的字符串。
grep java test.txt | 在文件中查找java |
---|---|
grep java test.txt -color | 在文件中查找java,并高亮显示 |
- 【touch】创建一个文件
touch test.txt | 创建一个test.txt文件 |
---|
打包压缩
Linux上常见的压缩指令有gzip,bzip2,xz及windows的zip,最常用的时gzip(压缩后没有原来文件),bzip2是用来取代gzip的。(每种指令对应这一种压缩技术)由于gizp压缩目录时会将目录内的每个文件生成一个单独的压缩包,所以一般要配合tar来打包再压缩。
- 【tar】命令:它能够将用户所指定的文件或目录打包成一个文件(.tar结尾),但不做压缩。(但可以通过选项借助上面说的压缩工具进行压缩)
常用参数:
-c:创建一个新tar文件(create)
-v:显示运行过程的信息
-f:指定打包后的文件名 后面必须接的是文件名(注意顺序)
-z:调用gzip压缩命令进行压缩(-j就使用bzip2来压缩)
-t:查看压缩文件的内容)
-x:解开tar文件(extract)
-C:change to directory,即放在哪个目录里面
例如:
1.使用gzip压缩一个名为tomcat的文件夹
tar -zcvf tomcat.tar.gz tomcat
2.将上面的压缩包解压到/export目录下
tar -xvf test.tar.gz -C /export/
-
【zcat zmore zless】直接查看gzip压缩的文件内容
-
【bzcat bzmore bzless】直接查看bzip2压缩的文件内容
Vim编辑器
Vim编辑器有上古神器之称,但它的功能其实和windows中的记事本差不多,它可以查看文件也可以编辑文件。
三种模式:一般指令(command mode)、插入/编辑模式(insert)、命令行模式(command-line mode),刚进入时就是一般指令模式。
-
打开文件:vim file
-
几种模式的切换:(编辑模式和命令模式不能直接切换)
-
一般命令模式常用按键
0 – 将光标移动到该行的最开始位置
$ - 将光标移动到该行的末尾位置
G - 将光标移动到最后一行
nG - 将光标移到第n行(gg第一行)
/word - 光标之后查找word
:1,$s/word1/word2/gc - 将第1行到最后一行的word1替换为word2(需要confirm)
dd – 快速删除一行
yy - 复制当前行
nyy - 从当前行向后复制几行
p - 粘贴
R – 替换
u - 复原上一个动作(相当于ctrl+z)
Ctrl+r 重做上一个动作
3. 命令行模式常用按键
:w - 写入硬盘,即保存
:set nu - 显示行号
:set nonu - 不显示行号
:q退 - 出 -
退出vim(命令行模式下操作)
保存并退出::wq
不保存退出::q!(!为强制的意思)
其他操作
- Vim区块(visual block)
进入方法:一般模式下按:
v - 字符选择,光标经过的字符被选中
V - 行选择,光标经过的行被选中
Ctrl+v - 自由矩形选择(行列自由选择)
操作:
y - 复制
p - 粘贴
d - 删除 - 打开多个文件
vim /etc/hosts man_db.conf(即vim后面跟多个文件)
:files - 查看打开的文件
:n - 编辑下一个文件
:N - 编辑上一个文件 - 窗口多开
:sp[filename] - 不加filename会克隆当前窗口
Ctrl+w+下 - 切换到下一个窗口
网络相关
- IP地址
IP地址 ifconfig 查看(修改)ip地址(重启后无效) ifconfig eth0 192.168.12.22 修改ip地址
如果想要永久生效 修改 /etc/sysconfig/network-scripts/ifcfg-eth0文件 DEVICE=eth0
#网卡名称 BOOTPROTO=static #获取ip的方式(static/dhcp/bootp/none) HWADDR=00:0C:29:B5:B2:69 #MAC地址 IPADDR=12.168.177.129 #IP地址
NETMASK=255.255.255.0 #子网掩码 NETWORK=192.168.177.0 #网络地址
BROADCAST=192.168.0.255 #广播地址 NBOOT=yes #
系统启动时是否设置此网络接口,设置为yes时,系统启动时激活此设备。
- 网络服务管理
service network status 查看指定服务的状态
service network stop 停止指定服务
service network start 启动指定服务
service network restart 重启指定服务
service --status–all 查看系统中所有后台服务
netstat –nltp 查看系统中网络进程的端口监听情况
- 域名映射
/etc/hosts文件用于在通过主机名进行访问时做ip地址解析之用,相当于windows系统的C:\Windows\System32\drivers\etc\hosts文件的功能。
- 防火墙(CentOS7以下)
防火墙根据配置文件/etc/sysconfig/iptables来控制本机的”出”、”入”网络访问行为。
service iptables status 查看防火墙状态
service iptables stop 关闭防火墙
service iptables start 启动防火墙
chkconfig iptables off 禁止防火墙自启
系统相关
-
【ps kill】Process Status进程查看、结束
ps 正在运行的某个进程的状态
ps –ef 查看所有进程
ps –ef | grep ssh 查找某一进程
kill 2868 杀掉2868编号的进程
kill -9 2868 强制杀死进程 -
【|】管道
管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。示例
ls --help | more 分页查询帮助信息(第一个的结果作为第二个输入)
ps –ef | grep java 查询名称中包含java的进程
ifconfig | more
cat index.html | more
ps –ef | grep aio
软件管理
软件管理工具(软件管理员):
Linux 开发商先在固定的硬件平台与操作系统平台上面将需要安装或升级的软件编译好, 然后将这个软件的所有相关文件打包成为一个特殊格式的文件,在这个软件文件内还包含了预先检测系统与依赖软件的脚本, 并提供记载该软件提供的所有文件信息等。最终将这个软件文件发布,用户获取到发布的软件之后就可以轻松的通过相关指令来进行软件安装与卸载(即无需自行编译与下载依赖软件)
市面上有两种:
RPM软件文件中记录了该软件的依赖等属性,通过YUM就能解决依赖问题,它能自动将依赖一起下载下来。
- RPM:一般只用于查看软件安装情况,yum用来安装卸载
- 安装:
【rpm -ivh】
-i - install
-v - 查看安装细节
-h - 显示安装进度
- 升级更新upgrade/freshen
【rpm -Uvh /-Fvh】
-Uvh - 没安装过则安装,否则更新
-Fvh - 只更新
- 查询query(常用)
【rpm -q】
-q : 仅查询指定软件名
-qa : 查询所有已安装的软件
-qi : 列出软件的详细信息
-ql :列出该软件所有的文件与目录所在完整文件名 (list);
-qc :列出该软件的所有配置文件 (找出在 /etc/ 下面的文件名而已)
-qd :列出该软件的所有说明文档 (找出与 man 有关的文件而已)
-qR :列出与该软件有关的相依软件所含的文件 (Required 的意思)
-qf :由后面接的文件名称,找出该文件属于哪一个已安装的软件;
- 卸载与重建数据库erase/rebuilddb
【rpm -e】卸载软件
–nodeps :强制卸载所有依赖的软件(会导致其他依赖于这些依赖软件无法正常运行)
【rpm --rebuilddb】卸载之后重建数据库
- Yum
- 查询
【yum [option] 参数】卸载软件
search :搜寻某个软件名称或者是描述 (description) 的重要关键字;
list :列出目前 yum所管理的所有的软件名称与版本,有点类似 rpm -qa;
info :同上,不过有点类似 rpm -qai 的执行结果;
provides:从文件去搜寻软件!类似 rpm -qf 的功能!
- 安装升级
【yum install|update】 - 卸载软件
【yum remove】会自动解决依赖 - 配置yum服务器地址
/etc/yum.repos.d/CentOS-Base.repo
记得点赞加关注
原创不易,转载请注明出处
更多推荐
超详细最常用的Linux命令教程【持续更新】
发布评论