Linux常用命令
- 目录命令:增加目录
- mkdir [/路径/]目录名
- 删除目录rmdir [/路径/]目录名
- 改变目录
- 复制:cp 原路径 新路径 cp -r 复制文件夹
- 移动/重命名:mv 原路径 新路径
- 查看目录:
- 查看当前路径:pwd
- 切换到路径:cd
- 查看目录内容:ls
-
- -a展示所有文件(包括隐藏文件)
- -A(不包括当前目录.和父目录..)
- -l展示所有文件的详细信息
- -R递归查找所有子功能
-
- 文件命令
- 创建文件
- touch [/路径/]文件名
- 删除文件
- rm [-r/i/f ][/路径/]文件名
- 改变文件
(1)同改变目录cp,mv
- 查看文件
- ls
- vi
- 文件内容命令
- 查看文件内容
- cat 文件名
- head [-n] 文件名
- tail [-n] 文件名
- 增加文件内容
- 修改文件内容
- 删除文件内容
- vi编辑器
- 模式:
- 查看模式:按a,A,i,I,o,O,insert键进入编辑模式,按:,/进入末行模式
- 编辑模式:按ESC键回到查看模式
- 末行模式:按ESC或者山删掉末行代码回到查看模式
- 快捷键:
- 快速定位:首行gg、末行shift+g、第n行ngg
- 进入编辑模式:
- 在光标后插入:a
- 在光标前插入:i
- 定位到行尾插入:A
- 定位到行头插入:I
- 在下一行插入:o
- 在上一行插入:O
- 复制:nyy
- 删除/剪切:ndd
- 粘贴:p
- 撤销上一次:u
- 替换:r:替换光标所在的字符,R:一直替换,直到ESC退出
- 末行模式命令:
- 退出::q
- 保存::w 保存退出::wq或者:x
- 强制:!
- 显示行号::set nu 不显示::set nonu
- 查找字符串:向下查找:/字符串 向上查找:?字符串
- 继续查找下一个:n,继续查找上一个:N
- 批量注释:%s/^/#/g
- 批量取消:%s/#//g
- 替换字符串::s/要查找的字符串/替换后的字符串/g
- 用户管理:
- 用户家目录:~
- 创建用户:useradd 用户名
- 修改密码:passwd 用户名
- 切换用户:su 用户名
- 删除用户:userdel 用户名
- 权限管理
- drwxr-xr-x 文件夹的默认权限 755
- -rw-r--r-- 文件的默认权限 644
首位标记文件类型:d是目录 -是文件 l是软连接
后9为切割为3个部分,分别代表用户自身(u),用户所在组成员(g),其他组成员(o)
Rwx:读、写、执行
改变文件/文件夹的归属 chown
Chown 用户名:组名 文件名 把文件的归属用户改才对应的用户名,
归属组改才对应的组名
- 主机名和主机列表
- 默认的主机名是localhost.localhostDomain
- 修改主机名的两种方式:
- vi /etc/hostname 在其中把[主机名]改成[新主机名](需要重启才能生效)
- hostnamectl set-hostname 新主机名
- 主机列表vi /etc/hosts在其中加上:主机ip地址 主机名
- ssh 用户名@主机名/ip地址:连接到对应的主机
- 添加互信:(每台机器都要对其他机器做下面的动作)
- 生成密钥:ssh-keygen
- 复制到密钥校验文件:cat .ssh/id_rsa.pub > .ssh/authorized_keys
- 传输到需要互信的机器:ssh-copy-id -i .ssh/id_rsa.pub -p22 用户名@主机名
- 进程管理:
- 查看所有进程ps -ef ps -aux
- 查看某个应用ps -ef | grep 应用名
- 杀进程kill 进程pid,如需强制杀kill -9 pid
- 软件安装
- 解/压包tar:
- 压包:
- tar -zcvf 打包后的名称 打包前的目录
- gzip 源文件 压缩为.gz文件 源文件会消失
- 如果想保留源文件 使用命令gzip -c 源文件 > 压缩文件
- 解包:
- tar -zxvf 需要解的包 -C 想要解压到的目录
- Linux解压缩保留源文件的方法:gunzip -c filname.gz > filename
- 解压zip
unzip zipped_file.zip
unzip metallic-container.zip -d my_zip
- 在线安装yum
- 包安装rpm
- 容器安装docker
- 远程传输
1.scp 文件路径 目标主机:/目标路径
- 搜索查看grep
grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符号所指定的范式样本,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或者所给予的文件名为-,则grep指令会从便准输入设备读取数据。
- 常与管道符|一同使用
- grep test test*#查找前缀为“test”的文件包含“test”字符串的文件
- grep test *file#查找后缀由file字样的文件包含test字符串的文件,并打印出该字符串的行。
- grep -r update /etc/acpi#以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi及其子目录(如果存在子目录的话)下所有文件中包含字符串“update”的文件,并打印出该字符串所在行的内容。
- 查找:find
find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录命。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并将查找到的子目录和文件全部进行显示。
- find . -name “*.c”#将当前目录及其子目录下所有延伸档名是c的文件列出来
- find . -type f#将当前目录及其子目录中所有一般文件列出
- find . -ctime -20#将目前目录及其子目录下所有最近20天内更新过的文件列出
- find /var/log -type f -mtime +7 -ok rm {} \;#查找/var/log目录中更改事件在7天以前的普通文件,并在删除之前询问它们
- find . -type f -perm 644 -exec ls -l {} \;查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的问及那
- find / -type f -size 0 -exec ls -l {} \;为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径
- 日期:date
date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲现实的格式,格式设定为一个加号后接数个标价。
- date
- date ‘+%D’#显示完整的时间
- date ‘+%T’#显示日期,年份用四位数表示
- date ‘+%x’#显示数字日期,年份两位数表示
- date ‘+%X’#显示24小时的格式
- 计算数字:wc
wc命令用于计算字数。
利用wc指令我们可以计算文件的byte数、字数、或是列数,若不指定文件名称或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据
- -c或-bytes或--chars只显示Bytes数
- -l后--lines只显示行数
- -w或--words只显示字数
- --help在线帮助
- --version显示版本信息
- 在默认情况下,wc将计算指定文件的行数、字数,以及字节数。
- 利用脚本来处理文本文件:sed
sed命令是利用脚本来处理文本文件。sed可以依照脚本的指令来处理、编辑文本文件。sed主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
- sed -e 4a\newLine testfile#在testfile文件的第四行后添加一行,并将结果输出到标准输出
- nl /etc/passwd | sed ‘2,5d’#将/etc/passwd的内容列出并且列印行号,同时,将第2~5行删除,sed的动作为’2,5d’,d就是删除,原本应该是要下达sed -e,没有-e也行,sed后面接的动作,务必以两个单引号括住
- nl /etc/passwd | sed ‘3,$d’删除第3到最后一行
- nl /etc/passwd | sed ‘2a drink tea\drink beer?’在第二行后加入两行字,drink tea和drink beer?
- nl /etc/passwd | sed ‘2,5c No 2-5 number’将第2-5行的内容取代为No 2-5 number
- nl /etc/passwd | sed -n ‘5,7p’列出文件内第5-7行
- nl /etc/passwd | sed ‘/root/p’搜索/etc/passwd有root关键字的行,如果root找到,除了输出所有行,还会输出匹配行。
- nl /etc/passwd | sed -n ‘/root/p’使用-n的时候将只会打印包含模板的行。
- nl /etc/passwd | sed -n ‘/root/d’删除/etc/passwd所包含root的行,其他行输出
- 建立同步链接ln
当我们需要在不同的目录,用到相同的文件时,只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它即可,不必重复的占用磁盘空间。
Linux文件系统中,有所谓的链接(link),可以视其为档案的别名,链接可以为分两种:硬链接(hard link)与软链家(symbolic link),硬链接的意思是一个档案可以有多个名称,而软连接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,软链接可以跨越不同的文件系统。无论是硬链接还是软链接都不会将园本的档案复制一份,只会占用非常少量的磁碟空间。0
- 查找文件命令which
which指令会在环境变量中$PATH设置的目录里查找符合条件的文件。
语法:which [文件...]
- 查询单词look
look指令用于英文单字的查询。仅需给与它欲查询的字首字符,它会显示所有开头字符串符合该条件的单字。
-f忽略字符大小写差别
look L testfile查找在testfile文件中以字母L开头的所有的行
- 查找文件whereis
该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。
whereis bash查找“bash”的位置
whereis -b bash显示bash命令的二进制程序
whereis -m bash显示bash命令的帮助文件
which这条命令主要是用来查找系统PATH目录下的可执行文件。whereis可以用来查找二进制命令、源文件、man文件。与which不同的是这条命令可以是通过文件索引数据库而非PATH来查找的,所有查找的面比which要广。
- 显示目录或文件所占用的磁盘空间du
- 脚本编程Bash Shell
- 每一个shell都要有头的定义,正常的#!/bin/bash
- 打印:echo “要打印的东西”
- 定义好的脚本需要加上执行权限:chmod +x 脚本路径
- 三种调用方式:
- 如果在当前目录,则使用./test.sh,绝对路径也可以
- 普通脚本执行:sh 脚本路径
- 指定b shell执行:/bin/bash 脚本路径
- 定义好的脚本需要加上执行权限:chmod +x 脚本路径
- 变量的定义
- 直接赋值法:a=1 b=”abc” arr=(1 2 3 4)
- 引用赋值发:b=$a c=${b}
- 引用命令执行结果的赋值:a=`ls -l`
- 执行变量的运算:b=`expr $a + 1` b=$(($a+1)) b=$[$a+1]
- 判断条件中使用计算:在中括号内侧及运算符两边都要加空格
- 数值型:大于:-gt,小于:-lt,等于:-eq,不等于:-ne
- 字符串型:等于=或== 不等于!=,是否为空:-z 字符串
- If条件语句可省略成:[[ 条件语句 ]] && 结果语句
- 在单引号中不能直接用${a}引用变量
- shell脚本定义函数
- [function] 函数名(){函数体} 可以有return语句,但只能return值类型
- 参数的传递:函数内部的参数列表值取决于调用函数时的参数列表,与脚本的参数无直接影响