我学习了Linux后,只在部署测试项目的时候用上,公司的大部分项目都是部署在Linux系统的服务器上,项目经理把文件包上传到SVN上后,我们测试人员就要上去拿包,然后部署到服务器上才能开始测试,有时候一个项目要部署无数次,因此Linux命令是要求闭着眼睛都会敲的----------虽然我达不到这种水平
当年学习Linux是有做过一些笔记的,长时间过后怕不知道存哪里去,还是放在这里安全点。
Linux 命令
cd 切换文件夹
cd /home/admin 绝对路径 以根目录开头
cd admin 相对路径 不以根目录开头
cd .. 返回上级目录
cd ~ 到自己的家目录 /home/admin
cd - 在最后两条命令中来回切换
pwd 查看当前目录
ls 查看目录的内容
ls tupian 查看tupian文件夹里的内容
ls -l 显示详细列表
权限
(一长串文件信息里 ,前面的drwxrwxr-x和-rwxrwxr-x d代表文件夹 -代表文件;rwx rwx r-x r可读 w 可写 x 执行
第一组指文件的拥有者的权限,第二组代表文件拥有的组的权限,第三组代表其他用户)
ls -lh 把文件大小以人性化的方式显示
ls -a 显示所有的文件,包含隐藏文件,隐藏文件是以小数点开头的文件
ll 等于 ls -l
ls -la / 查看根目录下所有文件的信息
ls a* 查看当前目录下任何以a开头的文件
ls *d 查看当前目录下任何d前面有文字的
ls a? a后面有一个任意字符的 a ab abc 只有ab匹配
ls a?? abc匹配
ls [abc]d abc里任何一个开头,d结尾
假如查看一个文件夹为*a 则 ls \*a \是通配符
ls *txt 查看当前目录下所有以txt结尾的文件
mkdir 创建文件夹
mkdir /home/admin/tupian 以绝对路径创建文件夹
mkdir tupian 在当前目录下创建文件夹
mkdir /home/admin/a/tupian -p 如果上级目录不存在,加上-p自动创建父目录
mkdir a b 在当前 目录创建多个文件夹
mkdir a/{c,d} 在指定目录下创建多个文件夹
mkdir .abc 创建隐藏文件
PS:创建文件夹需要在自己的“家”里,否则可能会没有权限
touch 创建文件
touch abc.txt 在当前目录创建文件 如果指定了目录,必须保证上级目录存在
touch .abc 创建隐藏文件
gedit abc.txt 创建并打开记事本文件
rm 删除文件
rm a.txt b.txt 删除当前文件夹里的多个文件
rm a -r 删除文件夹a
rm * 删除当前文件夹里的全部文件(不包括文件夹和隐藏文件)
rm * -r 删除当前文件夹里的文件和文件夹,隐藏文件只能通过名称一一删除,.和..是删除不掉的
clear 清屏
自动补全
Tab键 上下方向键找到以前的命令
ctrl + c 结束当前命令
ls --help 帮助命令
man pwd 帮助命令 英文的 空格键 显示下一屏
cp 拷贝
cp 1.txt 2.txt 在当前目录下拷贝文件
cp abc abc_bak -r 拷贝文件夹
cp ~/nv ~/nan -r 把指定文件夹的内容拷贝到另一个指定文件夹里 ~是自已家
mv 移动、重命名 相当于剪切
mv 1.txt 2.txt 在当前目录下移动,相当于重命名
mv 1.txt abc 移动到指定目录abc
mv 1.txt abc/1_bak.txt 移到指定目录并改名
> 重定向
ls >1.txt 把ls返回的结果写到1.txt文件中,默认的情况下返回的结果是显示到屏幕上的,这样子写就会写到新的文件里
pwd > 1.txt 把pwd的结果写到1.txt中,会把ls的结果覆盖
如果想不覆盖,则
pwd >>1.txt 追加到后面
cd不会返回结果,因此不能cd / >1.txt
cat 查看文件内容
cat 1.txt 把文件的内容显示在当前屏幕上,如果是打开则是gedit 1.txt
cat 2.txt 1.txt 把2个文件的内容按顺序显示到当前屏幕上
cat 2.txt 1.txt >3.txt 把2个文件的内容合并到一个新的文件里
more 查看文件内容特别多的时候使用 比如用cat来看一个文件特别大的时候,是看到最后一行的
如果想看第一行还要往回翻。使用more命令会从第一行开始显示,只显示前面的百分之几
此时按enter键一行行往下翻,按空格键往下翻页,按B往回翻,按Q键退出
more 1.txt
ls / >>1.txt 来建一个比较多内容的文件
管道 | 把左边命令返回的结果交给右边处理
ls -al / | more 即把根目录下的所有文件信息以more的方式显示在屏幕上
ls -al a | cat
history 查看历史命令
ln 链接 软连接 相当于快捷方式 只记名称,如果删除原文件,快捷方式访问不了了,如果新建一个同名的文件,但是内容不一样的,快捷方式还是有效的
ln -s 1.txt 1_soft_link 创建一个软链接,源文件是1.txt,快捷方式是1_soft_link
ln -s /home/admin/day/1.txt ~/1_soft_link 到家文件里创建一个快捷方式,源文件不能再写相对路径,要写绝对路径
ln -s nan nan_soft_link 给当前目录的nan文件夹创建一个快捷方式nan_soft_link
ln -s /home/admin/ren/nan /home/admin/peaple/nan_soft_link
硬链接 本身占空间,相当于把源文件复制一份,与源文件同步变化
使用ll查看时,有一个数字,代表有几个文件能同步发生变化
删除源文件,硬链接文件不影响源文件
不能给目录创建硬链接
硬连接少用
ln 1.txt 1_hard_link
grep 文本搜索 文件内容
grep [-选项] ‘搜索的内容’文件名
grep hello test.txt 在某个文件中查找包含hello的内容,只要一行中有hello就会把整行显示
grep -niv hello test.txt n代表显示匹配查找到的内容的行号 i 不区分大小写查找 v 反向查找
即查找不包含hello的那一行
grep -n hello /home/amdin -r 查找整个目录中的所有文件
find 查找文件
find . -name 2.txt 查找当前目录所有2.txt的文件
find ~ -name '*txt' 把家目录里所有txt结尾的文件找出来 如果文件名没有完整,使用通配符的话,则需要‘’
find /home -name 1.txt 在/home目录下查找文件名为1.txt的文件
tar 归档管理 即打包
tar [参数] 打包文件名 文件
tar -cf dabao.tar 2.txt 3.txt 把2.txt和3.txt打包成一个文件,名称为dabao.tar
tar -tf dabao.tar 列出来包里有什么文件
tar -xf dabao.tar 解开打包
tar -xvf dabao.tar -v是过程 如果没写目录,是把包里的文件解开放在当前目录下
f是文件,必须写在后面
解压到另一个目录里: 需要加一个 - 和大写的C
先建一个指定的目录:mkdir tar2
然后解压到tar2 目录里:tar -xvf dabao.tar -C tar2
gzip 文件压缩解压
gzip -r a.tar 会把原来的包压缩并加上扩展名 a.tar.gz
gzip -d a.tar.gz 把压缩包解压成原来的a.tar
压缩过程:1 打包 2 压缩 解压过程: 1 解压 2 解包
tar -cf a.tar * 打包当前路径所有文件为a.tar
gzip -r a.tar 压缩a.tar ,生成a.tar.gz
gzip -d a.tar.gz 解压a.tar.gz 生成a.tar
先创建一个目录到家目录:mkdir ~ /atar
tar -xf a.tar -C ~/atar 解压a.tar文件到家路径下的atar目录
一步到位的打包压缩和解压解包:gzip
tar -czf b.tar.gz *txt 把全部txt文件打包并压缩成b.tar.gz包 z是使用gzip的方式来打包压缩
tar -zxf b.tar.gz -C btar 把b.tar.gz压缩包解压解包到btar目录下。btar目录要先建好(mkdir btar)
另一种方式压缩和解压 : bzip2
tar -jcf j.tar.bz2 *txt
mkdir jtar
tar -xjf j.tar.bz2 -C jtar
zip方式
zip -r zips *txt 把所有txt文件压缩成zips.zip zips不用写后缀名,会自动生成zip扩展名
unzip -d zz zips.zip zz目录不用另外建,会自动建好
压缩率:zip<gzip>bzip2
通用性:zip>gzip>bzip2
建议使用gzip方式
which 查看位置
绝大多数命令都在bin里
切换管理员 root
su
密钥:
su admin 切换回原来的admin账号 root切换到普通用户不需要密码
passwd 设置密码
exit 退出某个用户的登录
who 查看当前登录的用户
tty 代表用户登录了系统
pts 代表一个终端
pkill -kill -t tty1 杀掉用户进程 tty1
reboot shutdown 关机 重启
su
密钥
进入root
shutdown -h +10 进入root权限设置10分钟后关闭此电脑
按Ctrl+C可以取消关闭命令
reboot不需要root权限
su admin
reboot 立马重启
chmod 修改文件权限 字母法 数字法
u是用户 g是用户组 o是其他用户 a是所有用户
r是可读,数字代号是“4” w是可写 “2” x是可执行 “1” - 是不具备任何权限 “0”
chmod u+r,g-w,o=x test.txt 给文件的拥有者加上可读权限,用户组减去可写权限,其他用户赋予(设置)可执行权限
chmod a=rwx test.txt 给所有用户赋予读写执行的权限
数字法:
chmod u=rwx,g=rx,o=r test.txt
相当于:
chmod u=7,g=5,o=4 test.txt rwx=4+2+1 rx=4+1 r=4
chmod 135 test.txt 必须写3位 每个数字都是和 所有组合是从0到7
相当于:---x-wxr-x
第一位数字代表自己的权限 第二位代表自己组的权限 第三位代表其他人的权限
vim 和 vi 文本编辑器 https://www.cnblogs.com/zsql/p/10583396.html
一、vim的三种模式
1、命令模式:
使用 Vim 编辑文件时,默认处于命令模式。在此模式下,可以使用上、下、左、右键或者 k、j、h、l 命令进行光标移动,还可以对文件内容进行复制、粘贴、替换、删除等操作。
2、输入模式:
在输入模式下可以对文件执行写操作,类似在 Windows 的文档中输入内容。进入输入模式的方法是输入 i、a、o 等插入命令,编写完成后按 Esc 键即可返回命令模式。
3、编辑模式:
如果要保存、查找或者替换一些内容等,就需要进入编辑模式。编辑模式的进入方法为:在命令模式下按":"键,Vim 窗口的左下方会出现一个":"符号,这时就可以输入相关的指令进行操作了。指令执行后会自动返回命令模式。
二、基本操作
1、打开文件,或者是新建文件
统一命令为:vim file_name
例如:vim array.sh
然后在打开页面的左下角可以看到文件的信息,行数和字符数,比如上图的241行,5450个字符
2、移动光标:
a、以字符为单位移动
在命令模式中使用 h、j、k、l 这 4 个字符控制方向,分别表示向左、向下、向上、向左。
b、以单词为单位移动
w:移动光标到下一个单词的单词首
b:移动光标到上一个单词的单词首
e:移动光标到下一个单词的单词尾
c、移动到行尾或者行首
使用"$"命令将光标移至行尾,或者使用"0"或"^"命令将光标移至行首。其实,对于 $ 命令来说,可以使用诸如"n$"之类的命令来将光标移至当前光标所在行的之后 n 行的行尾(n 为数字);对于"0"命令来说却不可以,但可以用"n^"
移动到一行的指定字符处(f 命令)
例如,某行为"you can you up, no can no bb",现在需要将光标移动到字符 p 处,则可以使用"fp"命令,这样光标就会迅速定位到字符 p 处。f 命令有一个使用条件,即光标需在指定字符前
移动到匹配的括号处(%命令)
那么在使用 Vim 进行编辑时经常会为将光标移动到与一个"("匹配的")"(对于 [] 和 {} 也是一样的)处而感到头疼。其实在 Vim 里面提供了一个非常方便地査找匹配括号的命令,这就是"%"
移动到指定行处(nG 或 :n 命令)
可以直接在命令模式中输入"nG"(n 为数字,G 为大写)或":n"(在编辑模式中输入数字)命令将光标快速地定位到指定行的行首。这种方法对快速移动光标非常有效。
3、插入
常用的插入命令:
i:在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
I:在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行i命令
a:在当前光标所在位置之后插入随后输入的文本
A:在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行a命令
o:在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O:在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
当处于输入模式时,右下角的状态为如下图所示:
当编辑完毕使用Esc命令退出输入模式,进去命令模式,可以使用Shift+zz命令保存退出,其他保存和退出命令见下文
4、编辑
査找指定字符串
首先在命令模式下输入:/char #char为需要查找的字符,在查找的过程中还以使用$^等进行匹配
然后enter键就可以了,然后使用n,N进行下一个或者上一个查找
5、替换字符
r 替换当前光标的单个字符
R 从当前光标开始替换,esc退出
替换范围内的字符串::替换起始处,替换结束处s/源字符串/替换的字符串/g。
替换整篇文档的字符串::%s/源字符串/替换的字符串/g(如果不加g,则只替换每行第一个找到的字符串)。
6、删除,复制,粘贴
x :删除当前光标字符
dd: 删除当前光标行
还可以使用命令::1,$d #表示从第一行到最后一行删除,
ndd ,表示删除当前光标接下来的n行, 例如5dd
dG : 表示删除光标到最后一行
yy:为复制
p:为粘贴
u:为撤销上一步的操作
7、保存和退出
字母"w":保存不退出;
字母"q":不保存退出;
字符"!":强制性操作;