linux命令
https://vimjc.com/vimrc-config.html ---Vim入门级基础配置-Vim入门教程
0、curl www.baidu.com 请求web服务器 返回html
https://www.cnblogs.com/fan-gx/p/12321351.html --参考资料
curl 发送POST请求
curl -H "Content-Type: application/json" -X POST -d '{"user_id": "123", "age":10}' "http://192.168.0.1:8081/test"
参数 内容
-H 请求头
-d POST内容
-X 请求协议
get 请求
-G
参数用来构造 URL 的查询字符串。
curl -G -d 'q=kitties' -d 'count=20' https://google.com/search
上面命令会发出一个 GET 请求,实际请求的 URL 为https://google.com/search?q=kitties&count=20
。如果省略--G
,会发出一个 POST 请求。
如果数据需要 URL 编码,可以结合--data--urlencode
参数。
curl -G --data-urlencode 'comment=hello world' https://www.example.com
1-网络ping不通 解决方案--https://blog.csdn.net/qq_34532187/article/details/82145944 -------或者-直接桥接 物理网络 简单粗暴
https://blog.csdn.net/abcd5711664321/article/details/80436457
https://www.cnblogs.com/passer101/p/9899202.html
https://www.cnblogs.com/hans_gis/p/10639187.html
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum 选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)
i.如果没有vim命令,则直接用vi命令,或者2-安裝 vim
输入rpm -qa|grep vim 命令, 如果 vim 已经正确安裝,会返回下面的三行代码:
root@server1 [~]
# rpm -qa|grep vim
vim-enhanced-7.0.109-7.el5
vim-minimal-7.0.109-7.el5
vim-common-7.0.109-7.el5
如果少了其中的某一条,比如 vim-enhanced 的,就用命令 yum -y install vim-enhanced 来安裝:
yum -y
install
vim-enhanced
如果上面的三条一条都沒有返回, 可以直接用 yum -y install vim* 命令
yum -y
install
vim*
3-安装错误找不到:404 Not Found,原因估计是yum查找软件包依赖时使用的是过时的缓存,清空更新之后,再次安装软件,问题消失,但不建议如下操作 比较耗时
yum clean all
yum update
A、配置vim
首先我们需要了解vimrc这个文件:vimrc有两个版本,分别为全局版本和用户版本,通过在vi下命令模式下输入【:version】会看到如下图所示的内容
其中系统vimrc文件是全局版本即系统中的公共版本,对其配置后所有用户下的vim编译器均被配置,用户vimrc文件是存在于每个用户的主目录下的私有配置文件。
1、vim /etc/vimrc 打开文件后,按 i 进入编辑模式,然后找一个位置(我是在最后一行加入代码)添加如下代码:
2、set number 设置显示行号,缩写形式:set nu 取消行号尾命令 :set nonu
3、按esc键退出编辑模式,按冒号键 : 输入w保存q退出,及wq保存退出
4 支持中文不乱码:
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
encoding选项用于缓存的文本、寄存器、Vim 脚本文件等;
fileencoding选项是Vim写入文件时采用的编码类型;
termencoding选项表示输出到终端时采用的编码类型。
5、 突出显示当前行
set cursorline
set cul 'cursorline的缩写形式'
6、突出显示当前列
set cursorcolumn
set cuc 'cursorcolumn的缩写形式'
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
关机:一、
1、shutdown -h now --立即关机
2、shutdown -h 10 ---10分钟后关机
3、shutdown -h 20:25 ---20:25关机
4、halt 等同于 shutdown -h now
重启:
1、shutdown -r now ---立即重启
2、shutdown -r +10 ----10分钟后重启(+10、10一样)
3、reboot 等同 shutdown -r now
4、shutdown -c ---------重启关机取消操作
注:不管重启还是关机,首先要执行 sync命令,把内存中的数据同步到磁盘中,查看命令帮助 shutdown --help
退出登录:
1、exit 退出登录
2、clear 清屏
二、
系统目录:
-
/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
-
/boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
-
/dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
-
/etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
-
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
-
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
-
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
-
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
-
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
-
/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
-
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
-
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
-
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
-
/srv:该目录存放一些服务启动之后需要提取的数据。
-
/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
-
/tmp:这个目录是用来存放一些临时文件的。
-
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
-
/usr/bin: 系统用户使用的应用程序。
-
/usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
-
/usr/src: 内核源代码默认的放置目录。
-
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
-
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
- /www:存放服务器网站相关资源,环境,网站的项目
三、常用
绝对路径,以 /开头的都是绝对路径,windows中是已磁盘开头
相对路径,对于当前目录改如何寻找,比如根目录下有user ,home 进入cd home 退出home进入user,则cd ..(返回上一级,再进)/user --则进入user目录,好比进入home目录,想进入user目录
1、cd 切换目录
2、cd .. 返回上一级目录,点点表示返回上级目录,返回上上级就是 ../..
3、cd ./ 返回当前目录,点扛表示返回到当前目录
4、cd / 返回跟目录,杠表示跟目录
四、
1、进入某个目录后,肯定需要查看当前目录的列表 ls
2、ls -a 查看全部文件,包括隐藏的文件
3、ls -l 查看文件详情信息,权限,大小等
4、ls -al 如果想看隐藏,又想看明细,则a与l 组合
5、当屏幕输出内容超过一屏时,可以使用管道(|)结合more命令来进行分屏显示,如:
ls | more 按回车键,可向上刷一行 按空格键,可刷下一屏
ls | less 按q退出
00、cd 进入某个目录后,肯定需要 ll 查看所有文件,等同于 ls -l
五、
1、pwd 查看当前所在的目录
2、cd ~ 进入用户的家目录
如果是root用户,cd ~ 相当于 cd /root
如果是普通用户,cd ~ 相当于cd /home/当前用户名
六、目录、文件
1、mkdir 目录名称,递归创建目录:mkdir -p test1/test2/test3
2、rmdir 要删除的目录名称,如果目录下有子目录,则不可删,不管里面有没有文件,如果要删除该目录,必须退出当前目录
3、rmdir -p test1/test2 强制删除test1包括旗下的子目录,如果是rmdir test1/test2 ,则只删除test2目录
4、只针对目录,如果目录下有文件,则不能删,得先删除文件
5、mv 旧名字 新名字 移动(剪切)当移动到同一目录时,则为重命名文件 ,如 mv my1.txt my2.txt
6、touch 文件名 或 vim 文件名 ,如 touch 1.txt vim 1.txt 创建文件
7、cat -n 文件名 顺下来查看文件 ,倒过来查看文件 tac 文件名 ,如 cat -n 33.txt tac -n 33.txt ,需代参数-n显示行号,即使vim配置了行号,也不会显示
选项与参数:
-
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-
-E :将结尾的断行字节 $ 显示出来;
-
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-
-T :将 [tab] 按键以 ^I 显示出来;
-
-v :列出一些看不出来的特殊字符
8、echo 66666 >> 33.txt 向文件写入 66666字符串 , 一般采用 vim 写入
9、head 取出文件前面几行,语法:head [-n number] 文件
选项与参数:
-n 后面接数字,代表显示几行 ,默认显示前10 行: head -n 20 /etc/csh.login
选项:
-n #显示文件前n行
-c #显示文件前几个字符
10、tail 取出文件后面几行,语法:tail[-n number] 文件
选项与参数:-n 后面接数字,代表显示几行 ,默认显示前10 行: tail-n 20 /etc/csh.login
11、more /etc/csh.login 一页一页翻动 more 与 less 不好用
待输按键,翻页全完成后就会退出
-
空格键 :代表向下翻一页;
-
Enter :代表向下翻『一行』;
-
/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
-
:f :立刻显示出档名以及目前显示的行数;
-
q :代表立刻离开 more ,不再显示该文件内容。
-
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
12、less /etc/csh.login
-
空格键 :向下翻动一页;
-
[pagedown]:向下翻动一页;
-
[pageup] :向上翻动一页;
-
/字串 :向下搜寻『字串』的功能;
-
?字串 :向上搜寻『字串』的功能;
-
n :重复前一个搜寻 (与 / 或 ? 有关!)
-
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
-
q :离开 less 这个程序;
9、 删除文件
rm 文件名 提示后输入 y 否则输入n
rm -f 文件名 无提示强删 mr -f 1.txt 2.txt 3.txt --多删
rm -r 将指定目录及所有子集,递归删除 ,一直递归提示删除
rm -rf 递归强删,不提示
rmdir 文件夹名 --删除文件夹,如有文件在里头,不可删
七、
加感叹号为强制
保存,但不退出vi :w
保存并退出vi :wq
退出vi,但不保存更改 :q!
用其他文件名保存 :w filename
在现有文件中保存并覆盖该文件 :w! filename
八、vim普通模式下:
1、使用命令 0
或 |
可跳转光标到当前行的行首
2、使用命令 $
跳转光标到当前行的行尾
3、0nl
或 n|
跳转到当前行的第 n 列,跳转到当前行的第几列,如: 03l(L) 或08l ,或 5| , 7| ,3|
4、gg 跳转到当前文件的第一行
5、大G 跳转到当前文件的最后一行
6、vim命令行模式下,使用 :0
或 :1
跳转光标到当前文件的首行
7、vim命令行模式下,使用 :$
跳转光标到当前文件的尾行。
8、vim命令行模式下,使用命令 :n
跳转光标到当前文件的第 n 行。如 冒号 :8, :5
9、数字+空格 是跳到当前行的第几列
10、数字+回车 是跳到第几行
11、u 是撤销上一步,U
(大写) 无论当前行修改了多少次,撤销当前行的所有修改
12、文件内查找:
命令模式下,光标闪动下 输入
/ 要查找的字符串 回车 ,按住小 n 以光标向下查找,按住大 N 以光标向上查找,
? 要查找的字符串 回车 以光标向上找,使用 :noh来消除搜索的高亮,取消查找
13、命令模式 大写 ZZ 如果文件没有改动则离开,如果有改动则自动保存后离开
https://cloud.tencent.com/developer/article/1552708 -----参考 复制粘贴
九、创建用户
1、useradd -m red666 创建用户
-
选项 :
-
-c comment 指定一段注释性描述。
-
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-
-g 用户组 指定用户所属的用户组。
-
-G 用户组,用户组 指定用户所属的附加组。
-
-m 使用者目录如不存在则自动建立。
-
-s Shell文件 指定用户的登录Shell。
-
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
2、passwd red666 回车后输入密码 创建密码
-
-l 锁定口令,即禁用账号。
-
-u 口令解锁。
-
-d 使账号无口令。
-
-f 强迫用户下次登录时修改口令。
- passwd -l red666 锁定某一用户,使其不能登录
- passwd -d red666 将用户的口令删除,这样用户下一次登录时,系统就不再允许该用户登录了
3、su red666 或 sudo red666 切换用户
4、userdel -r red666 删除用户,常用的选项是 -r,它的作用是把用户的主目录一起删除。
5、usermod 选项 用户名 ,常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
5-1、 usermod -G groupName userName 将用户添加进组,离开原有的组
6、usermod -a -G groupName userName 将用户添加进组,-a 代表 append, 也就是 将自己添加到 用户组groupA 中,而不必离开 其他用户组。
十、添加用户组:
groupadd 选项 组名 ,如 groupadd user01 ----组的组标识号是在当前已有的最大组标识号上自增
选项:
-
-g GID 指定新用户组的组标识号(GID)。
-
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
groupadd -g 10086 user02 ----向系统中增加一个新组user02 ,组标识号10086
groupmod 选项 组名 ---修改组名
选项:
-
-g GID 为用户组指定新的组标识号。
-
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-
-n新用户组 将用户组的名字改为新名字
groupdel 组名 删除用户组
注:
用户组放于 /etc/group文件中
Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,是用户管理工作涉及的最重要的一个文件
真正的加密后的用户口令字存放到 /etc/shadow文件中
# 创建权限为 rwx--x--x 的目录。
[root@red666 home]# mkdir -m 711 test2
文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4 w:2 x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx---] 分数则是:
-
owner = rwx = 4+2+1 = 7
-
group = rwx = 4+2+1 = 7
-
others= --- = 0+0+0 = 0
-
3、chmod:更改文件9个属性 读写可执行权限
chmod [-R] xyz 文件或目录 chmod 770 test2 参数-R 是递归
-
修改文件对应的拥有者,组,其他用户权限chmod http://blog.itpub.net/31551496/viewspace-2213381/ -----参考
比如有一个文件test.txt 修改所属者权限可读可写可执行,所属组可读可写,其他用户仅可读 chmod 764 test.txt 如果想要递归设置test目录下的所有文件 chmod -R 764 ./tes
-
使用whoami 查看当前登陆用户所属的组
在终端输入whoami
查看当前登陆用户组下的所有成员
只需在终端输入groups即可
查看所有的组以及对应的组id
cat /etc/groups
-
查看用户所属的组(可以不是当前登陆用户)
在终端输入groups 用户名
修改文件的所属组chgrp
单修改一个文件的所属组
十、删除
1、x 小x 删除前面,大X 删除后面 ,或按 delete键删除
2、dd 小dd删除光标当前行所有数据
3、ndd 删除光标往下第多少行的数据,从光标所在行算起 ,如 6dd 2dd
十一、复制、粘贴
1、yy 复制当前游标所在行的所有数据
2、nyy 复制光标往下第多少行的数据,从光标所在行算起 ,如 6yy 2yy
3、p 粘贴
4、复制文件
cp 1.txt .. 将当前目录的1.txt文件复制到上级目录下
cp /home/test/1.txt / home/demo/1.txt 将home目录下的test目录下的1.txt 复制到 home目录下的demo目录下
复制目录时,使用-r选项即可递归拷贝,如下:cp -r dir1 dir2
如: cp -r mytest ./mydemo 将当期目录mytest及子集 复制到 当前目录demo里头
选项与参数:
-
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-
-r:递归持续复制,用於目录的复制行为;(常用)
-
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身。
-
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-
-u:若 destination 比 source 旧才升级 destination !
5、mv 旧名字 新名字 移动(剪切)当移动到同一目录时,则为重命名文件 ,如 mv my1.txt my2.txt
6、mv 1.txt ../test/ 剪切文件,将1 1.txt文件 剪切到上级目录下的test目录下 ,
7、mv 1.txt .. 剪切文件,将 1.txt 文件 剪切到上级目录下
十二、
1、Ctrl +f 向下整屏翻页
2、Ctrl +b 向上整屏翻页
3、ctrl +d 向下半屏翻页
4、ctrl +u 向下半屏翻页
十三、文件查找
1、grep 命令用于对文本及内容进行搜索,
a-1、grep -r my.txt 当前目录下查找包含字符串"my.txt"的所有文件及内容
a-2、grep -rn my.net
b-1、grep abc my.txt 查找文件my.txt 中包含abc的字符
b-2、grep abc my* 查找名为my的文件中包含abc的字符
b-3、grep -n abc my* 查找名为my的文件中包含abc的字符 连同行号一起输出
b-4、grep -ni aBc my* 查找名为my的文件中包含aBc的字符 连同行号一起输出, i忽略大小写
参数
-b 将可执行文件(binary)当作文本文件(text)来搜索
-c 仅显示找到的次数
-n 显示行号
-r 是递归查找
-R 查找所有文件包含子目录
-i 忽略大小写,默认是区分大小写的
-l 只列出匹配的文件名
-L 列出不匹配的文件名
find 基本格式:find path expression
1.按照文件名查找
(1)find / -name httpd.conf #在根目录下查找文件httpd.conf,表示在整个硬盘查找
(2)find /etc -name httpd.conf #在/etc目录下文件httpd.conf
(3)find /etc -name '*srm*' #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm'的文件
(4)find . -name 'srm*' #表示当前目录下查找文件名开头是字符串‘srm'的文件
参数
-name name, -iname name 文件名称符合 name 的文件。iname 会忽略大小写
-size n 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c 文件类型是 c 的文件。
-type 文件类型:根据文件类型查找
-
f:普通文件
-
d:目录文件
-
l:符号链接文件
-
s:套接字文件
-
b:块设备文件
-
c:字符设备文件
-
p :管道文件