Linux常用命令及快捷键
一、快捷键
以下快捷键,都是一些常用的,记住这些命令,你的工作效率就会大大提升。
-
ctrl + a :光标跳到行首。
-
ctrl + e :光标跳到行尾。
-
ctrl + d :后删一个字符;退出会话,类似于 exit 。
-
ctrl + k :剪切光标后到行尾的所有内容(可以当作清除用)
-
ctrl + u :剪切光标前到行首的所有内容(可以当作清除用)
-
ctrl + w :剪切光标前的单个单词,以空格分隔(可以当作清除用)
-
ctrl + y :粘贴剪切的内容。
-
ctrl + r :反向搜索历史命令,实现快速匹配。(特别推荐,避免了低效的 ↑↓ 键切换历史命令。)
-
ctrl + s :暂时冻结当前 shell 的输入(原来还有这个命令,之前触发过这个操作,我还以为是 shell 卡住了。。。)。
-
ctrl + q :解冻当前 shell 的输入。
-
ctrl + ←、→ :光标左右移动一个单词。
-
ctrl + l :清屏。
-
ctrl + shift + r :xshell 快速连接会话。
-
alt + r :使 xshell 会话透明化(这样好方便你抄写命令)
二、常用命令
脚本编程常用命令:
-d file 检查file是否存在并是一个目录
-e file 检查file是否存在
-f file 检查file是否存在并是一个文件
-r file 检查file是否存在并可读
-s file 检查file是否存在并非空
-w file 检查file是否存在并可写
-x file 检查file是否存在并可执行
-O file 检查file是否存在并属于当前用户所有
-G file 检查file是否存在并且默认组与当前用户相同
file1 -nt file2 检查file1是否比file2新
file1 -ot file2 检查file1是否比file2旧
例子:
#!/bin/bash
jump_directory=/home/arthor
if [ -d $jump_directory ]
echo "this is directory"
fi
双括号命令 (( expression ))
符号:
右位移>> & 位布尔和
| 位布尔减 &&逻辑和
| | 逻辑或
val ++ 后增 val - - 后减
++ val 先增 - - val 先减
!逻辑反 ~ 位求反
** 幂运算 << 左位移
例子:
#!/bin/bash
val=10
if (( $val ** 2 > 90 ))
then
echo "success"
fi
1.查找命令
grep****命令
grep 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并
把匹配的行打印出来。
格式: grep [option] pattern [file]
可使用 —help 查看更多参数。
使用实例:
ps -ef | grep sshd 查找指定 ssh 服务进程
ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除 gerp 本身
ps -ef | grep sshd –c 查找指定进程个数
cat a.txt grep | -f b.txt 从文件中读取关键词进行搜索 cat/text cat看文件可能会有乱码,text就不会有这种情况
tail命令
tail -20f 查看日志文件后20行
pwd命令
定位当前文件位置绝对路径
find命令
find 命令在目录结构中搜索文件,并对搜索结果执行指定的操作。
find 默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所
有文件),将它们全都显示在屏幕上。
实际参数很多,可使用 —help 查看。
使用实例:
find . -name “*.log” -ls 在当前目录查找以.log 结尾的文件, 并显示详细信息。
find /root/ -perm 777 查找/root/目录下权限为 777 的文件
find . -type f -name “*.log” 查找当目录,以.log 结尾的普通文件
find . -type d | sort 查找当前所有目录并排序
find . -size +100M 查找当前目录大于 100M 的文件
which命令
which 命令的作用是在 PATH 变量指定的路径中,搜索某个系统命令的位置,
并且返回第一个搜索结果。
使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪
一个位置的命令。
使用实例:
which pwd 查找 pwd 命令所在路径
/bin/pwd
which java 查找 path 中 java 的路径
/root/apps/jdk1.8.0_65/bin/java
which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档, 所以,
不同的 PATH 配置内容所找到的命令会不一样
2.添加用户与用户组命令
添加普通用户
useradd hadoop # 这个就表示我们创建了一个普通用户
passwd hadoop # 表示我们需要给hadoop这个普通用户分配一个密码,密码需要自己设置
添加用户组
groupadd storm 表示我们自己添加了一个storm的组
3.su与sudo切换用户
su的使用
切换用户:linux当中可以使用su来切换不同的用户角色
su root 表示我们需要切换成其他用户,需要使用密码
sudo的使用
sudo 是为所有想使用 root 权限的普通用户设计的。可以让普通用户具有临
时使用 root 权限的权利。只需输入自己账户的密码即可。当然这个普通用户必
须在/etc/sudoers 文件中有配置项、才具有使用 sudo 的权利。
没有配置权限之前,普通用户无法进行 root 权限操作
使用 root 用户编辑/etc/sudoers 文件,给普通用户授权
命令行输入 visudo,打开/etc/sudoers 文件,加入如下的内容,保存。
hadoop ALL=(ALL) ALL
这样普通用户就可以使用 sudo 执行 root 权限的命令了。
如果想要更加精准的控制,就需要理解配置中的含义:
例如,我们想让 hadoop 用户在 node-23 主机上以 allen 的身份执行 kill 命令, 就这样编写配置文件:
hadoop node-23=(allen) /bin/kill
案例:只允许 hadoop 用户以 root 身份在 node-23 上执行 ls 、 cat 命令,
并且执行时候免输入密码。
配置文件中:
hadoop node-23=NOPASSWD: /bin/ls, /bin/cat 执行非 ls 、 cat 命令也会禁止。而 cat 命令就可以执行。
4.linux常见的权限管理
chown -R hadoop:hadoop abc.txt 改变某个文件或者文件夹的所属的用户以及用户组
第一个参数 -R 表示我们递归的进行改变
第二个参数 hadoop:hadoop 表示我们的用户以及用户组
第三个参数:我们需要改变的文件或者文件夹
chmod 改变文件的执行权限
chmod 777 abc.txt 表示给某个文件赋予所有人的所有权限
n 有关权限代号的部分,列表于下:
r:读取权限,数字代号为"4"。
w:写入权限,数字代号为"2"。
x:执行或切换权限,数字代号为"1"。
-:不具任何权限,数字代号为"0"。
5.系统服务管理
service iptables status 查看防火墙状态、
service iptables stop 关闭防火墙、
service – status -all 查看系统所有的后台服务进程
service 进程名称 start 开启进程服务
service 进程名称 stop 停止进程服务
service 进程名称 restart 重启进程服务
chkconfig iptables on 配置防火墙开启启动
chkchonfig iptables off #配置防火墙开启关闭
6.网络管理
修改主机名 vi /etc/sysconfig/network
修改ip地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改max地址 vi /etc/udev/rules.d/70-persistent-net.rules
域名映射:vim /etc/hosts
7.网络端口的监听 netstat -nlpt 查看所有的监听的端口
8.编辑文件下状态下 :set nu 显示行号 非编辑文件状态下 / +搜索的关键字
df -lh 查看linux磁盘挂载路径
\9. yum -y install lrzsz 下载之后可以直接向linux上面拉东西进去。
10.关闭虚拟机命令 shutdown -h now 重启虚拟机命令 reboot -h now
11 curl ipinfo.io 获取外网ip地址
12 - 单引号:不处理任何变量和命令
【案例】echo ‘Welcome $NAME, the date is date ’
- 双引号:处理变量但不处理命令
【案例】echo “Welcome $NAME, the date is date “
- 反引号:把引号中的每个单词作为一个命令,如果是变量则先求值然后作为一个命令处理
ow 重启虚拟机命令 reboot -h now
11 curl ipinfo.io 获取外网ip地址
12 - 单引号:不处理任何变量和命令
【案例】echo ‘Welcome $NAME, the date is date ’
- 双引号:处理变量但不处理命令
【案例】echo “Welcome $NAME, the date is date “
- 反引号:把引号中的每个单词作为一个命令,如果是变量则先求值然后作为一个命令处理
【案例】echo “Welcome $NAME, the date is date
“