Linux常用命令
一.基本日常操作命令
1. 查看当前所在的工作目录的全路径:pwd
2. 查看当前系统的时间:date
date + %Y-%m-%d :就表示年月日
date + %Y-%m-%d --date=“-1 day”:表示当前年月日的前一天(也可以用month或year)
date -s “2016-11-23 12:24”:修改时间(设置时间)
修改时间后,需要写入硬件bios才能在重启之后依然生效hwclock -w
3. 查看有谁在线(哪些人登录到了服务器)
who:查看当前在线
last :查看最近的登录历史记录
last -3 :查看最近3人的登录历史记录
关机/重启
关机(必须用root用户)
shutdown -h now :立刻关机 / halt :立刻关机
shutdown -h +10 :10分钟以后关机
shutdown -h 12:00:00 :12点整的时候关机
重启
shutdown -r now :立刻重启 / reboot :立刻重启
4. 清屏
clear (或用快捷键 ctrl+l)
5. 退出当前进程
ctrl+c (有些程序也可以用q键退出)
6. 挂起当前进程
ctrl+z :进程会挂起到后台
bg ### : 让进程在后台继续执行
fg ### :让进程回到前台
7. echo
相当于java中的System.out.println(......)
[root@localhost bbb]# a="你好"
[root@localhost bbb]#
[root@localhost bbb]# echo a
a
[root@localhost bbb]# echo $a
你好
二.目录操作
1. 查看目录信息
ls / : 查看根目录下的子节点(文件夹和文件)信息
ls -al : -a是显示隐藏文件 -l是以更详细的列表形式显示
ls -l 也可以用ll来表示
2. 切换工作目录
cd /home/hadoop :切换到用户主目录
cd ~ :切换到用户主目录
cd :什么路径都不带,则回到用户的主目录
cd - :回退到上次所在的目录
3. 创建文件夹
mkdir aaa :这是相对路径的写法
mkdir /aaa :这是绝对路径的写法
mkdir -p aaa/bbb/ccc :级联创建目录
4. 删除文件夹
rmdir aaa :可以删除空目录
rm -r aaa :可以把aaa整个文件夹及其中的所有子节点全部删除
rm -rf aaa :强制删除aaa
5. 修改文件夹名称
mv aaa bbb :把名字叫aaa的文件夹修改为叫bbb
但mv本质上是移动
mv 1.txt aaa/ :将当前目录下的1.txt移动到aaa文件夹中去
rename :可以用来批量更改文件名
例如:[root@localhost bbb]# ll
total 0
-rw-r--r--. 1 root root 0 May 22 15:58 1.txt
-rw-r--r--. 1 root root 0 May 22 15:58 2.txt
-rw-r--r--. 1 root root 0 May 22 15:58 3.txt
[root@localhost bbb]# rename .txt .txt.bak *
[root@localhost bbb]# ll
total 0
-rw-r--r--. 1 root root 0 May 22 15:58 1.txt.bak
-rw-r--r--. 1 root root 0 May 22 15:58 2.txt.bak
-rw-r--r--. 1 root root 0 May 22 15:58 3.txt.bak
三.文件操作
1. 创建文件
touch file.1 : 创建一个空文件
echo “hello world” > file.2 :利用重定向“>”的功能,将一条指令的输出结果写入到一个文件中, 会覆盖原文件内容,如果指定的文件不存在,则会创建出来
echo “hello world 2” > >file.2 :将一条指令的输出结果追加到一个文件中,不会覆盖原文件内容
2. vi文本编辑器
最基本用法:vi file.3
首先会进入“一般模式”,此模式只接受各种命令快捷键,不能编辑文件内容
按i键,就会从一般模式进入“编辑模式”,此模式下,敲入的都是文件内容
编辑完成之后,按Esc键退出编辑模式,回到一般模式
再按:,进入“底行命令模式”,输入wq命令,回车即可保存退出
常用快捷键(一般模式下使用):
a 在光标后一位开始插入
A 在该行的最后插入
l 在该行的最前面插入
gg 直接跳到文件的首行
G 直接跳到文件的末行
dd 删除一行
3dd 删除三行
yy 复制一行
3yy 复制三行
p 粘贴
v 进入字符选择模式,选择完成后,按y复制,按p粘贴
ctrl+v 进入块选择模式,选择完成后,按y复制,按p粘贴
shift+v 进入行选择模式,选择完成后,按y复制,按p粘贴
查找并替换(在底行命令模式中输入):
:set nu 显示行号
:set nonu 隐藏行号
:/you 查找文件中出现的you这个关键字,并定位到第一个找到的地方,按n可以定位到下一个匹配位置(按N定位到上一个)
替换操作:
:s/aaa/bbb 查找光标所在行的第一个aaa,替换为bbb
:%s/aaa/bbb 查找文件中所有aaa,替换为bbb
3. 拷贝/删除/移动
cp somefile.1 /home/hadoop/
rm /home/hadoop/somefile.1
rm -rf /home/hadoop/somefile.1
mv /home/hadoop/somefile.1 ../
4. 查看文件内容
cat file :一次性将文件内容全部输出(控制台)
分页查看文件的命令:
more somefile 可以翻页查看, 下翻一页(空格) 上翻一页(b) 退出(q)
less somefile 可以翻页查看,下翻一页(空格) 上翻一页(b),上翻一行(↑) 下翻一行(↓) 可以搜索关键字(/keyword)
跳到文件末尾: G
跳到文件首行: gg
退出less : q
tail -10 install.log 查看文件尾部的10行
tail +10 install.log 查看文件 10-->末行
tail -f install.log 小f跟踪文件的唯一inode号,就算文件改名后,还是跟踪原来这个inode表示的文件
tail -F install.log 大F按照文件名来跟踪
head -10 install.log 查看文件头部的10行
5. 打包压缩
压缩:gzip a.txt/ bzip2 a
解压:gzip -d a.txt.gz/ bzip2 -d a.bz2
打包:将指定文件或文件夹
tar -cvf bak.tar ./aaa
将/etc/password追加文件到bak.tar中(r)
tar -rvf bak.tar /etc/password
6. 解压
tar -xvf bak.tar
7. 打包并压缩
tar -zcvf a.tar.gz aaa/
8. 解包并解压缩
tar -zxvf a.tar.gz
解压到/usr/下
tar -zxvf a.tar.gz -C /usr
9. 查看压缩包内容
tar -ztvf a.tar.gz
zip/unzip
10. 打包并压缩成bz2
tar -jcvf a.tar.bz2
11. 解压bz2
tar -jxvf a.tar.bz2
四.查找命令
1. 常用查找命令的使用
查找可执行的命令所在的路径:which ls
查找可执行的命令和帮助的位置:whereis ls
从某个文件夹开始查找文件:find / -name "hadooop*"
find / -name "hadooop*" -ls
查找并删除:find / -name "hadooop*" -ok rm {} \;
find / -name "hadooop*" -exec rm {} \;
查找用户为hadoop的文件:find /usr -user hadoop -ls
查找用户为hadoop的文件夹:find /home -user hadoop -type d -ls
查找权限为777的文件:find / -perm -777 -type d -ls
显示历史命令:history
2. grep命令
查询包含hadoop的行:grep hadoop /etc/password
grep aaa ./*.txt
查询不包含hadoop的行:grep -v hadoop /etc/passwd
cut截取以:分割保留第七段:grep hadoop /etc/passwd | cut -d: -f7
正则表达包含hadoop:grep 'hadoop' /etc/passwd
正则表达(点代表任意一个字符):grep 'h.*p' /etc/passwd
正则表达以hadoop开头:grep '^hadoop' /etc/passwd
正则表达以hadoop结尾:grep 'hadoop$' /etc/passwd
查找不是以#开头的行:grep -v '^#' a.txt | grep -v '^$'
以h或r开头的:grep '^[hr]' /etc/passwd
不是以h和r开头的:grep '^[^hr]' /etc/passwd
不是以h到r开头的:grep '^[^h-r]' /etc/passwd
正则表达式的一些简单规则:. : 任意一个字符
a* : 任意多个a(零个或多个a)
a? : 零个或一个a
a+ : 一个或多个a
.* : 任意多个任意字符
\. : 转义.
o\{2\} : o重复两次