Linux笔记

2020-04-30  吴水荣 

我学习了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":不保存退出;
字符"!":强制性操作;

103°|1038 人阅读|0 条评论
登录 后发表评论