前端够用的linux笔记,简单记录下shell命令,只是记录学习,还未整理。
购买阿里云/腾讯云 服务器,选择centos,当然你也可以在自己电脑上安装一个centos的操作系统。
shell工具
图形化登录
ssh命令登录
> ssh root@192.168.14.147 -p 22
# root 表示服务器用户名
# 192.168.14.147 表示服务器IP
# -p 后面是指端口号,一般默认22 可不写
# 回车输入密码即可登录
cd 目录切换命令
cd ~或 cd 跳转到当前用户的家目录 \
如果是root用户,cd ~ 相当于 cd /root
如果是普通用户,cd ~ 相当于cd /home/当前用户名
> cd ~
> cd
cd ..或cd../ 返回上层目录
cd - 切换到上一个所在目录
cd / 跳转到根目录(任何位置直接跳转到根目录)
根目录是所有用户共享的目录,如图所示
cd /home 相当于查看有多少普通用户的家目录
因为所有的普通用户的父目录都是home目录
whoami 显示用户名
> whoami
输出:
root
pwd 显示当前目录位置
which查找可执行的文件路径
which 查询目标
例:
> which nginx
输出:
/usr/sbin/nginx
whereis查看软件安装路径
whereis nodejs
目录操作
mkdir 创建目录
mkdir 目录名
rmdir删除空目录
如果此目录中有文件则不允许删除
rmdir 目录名
ls 查看当前目录信息
建议使用简写
ls -l or ll
# ll 是简写,以单位字节显示不含隐藏的所有文件和目录
ls -lh or ll -h
# ll -h 是简写,以单位易读显示不含隐藏的所有文件和目录
tree查看文件树
find查找目录
find 目录 参数
find .列出当前目录及子目录下所有文件和文件夹find /opt -name "*.txt"在/opt目录下查找以.txt结尾的文件名find /opt -iname "*.txt"同上,但忽略大小写find . ( -name "*.txt" -o -name "*.js" )或find . -name "*.txt" -o -name "*.js"当前目录及子目录下查找所有以 .txt 和 .js 结尾的文件
查看软件安装目录
find / -name nodejs
或者通过which(Which命令是通过 PATH环境变量查找可执行文件路径,用于查找指向这个命令所在的文件夹)
which nodejs
cp复制目录
# cp 命令可以拷贝目录、文件、压缩包等,另外拷贝文件和压缩包不用带 -r
cp -r 目录名 目录拷贝的目标位置 # -r 代表递归拷贝
mv目录移动/改名
语法:
mv 原目录名 新目录名/目录新位置
例:
> mv box box2 :修改box为box2
> mv box ../ :移动box到上层目录
rm删除目录
rm -r 目录/文件/压缩包 / rm -rf 目录/文件/压缩包
- -r 递归删除所有目录和文件<终端有提示>
- -rf 强制删除,请谨慎使用
> rm -r box
> rm -rf box
文件操作
touch新建文件
touch 文件名
例:
touch test.txt
mv文件移动/改名
mv 原文件名 新文件名/文件新位置
cp复制文件
cp -r 文件名 文件拷贝的目标位置
cat查看文件内容
cat 文件名
例:
cat test.txt
vim修改文件内容
vi 是 Visual interface 的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。
- vi可以看做成我们Windows下的记事本
- vim 即
Vi IMproved,vi 克隆版本之一
vim
vim 文件 -> 进入文件 -> 命令模式 -> 按 i / a 进入编辑模式 -> 编辑文件 -> 按 Esc 进入底行模式 -> 输入 :wq / :q!
注解:
- 输入 :wq 代表写入内容并退出即保存
- 输入 :q! 代表强制退出不保存
使用Vi来编辑文件:
Vi有三种模式:
4.1普通模式
G用于直接跳转到文件尾ZZ用于存盘退出ViZQ用于不存盘退出Vi/和?用于查找字符串n继续查找下一个yy复制一行p粘帖在下一行,P粘贴在前一行dd删除一行文本x删除光标所在的字符u取消上一次编辑操作(undo)
4.2插入模式
在 Normal 模式下输入插入命令 i、 a 、 o进入insert模式。用户输入的任何字符都被vim当做文件内容保存起来,并将其显示在屏幕上。
- 在文本输入过程中,若想回到Normal模式下,按 Esc 键即可。
4.3命令行模式
Normal 模式下,用户按冒号 :即可进入 Command 模式,此时 vim 会在显示窗口的最后一行 (屏幕的最后一行) 显示一个 “:” 作为 Command 模式的提示符,等待输入命令。
:w保存当前编辑文件,但并不退出:wnewfile 存为另外一个名为 “newfile” 的文件:wq用于存盘退出Vi:q!用于不存盘退出Vi:q用于直接退出Vi (未做修改)
设置Vi环境:
- :set autoindent 缩进,常用于程序的编写
- :set noautoindent 取消缩进
- :set number 在编辑文件时显示行号
- :set nonumber 不显示行号
- :set tabstop=value 设置显示制表符的空格字符个数
- :set 显示设置的所有选项
- :set all 显示所有可以设置的选项
4.4Vi练习题
在用户主目录下,执行vi程序,编辑文件install.log;移动光标到第10行,第五个字符;按大写字母G,达到文件末尾;不存盘退出;
在用户主目录下,执行vi程序,编辑文件install.log;用/命令查找字符串sudo,复制包含字符串sudo的行
在用户主目录下,执行vi程序,编辑文件install.log;进入命令模式,设置显示行号;用?命令查找字符串openssh,用命令n查找下一个
3.2文件打包和压缩命令
在Windows操作系统下,我们会使用WinRAR或者快压等等的压缩软件来进行压缩或者解压。
在Linux下当然也存在压缩或解压的操作咯,下面我们就来学习一下在Linux下是怎么压缩和解压的!
压缩的方式也是有好几种,我们常用的有下面这三种:
- gzip
- bzip2
- tar
常用的压缩的命令就有:
gzip filenamebzip2 filenametar -czvf filename
常用的解压命令有:
gzip -d filename.gzbzip2 -d filename.bz2tar -xzvf filename.tar.gz
管道符
-
命令1的正确输出会作为命令2的操作对象
-
命令1|命令2
ls /etc/ | more netstat -an | grep ESTABLISHED | wc -l 例如:yum list | grep nginx
grep 查看
grep 命令介绍
grep 查找文件里符合条件的字符串,常与管道符|、cat、ps一起使用;主要用于查找文件中符合条件的字符串、统计文件中符合条件的字符串行数、grep 不显示自身进程
grep 常用命令参数
-c:统计符合字符串条件的行数
-v:显示不包括文本的所有信息
grep 常用命令
过滤test.txt文件中hello内容
grep hello test.txt
说明:
- hello 关键字
- test.txt 文件名
统计test.txt中hello内容的行数
grep -c hello test.txt
说明:
- hello 关键字
- test.txt 文件名
-c统计符合字符串条件的行数
grep、cat、管道符配合使用
cat test.txt |grep hello
说明:
过滤test.txt文件中hello内容
- hello 关键字
- test.txt 文件名
cat打印文件内容|管道符,将一个命令的输出作为另外一个命令的输入
查看nginx在yum包管理器中的名字
yum list | grep nginx
yum 安装和卸载软件
yum install nginx
yum install git # git 安装
使用yum安装和卸载软件,有个前提是yum安装的软件包都是rpm格式的。
9、安装wget(迅雷)\
yum install -y wget
yum卸载命令\
yum erase 安装包名称
yum删除命令\
yum remove 安装包名称
3.列出所有可更新的软件清单\
yum check-update
4.列出所有已安装的软件包\
yum list installed
yum search 查找对应可以安装的软件包
yum search nodejs
Linux查看Yum的安装目录及包目录 www.jianshu.com/p/585ef52ce…
curl 下载(文件传输)
安装nvm: curl -o- raw.githubusercontent.com/nvm-sh/nvm/… | bash 返回html: curl www.baidu.com
wegt 下载安装
安装nvm: wget -qO- raw.githubusercontent.com/nvm-sh/nvm/… | bash
curl和wegt区别
www.cnblogs.com/lsdb/p/7171… curl和wget基础功能有诸多重叠,如下载等。
非要说区别的话,curl由于可自定义各种请求参数所以在模拟web请求方面更擅长;wget由于支持ftp和Recursive所以在下载文件方面更擅长。类比的话curl是浏览器,而wget是迅雷9。
- 下载文件
curl -O http://man.linuxde.net/text.iso #O大写,不用O只是打印内容不会下载
wget http://www.linuxde.net/text.iso #不用参数,直接下载文件
- 下载文件并重命名
curl -o rename.iso http://man.linuxde.net/text.iso #o小写
wget -O rename.zip http://www.linuxde.net/text.iso #O大写
- 断点续传
curl -O -C - http://man.linuxde.net/text.iso #O大写,C大写
wget -c http://www.linuxde.net/text.iso #c小写
- 限速下载
curl --limit-rate 50k -O http://man.linuxde.net/text.iso
wget --limit-rate=50k http://www.linuxde.net/text.iso
- 显示响应头部信息
curl -I http://man.linuxde.net/text.iso
wget --server-response http://www.linuxde.net/test.iso
- 同时打印请求头和响应头
curl -v http://man.linuxde.net/text.iso
curl http://man.linuxde.net/text.iso --trace-ascii /dev/stdout
wget -d http://www.linuxde.net/test.iso
wget利器--打包下载网站
wget --mirror -p --convert-links -P /var/www/html http://man.linuxde.net/
ps 查看进程
ps -ef | grep node
grep、ps、管道符配合使用
ps -ef|grep ssh
说明:
过滤ssh进程信息
ps打印进程信息ssh过滤关键字|管道符,将一个命令的输出作为另外一个命令的输入
去掉grep自身进程
ps -ef|grep ssh|grep -v grep
说明:
过滤ssh进程信息,并去除最后一行的grep信息
ps打印进程信息ssh过滤关键字|管道符,将一个命令的输出作为另外一个命令的输入-v显示排除grep关键字的所有信息
nohup Linux 上Node项目一直保持启动状态
sudo命令
Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。 使用权限:在 /etc/sudoers 中有出现的使用者。