导图社区 linux基础知识
Linux全称GNU/Linux,是一种free使用和自由传播的类UNIX操作系统。以下介绍了linux概述、选择空白虚拟机、linux网络、linux安装等。
编辑于2021-09-20 04:28:36linux基础知识
linux概述
开源
安全
免费
轻巧
社区活跃
知道 小红帽RED hat linux 乌班图ubantu 神图centos
选择空白虚拟机
选择典型
稍后安装操作系统
选择64位linux 操作系统
选择虚拟机安装位置和名称 自己可更改
指定磁盘容量20g,将虚拟磁盘拆分多个文件
选择自定义硬件
选择cd/dvd选择linux镜像文件
配置启动虚拟机
出现INTEL VT-X禁用
此时你应该把机器重启并进入bios界面(不同的机器进入bios界面的快捷键不同,一般为F1~F10键中的某个键,如果都不行,就得自己百度一下你的机器型号进入bios界面的快捷方式)。 当进入bios界面后,把虚拟机化选项(virtualization technology)打开,通过回车键,把disabled改成enabled,然后保存并重启机器。
Test Media, 如果不需要的话,点Skip
单击Next按钮继续
选择安装期间显示的语言(英语)
选择存储介质的类别。如果是将CentOS 6安装到本地硬盘上,选择 Basic Storage Devices,如果安装到网络存储介质如SANs上,选择 Specialized Storage Devices
选择 yes,discard any data
子主题 1
设定主机名称(hostname)
子主题 1
设定时区,选择 Asia/Shanghai
子主题 1
设定root帐户的密码,尽量使用较复杂的密码
子主题 1
. 选择安装类型,这里我选择 “Use All Space”
子主题 1
选择 “Write changes to disk”,将分区数据写入硬盘
子主题 1
开始安装,此时只需等待即可
子主题 1
安装完结后,点击Reboot按钮
linux 安装
必须选择英文语言 便于维护等
选择时区(上海)
主机名可以用
主机名最好与虚拟机名字一样,这样操作的作用就是为了搭建集群的时候方便区分
Use All Space
linux网络
网路类型
桥接
特点
对外可见
占用物理ip
NAT
特点
对外不可见
不会占用物理ip
网络配置
NAT
确认网关IP 给虚拟机ip
wmware查看虚拟网络编辑设置
nat设置
网关。子掩码。ip信息
修改配置文件
vi etc/sysconfig/network-script/ifcfg-eth0
修改BOOTROTO 为static
指定当前虚拟机的IP IPADDR
指定网关 GATWAY
指定子掩码 NETMASK:255.255.255.0
指定DNS服务器
除了可以直接在ifcfg-eth0里面加上DNS解析器之外, 1.还可以在/etc/resolv.conf中增加 servername 网关地址 2.还可以在/etc/hosts中修改添加 例如: 192.168.190.22 node01
DNS1:114.114.114.114
DNS2:虚拟机网关
DNS3:8.8.8.8 GOOGLE
DNS4:4.4.4.4 GOOGLE
重启网卡 sevice network restart
监测网路
ping 不通的解决流程方案分析
ping外网如www.baidu.com不通
不可访问外网检查DNS配置
有问题继续修改配置
通可以访问外网
文件传输
远程拷贝
scp
本地文件拷贝到服务器上
scp 本地文件 服务器用户名@服务器地址: 服务器上存储的路径
格式:scp local_file remote_username@remote_ip:remote_folder
-r 遍历拷贝
将本地目录复制到远程机器
scp -r 资源 用户@远程ip:/地址
将远程机器上的文件复制到本地
scp -r 用户@远程IP:/地址/资源 本地地址
上传下载
lrzsz
拖拽上传
rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具。优点就是不用再开一个sftp工具登录上去上传下载文件。
rz
上传
1>指令在那个目录就在在那个目录上传文件 2>文件要上的目录一定要有权限,否则上传失败
sz
下载
将选定的文件发送(send)到本地机器
不能下载目录,只能下载文件
winscp 一般小型上传下载
xftp
ttp协议 上传下载较快
系统管理
用户操作
创建用户
注意:创建用户时,系统默认会 创建一个和用户名字一样的主组。
adduser或useradd 用户名
设置密码
passwd 用户名
修改用户 确认正在修改用户没有进程
usermod 不允许你改变正在线上的使用者帐号名称。当 usermod 用来改 变 user 时,必须确认这名 user 没在电脑上执行任何程序
usermod -l 新用户名 旧用户名字
锁定用户名
最好之前设置好密码便于实现搜定功能
usermod -L username
账号锁定期间,用户输入的命令无论正确与否都提示密码错误,登录不了, 即冻结了账号。
解除锁定
usermod -U username
查看用户
查看用户多少个
cat /etc/passwd(root 用户还可以 cat /etc/shadow)
查看当前登陆用户名 whoami
查看用户 所属组
groups username
删除用户
userdel -r 用户名
userdel -r 用户名 -r 使 用 者 目 录 下 的 档 案 一 并 移 除 。 在 其 他 位 置 上 的 档案 也 将 一 一 找 出 并 删 除 。
用户组操作
增加用户组groupadd 用户组名
删除用户组 groupdel groupname
修改用户组 gruopmod -n 新用户组名 旧用户组名
查看当前用户组内成员
groups
看指定用户所在的组 groups username
改变用户主要组
usermod -g 新组名 用户
改变用户从属复组
usermod -G 附加组名 用户
重复添加同一个附加组,会覆盖之前的所属的附加组,如果要一次性同时添加几个附加组的话,应该在不同的附加组之间用逗号隔开,然后用groups 用户名查看是否添加成功
查看用户所在组
cat /etc/group
更改主机名
1.>hostname 查看主机名
2.> vi /etc/sysconfig/network 修改hostname的值保存退出
3.> vi /etc/hosts 修改localhost后面的localhost.localdomain并且改为要修改的主机名保存退出
4.> init 6/reboot重启系统
5.> hostname命令查看是否更改成功
权限管理
UGO模式
基于ugo
u 拥有着/用户
g 所属组
o 其他人
权限类型
r 读
数字模式可读用4代表
w 写
数字模式可写用2代表
x 执行
数字模式可执行用1代表
d、l、c、b
“l”是链接文件,相当于windows的快捷方式; “b”是块设备,硬盘就是一个例子; “c”是字符设备文件,鼠标,键盘算是; “d”是目录文件,相当于windows的文件夹。
操作文件、目录
权限
基于ugo
chmod u+r 资源
chmod u-r 资源
基于二进制
chmod 777 资源
属组
chgrp 新组 文件或目录
修改文件/目录的所属组信息
拥有者
chown 新拥有者 资源
修改文件/目录的拥有者信息
chown -R 新拥有者:新属组 资源
同时修改一个文件或目录的所有者和属组。
系统配置
网络配置ifconfig /etho
用户组信息配置
/etc/group
用户信息配置’
/etc/passwd /etc/shadow
系统服务初始化配置
cat /etc/inittab
id:3 :initdefault 命令行
5
图形化界面
1 root 单用户
2 多用户 不能用net file system
3 完全多用户 一部分启动 一部分不启动,命令界面
4 未使用,未定义
主机名设置
/etc/sysconfig/network
HOSTNAME= XXX
DNS 设置
vi /etc/hosts
192.168.xxx.xxx username
测试主机
ping 主机名
DNS服务器地址文件
cat /etc/resolv.conf
sudo 权限设置
使用 Linux 系统时,经常会被要求使用超级权限,如果拥有 root 账户那还 好,可以直接进行任何操作,但是这并不一个好方法,也不推荐使用。root 的 权限太过大了,慎用!!! 对于普通用户来说,一个简单的 sudo 即可解决大部分问题。 vim /etc/sudoers(只读) 格式:授权用户 主机=[(切换到哪些用户或用户组)] [是否需要密码验证] 命令 编辑 sudoers 用 visudo 命令,进行编辑
vim/etc/sudoers (只读)
visudo
编辑sudoers文件,可以直接用visudo命令进行编辑(就是直接输入一个visudo命令) 注意:在使用命令时,需要加 sudo 然后在敲命令,且第一次使用时需要 mytest 用户密码,接下来每隔 15 分钟需要一次密码验证。
esc /All
ALL=更高授权者 授权执行文件
测试
sudo xxx
如果不需要密码直接运行命令的,应该加 NOPASSWD:参数
sudo -l 列出该用户所有 sudo 权限
如果要将权限赋予某一个组,则需要在组名前加%,
重设系统时间
查看系统时间
date
手动
date -s 日期 或时分秒
date -s “年月日 时分秒”
自动
时间同步网路服务器
安装ntpdate
yum install ntp -y
例如 ntpdate cn.ntp.org.cn
cn.ntp.org.cn是中国的时间服务器
环境变量
不足要到执行文件的目录中执行文件,配置后任何地方都可以以文件名执行
系统环境变量
/etc/profile
配置完之后,请用echo $PATH输出PATH 的值,看看是否配置好
用户环境变量
~/.bash_profile
重定向和管道
重定向
重定向符号
输入重定向
输出重定向
覆盖重定向 >
输出重定向到一个文件或设备 覆盖原来的文件
追加重定向 >>
输出重定向到一个文件或设备 追加原来的文件
标准/错误输出重定向
标准输出重定向
该符号含义为:输出重定向时,只有正确的输出才会重定向到指定文件,否 则如果是错误的输出则不会。输出重定向默认是 1。即符号“1>”等价于”>”
错误输出重定向
结合使用
管道
把上一个输出当做下一个输入
netstat -anpt | grep "22"
ps -ef |grep 'sshd'
命令执行控制
命令:&& 前一个命令执行成功才会执行后一个命令
命令:|| 前一个命令执行失败才会执行后一个命令
服务操作
列出所有服务项
命令 : chkconfig
查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻 服务
服务操作
service 服务名 start/stop/status/restart
例子:对防火墙服务进行操作,防火墙的服务名为:iptables. 查看防火墙服务运行状态。
添加服务
删除服务
chkconfig --del name
服务初执行登记更改
chkconfig --level 2345 name off|on
如果不写--level 2345 直接关闭或者打开的话,就会默认把2345对应的全部关闭或者打开
定时调度
crond
crond 是 linux 下用来周期性的执行某种任务或等待处理某些事 件的一个守护进程,与 windows 下的计划任务类似,当安装完成操作 系统后,默认会安装此服务工具,并且会自动启动 crond 进程,crond 进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务, 则自动执行该任务。
查看定时任务
命令:crontab -l 可以直接查看当前用户的定时任务
/var/spool/mail 目录下放各用户定时任务,执行后的信息
/var/spool/cron 目录存放每个用户的定时任务
删除用户的定时任务
当执行此命令后,所有用户下面的定时任务会被删除,执行crontab -l后会提示用户:“no crontab for admin”
创建定时任务
命令:crontab -e 它会打开 crontab 定时配置文件,然后我们在 里面编辑定时任务。
编辑定时任务内容
格式:minute hour day month dayofweek command minute - 从0到59的整数 hour - 从0到23的整数 day - 从 1 到 31 的整数 (必须是指定月份的有效日期) month - 从1到12的整数 (或如Jan或Feb简写的月份) dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun 或 Mon 简写来表示) command 需要执行的命令
表示每一分钟执行一次 echo "hello" 命令
&& ||
&&
前一个命令执行成功才会执行后一个命令
||
前面的命令执行失败时才会执行后边的命令
tail -n
信息黑洞
python test.py >>/dev/null
ping www.baidu.com>>dev/null&
ls > /dev/null
linux 安全
防火墙
service iptables
service iptables status 查看防火墙状态
service iptables stop 关闭防火墙
service iptables start 打开防火墙
linuxe内核安全
Selinux 是 Linux 的一个安全策略,但是,实际应用中,很多人会遇到这 样那样的问题.很多编译安装软件的文档,也特意注明了,建议关闭 SeLinux。 •enforcing:强制模式,代表 SELinux 运作中,且已经正确的开始限 制 domain/type 了; •permissive:宽容模式:代表 SELinux 运作中,不过仅会有警告讯息 并不会实际限制。这种模式可以运来作为 SELinux 的 debug 之用; •disabled:关闭,SELinux 并没有实际运作
查看 SELinux 状态:
sestatus -v ##如果 SELinux status 参数为 enabled 即为开启状态
关闭 SELinux:
临时关闭(不用重启机器)
命令:setenforce 0 设置 SELinux 成为 permissive 模式
命令:setenforce 1 设置 SELinux 成为 enforcing 模式
永久关闭
vim /etc/selinux/config
SELINUX=disables
重启机器
linux 进程操作
查看进程
-A all processes -C by command name -N negate selection -G by real group ID (supports names) -a all w/ tty except session leaders -U by real user ID (supports names) -d all except session leaders -g by session OR by effective group name -e all processes -p by process ID T all processes on this terminal -s processes in the sessions given a all w/ tty, including other users -t by tty g OBSOLETE -- DO NOT USE -u by effective user ID (supports names) r only running processes U processes for specified users x processes w/o controlling ttys t by tty *********** output format ********** *********** long options *********** -o,o user-defined -f full --Group --User --pid --cols --ppid -j,j job control s signal --group --user --sid --rows --info -O,O preloaded -o v virtual memory --cumulative --format --deselect -l,l long u user-oriented --sort --tty --forest --version -F extra full X registers --heading --no-heading --context ********* misc options ********* -V,V show version L list format codes f ASCII art forest -m,m,-L,-T,H threads S children in sum -y change -l format -M,Z security data c true command name -c scheduling class -w,w wide output n numeric WCHAN,UID -H process hierarchy
ps -aux(-a 用户 ,-u 用户, -x 详细列出,如cpu)
ps -ef
ps -ef|grep 进程名/PID
ps -aux --sort -pcpu 根据cpu的使用率来进行排序
杀掉进程
kill 进程名/PID
强制杀掉kill -9
后台进程
若想一个程序放在后台运行,只要在命令后面加 &符号
性能分析
top
top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各 个进程的资源占用状况,常用于服务端性能分析 用法 :top [-] [d] [p] [q] [c] [C] [S] [s] [n] 参数说明 d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用 s 交 互命令来改变之。 p 通过指定监控进程 ID 来仅仅监控某个进程的状态。 q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用 户权限,那么 top 将以尽可能高的优先级运行。 S 指定累计模式 s 使 top 命令在安全模式中运行。这将去除交互命令所带来的潜在危 险。 i 使 top 不显示任何闲置或者僵死进程。 c 显示整个命令行而不只是显示命令名 total 进程总数 running 正在运行的进程数 sleeping 睡眠的进程数 stopped 停止的进程数 zombie 僵尸进程数 Cpu(s): us 用户空间占用 CPU 百分比 sy 内核空间占用 CPU 百分比 ni 用户进程空间内改变过优先级的进程占 用 CPU 百分比 id 空闲 CPU 百分比 wa 等待输入输出的 CPU 时间百分比 hi: 硬件 CPU 中断占用百分比 si: 软中断占用百分比 st: 虚拟机占用百分比 Mem: total 物理内存总量 used 使用的物理内存总量 free 空闲内存总量 buffers 用作内核缓存的内存量 Swap: total 交换区总量 0k used 使用的交换区总量 free 空闲的交换区总量 cached 又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内 容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必 再对交换区写入。
免密码登录
ssh -keygen -t rsa -P '' ''
cat ~/.ssh/id _rsa
chmod 600 authorized_keys
ssh locallhost
JDK 的部署
官网下载
http://www.oracle.com/technetwork/java/javase/downloads/index.html
点击下载选择Linux 64位tar.gz的版本
如果选择的不是tar.gz版本而是rpm版本,然后就使用rpm命令安装下载的rpm文件,安装完成之后,jdk默认生产的路径在/usr/java/中
上传并解压
用 wscp 将 jdk 包上传到 linux 系统里,我这里上传到/usr/soft 目录下
然后解压: tar -zxf jdk-7u80-linux-x64.tar.gz
配置环境变量
配置全局 JAVA_HOME,并在 path 路径里加入 java_home/bin. 注意:新的 path 路径必须要包含旧的 path 路径,且每个路径之间以冒号隔开, 而不是分号 vim /etc/profile JAVA_HOME= /usr/soft/jdk1.7.0_75 PATH=$PATH:$JAVA_HOME/bin
重新加载环境变量:source /etc/profile
验证
java -version
如出现上图表示环境变量配置成功
部署Tomcat
从官网下载
http://tomcat.apache.org/
上传和下载
我这里上传至/usr/soft 目录下,然后解压
启动tomcat
在 tomcat 的 bin 目录下有个 startup.sh 脚本可以直接启动 tomcat 服务
关闭 tomcat 服务,可以用 shutdown.sh 命令。 或者 ps -ef | grep tomcat 查看出 tomcat 进程号后,用 kill 命令。
jps
jps 是 JDK 1.5 提供的一个显示当前所有 java 进程 pid 的命令,简单实用,非常适 合在 linux/unix 平台上简单察看当前 java 进程的一些简单情况。
如上图所示,jps 命令显示出了,系统当前运行在 jvm 上的进程情况。其中 Bootstrap 是 tomcat 的进程名字,1996 是 tomcat 的 PID
验证
如上图所示,jps 命令显示出了,系统当前运行在 jvm 上的进程情况。其中 Bootstrap 是 tomcat 的进程名字,1996 是 tomcat 的 PID
部署mysql
yum 安装mysql
yum install mysql-server -y
手动安装mysql
1.下载源码
下载源码后,上传至虚拟机
2.安装编译工具
yum install cmake
3.安装 mysql 依赖
yum install -y make yum install -y gcc gcc-c++ yum install -y ncurses-devel.x86_64 yum install -y cmake.x86_64 yum install -y libaio.x86_64 yum install -y bison.x86_64 yum install -y gcc-c++.x86_64
4.为 mysql 创建 linux 用户
专门创建一个 mysql 用户,来管理 mysql 数据库
5.编译前准备工作
1.先解压源码包
2.然后进入源码目录
3.编译前的检查命令
如果检测失败,请删掉解压之后的mysql源码包,重新解压再试
time cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/soft/mysql56 \ -DMYSQL_DATADIR=/data56 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DMYSQL_UNIX_ADDR=/data56/mysql.sock \ -DMYSQL_USER=mysql \ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
其中 -DCMAKE_INSTALL_PREFIX 指的是mysql的源路径 -DMYSQL_DATADIR 指的是mysql存储数据之后在保存数据的路径
6.开始编译
命令:time make
7.安装
命令:time make install
8.初始化mysql
1.修改权限
cd /usr/soft/mysql56/ ll /usr/soft/mysql56/ chown -R mysql:mysql . [点代表当前目录,别遗漏了]
2.盖配置文件
cp support-files/my-default.cnf /etc/my.cnf
3.初始化配置
scripts/mysql_install_db --user=mysql --basedir=/usr/soft/mysql56 --datadir=/data56 --defaults-file=/etc/my.cnf
9.加入 mysql 到 init 管理
cp support-files/mysql.server /etc/init.d/mysqld56
10.添加服务
chkconfig --add mysqld56
11. 配置环境变量
vim /etc/profile 保存退出
source /etc/profile
12.启动服务
service mysqld56 start
13.验证
输入客户端连接命令: mysql
网路命令
查看网络配置信息
ifconfig
测试与目标主机连通性
ping ip
数据接收情况
真实ip 等
通ping网关
不通检查ip设置是否同一网关同一网段
通同一网关
虚拟机ping物理机
不通关闭windows防护墙
通 虚拟机能访问物理机
物理机ping虚拟机
能通 网络配置正常
不能通关闭linux防火墙
telnet 测试远程主机的网络端口
1.>需安装 telnet : yum install telnet -y
2.>命令: telnet ip port
测试某个ip上的端口是否处于开放状态
网路相关端口,本机
netstat -antp
命令:netstat -a (all)显示所有选项,默认不显示LISTEN相关 -t (tcp)仅显示tcp相关选项 -u (udp)仅显示udp相关选项 -n 拒绝显示别名,能显示数字的全部转化成数字。 -l 仅列出有在 Listen (监听) 的服務状态 -p 显示建立相关链接的程序名 -r 显示路由信息,路由表 -e 显示扩展信息,例如uid等 -s 按各个协议进行统计 -c 每隔一个固定时间,执行该netstat命令。 提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
netstat -antp | grep 端口/'查找关键字符串'
子主题 4
netstat -tunlp|grep 端口
lsof -i :端口/lsof -i tcp/udp:端口
http curl 请求模拟
命令: curl [option] [url] -X/--request[GET|POST|PUT|DELETE|...] 使用指定的httpmethod发出 http request 实战化教学领导品牌 用法: -H/--header -i/--include -d/--data -v/--verbose -u/--user -b/--cookie 设定 request 里的 header 显示 response 的 header 设定 http parameters 输出比较多的信息 使用者账号,密码 cookie 参数-X 跟--request 兩个功能是一样的 example: curl -X GET http://www.baidu.com/ curl --request GET http://www.baidu.com/ curl -X GET "http://www.rest.com/api/users"
查看文件/目录大小
du 文件/文件目录
du -k kb单位
du- m mb单位
du -a 所有文件和目录
du 查看目录的时候,只有在加了参数-a 才能显示全部的文件(.jar、.text 、.....),否则就只能显示目录的大小 du -a + 目录,会显示其中所有的目录(递归到子目录...)的大小,加了-a 会显示除了目录之外的所有文件的大小,
du 目录 --max-depth=n
显示目录的层级 其中max-depth=n中的n指带的是向内递归几层 0 层代表不显示子目录 1代表递归一层
du -h 更易于阅读
磁盘指令 查看磁盘分区大小
df 报告文件系统磁盘空间的使用情况
df -m
以指定块大小等于1048576字节(1M)来显示使用状况
df -k
指定块大小等于1024字节来显示使用状况 df 后面不写参数的话,默认是以kb来显示
df -h
用常见的格式显示出大小(例如:1K 234M 2G)
free 查看内存使用情况
分支主题 25
文件系统
目录结构
bin
存放二进制可执行文件(ls,cat,mkdir等)
boot
存放用于系统引导时使用的各种文件
dev
用于存放设备文件
etc
存放系统配置文件
home
存放所有用户文件的根目录
lib
存放跟文件系统中的程序运行所需要的共享库及内核模块
opt
额外安装的可选应用程序包所放置的位置
tmp
用于存放各种临时文件。每次重启都会删掉
mnt
系统管理员安装临时文件系统的安装点
usr
用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
root用户目录
超级用户目录
var
用于存放运行时需要改变数据的文件
目录操作
cd 进入目录
其中 . 代表当前目录 . . 代表上一级目录 / 代表根目录 ~ 代表返回当前用户所属的文件下 注意: cd ~ /cd 效果一样
查看完整路径 pwd
mkdir 创建目录
拷贝目录
cp source dest -r
source :指源文件/目录 dest :指目标文件/目录 当复制一个目录,且其内容不为空的时候,后面加-r表示强制复制
删除目录
rm
-r 循环遍历子文件夹
-f 不需要确认强制删除
rmdir
只能删除空目录
修改目录
mv
移动目录
mv source dest
其中 source 代表源文件 dest 指目标路径
重命名
mv +旧文件+新目录文件
文件操作
列出所文件目录
ll
相当于ls -l
ls
ls -al 全部包括隐藏文件
效果等同于ll -a
创建文件
touch
在当前路径下创建一个空白文件
vi
创建一个空白文件,并且进入编辑vi编辑状态
删除文件
rm -f
修改
mv
新建文件()一切皆是文件
touch
vi /vim
显示查看
cat
一次性显示整个文件的内容 注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不 清所显示的内容。
more
该命令一次显示一屏文本,满屏后停下来,并且在屏幕 的底部出现一个提示信息,给出至今己显示的该文件的百分比。 按 Space 键,显示文本的下一屏内容。 按 Enier 键,只显示文本的下一行内容。 按 B 键,显示上一屏内容。 按 Q 键,退出。
less
less 命令 与 more 命令 非常类似 less filename: h 显示帮助界面 Q 退出less 命令 u 向后滚动半页 d 向前翻半页 空格键 滚动一页 b 向后翻一页 回车键 滚动一行 [pagedown]: 向下翻动一页 [pageup]: 向上翻动一页 以及上下键,向上一行,向下一行
head
从文件头开始打印文件
head -200
head -n200
tail
从文件尾部开始打印文件
tail
-n
-f
监听文件变化并打印内容
文件或目录
find
该命令表示为,在/目录下查找 名字为 profile 的文件或目录,最后列出它的绝对路径
find 目录下 -name ‘字符串’或直接变量名
模糊匹配 find 目录下 -name grp* /fin 目录下 -name *grp
grep
将把含有匹配内容的行打印出来 几个常用的查询指令: 1、查找时不区分字符串的大小写 grep -i “查找的字符串” 文件名 2、查找时使用正则表达式,匹配符合的字符串 grep -e “正则表达式” 文件名 3、查找不匹配指定字符串的行: grep -v “被查找的字符串” 文件名 4、查找时显示被查找字符串所在的行数 grep -n “查找的字符串” 文件名
grep -n " HelloWorld " /Users/mac/Desktop/test/*
grep -n " HelloWorld " /Users/mac/Desktop/test/* 代表在桌面的test文件夹中所有文件中查找包含字符串"HelloWorld"的文件 注意: -n可以显示字符串在文件中的行数
vi /vim 文本编辑器
编辑模式
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与 pattern匹配的串处
命令行模式
w保存
q退出
q!:不保存文件并退出vi
esc :set nu显示行号
显示行号 Esc模式下输入 所在行的数字 然后按下大写的G直接跳转到 对应到一行到,不按数字直接按G则跳转到最后一行
用ctrl+g就可以显示光标位置所在行和所在的列
nG:光标移至第 n 行首 n+:光标下移 n 行
n-:光标上移 n 行
n$:光标移至第 n 行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
• dd:删除 行
1.> dd 为删除一行( 光标所停留的所在行) 2.> 如果要删除多行多话,在Esc模式下 输入: 2,4d 回车想相当于删除第2到第4行一共3行的所有数据 3.> 如果要从光标所在位置删除到最后一行则输入:,$-1d然后按回车
x 或 X:删除一个字符,x 删除光标后的,而 X 删除光标前的
uu 回退
在esc模式下联系按2次u相当于回退一次操作
一般模式
yy 复制光标所在行(常用)
,P p为复制的数
从光标开始处向文件首搜索pattern n:在同一方向重复上一次搜索命令 N:在反方向上重复上一次搜索命令
•:s/p1/p2/g 将当前行中所有p1均用p2替代 •:n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代 •:g/p1/s//p2/g将文件中所有p1均用p2替换
ctrl+c结束。
ctrl + d 登出