Linux 命令
我是小白, 我从来没玩过 Linux, 请点这里:
推荐的一个 Git 仓库
我有些基础, 推荐一个快速查询命令的手册, 请点这里:
https://github.com/jaywcjlove/linux-command
大数据成神之路目录
大数据开发基础
Java 基础 | NIO | 并发 | JVM | 分布式 | Zookeeper | RPC | Netty |
---|---|---|---|---|---|---|---|
Java 基础 | NIO | 并发容器 | JVM | 分布式 | zookeeper | RPC | Netty |
必须学会的命令
1.man 和 page
1. 内部命令: echo
查看内部命令帮助: help echo 或者 man echo
2. 外部命令: ls
查看外部命令帮助: ls --help 或者 man ls 或者 info ls
3.man 文档的类型(1~9)
- man 7 man
- man 5 passwd
4. 快捷键:
ctrl + c: 停止进程
ctrl + l: 清屏
ctrl + r: 搜索历史命令
ctrl + q: 退出
5. 善于用 tab 键
2. 常用
说明: 安装 Linux 时, 创建一个 hadoop 用户, 然后使用 root 用户登陆系统
1. 进入到用户根目录
cd ~ 或 cd
2. 查看当前所在目录
pwd
3. 进入到 hadoop 用户根目录
cd ~hadoop
4. 返回到原来目录
cd -
5. 返回到上一级目录
cd ..
6. 查看 hadoop 用户根目录下的所有文件
ls -la
7. 在根目录下创建一个 hadoop 的文件夹
mkdir /hadoop
8. 在 / hadoop 目录下创建 src 和 webRoot 两个文件夹
分别创建: mkdir /hadoop/src
mkdir /hadoop/WebRoot
同时创建: mkdir /hadoop/{src,WebRoot}
进入到 / hadoop 目录, 在该目录下创建. classpath 和 README 文件
分别创建: touch .classpath
touch README
同时创建: touch {.classpath,README}
查看 / hadoop 目录下面的所有文件
ls -la
在 / hadoop 目录下面创建一个 test.txt 文件, 同时写入内容 "this is test"
echo "this is test"> test.txt
查看一下 test.txt 的内容
- cat test.txt
- more test.txt
- Less test.txt
向 README 文件追加写入 "please read me first"
echo "please read me first">> README
将 test.txt 的内容追加到 README 文件中
cat test.txt>> README
拷贝 / hadoop 目录下的所有文件到 / hadoop-bak
cp -r /hadoop /hadoop-bak
进入到 / hadoop-bak 目录, 将 test.txt 移动到 src 目录下, 并修改文件名为 Student.java
mv test.txt src/Student.java
在 src 目录下创建一个 struts.xml
> struts.xml
删除所有的 xml 类型的文件
rm -rf *.xml
删除 / hadoop-bak 目录和下面的所有文件
rm -rf /hadoop-bak
返回到 / hadoop 目录, 查看一下 README 文件有多单词, 多少个少行
- wc -w README
- wc -l README
返回到根目录, 将 / hadoop 目录先打包, 再用 gzip 压缩
分步完成: tar -cvf hadoop.tar hadoop
gzip hadoop.tar
一步完成: tar -zcvf hadoop.tar.gz hadoop
将其解压缩, 再取消打包
分步完成: gzip -d hadoop.tar.gz 或 gunzip hadoop.tar.gz
一步完成: tar -zxvf hadoop.tar.gz
将 / hadoop 目录先打包, 同时用 bzip2 压缩, 并保存到 / tmp 目录下
tar -jcvf /tmp/hadoop.tar.bz2 hadoop
将 / tmp/hadoop.tar.bz2 解压到 / usr 目录下面
tar -jxvf hadoop.tar.bz2 -C /usr/
文件命令
1. 进入到用户根目录
cd ~ 或者 cd
cd ~hadoop
回到原来路径
cd -
2. 查看文件详情
stat a.txt
3. 移动
mv a.txt /ect/
改名
mv b.txt a.txt
移动并改名
mv a.txt ../b.txt
4 拷贝并改名
cp a.txt /etc/b.txt
5.vi 撤销修改
ctrl + u (undo)
恢复
ctrl + r (redo)
6. 名令设置别名(重启后无效)
alias ll="ls -l"
取消
unalias ll
7. 如果想让别名重启后仍然有效需要修改
vi ~/.bashrc
8. 添加用户
- useradd hadoop
- passwd hadoop
9 创建多个文件
- touch a.txt b.txt
- touch /home/{
- a.txt,b.txt
- }
10. 将一个文件的内容复制到里另一个文件中
cat a.txt> b.txt
追加内容
cat a.txt>> b.txt
11. 将 a.txt 与 b.txt 设为其拥有者和其所属同一个组者可写入, 但其他以外的人则不可写入:
- chmod ug+w,o-w a.txt b.txt
- chmod a=wx c.txt
12. 将当前目录下的所有文件与子目录皆设为任何人可读取:
chmod -R a+r *
13. 将 a.txt 的用户拥有者设为 users, 组的拥有者设为 jessie:
chown users:jessie a.txt
14. 将当前目录下的所有文件与子目录的用户的使用者为 lamport, 组拥有者皆设为 users,
chown -R lamport:users *
15. 将所有的 java 语言程式拷贝至 finished 子目录中:
cp *.java finished
16. 将目前目录及其子目录下所有扩展名是 java 的文件列出来.
find -name ".java"
查找当前目录下扩展名是 java 的文件
find -name.java
17. 删除当前目录下扩展名是 java 的文件
rm -f *.java
3. 系统命令
1. 查看主机名
hostname
2. 修改主机名(重启后无效)
hostname hadoop
3. 修改主机名(重启后永久生效)
vi /ect/sysconfig/network
4. 修改 IP(重启后无效)
ifconfig eth0 192.168.12.22
5. 修改 IP(重启后永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
6. 查看系统信息
- uname -a
- uname -r
7. 查看 ID 命令
id -u
id -g
8. 日期
- date
- date +%Y-%m-%d
- date +%T
- date +%Y-%m-%d" "%T
9. 日历
cal 2012
10. 查看文件信息
file filename
11. 挂载硬盘
mount
umount
加载 Windows 共享
mount -t cifs //192.168.1.100/tools /mnt
12. 查看文件大小
du -h
du -ah
13. 查看分区
- df -h
- 14.SSH
- SSH hadoop@192.168.1.1
15. 关机
- shutdown -h now /init 0
- shutdown -r now /reboot
4. 用户和组
添加一个 tom 用户, 设置它属于 users 组, 并添加注释信息
分步完成: useradd tom
- usermod -g users tom
- usermod -c "hr tom" tom
一步完成: useradd -g users -c "hr tom" tom
设置 tom 用户的密码
passwd tom
修改 tom 用户的登陆名为 tomcat
usermod -l tomcat tom
将 tomcat 添加到 sys 和 root 组中
usermod -G sys,root tomcat
查看 tomcat 的组信息
groups tomcat
添加一个 jerry 用户并设置密码
- useradd jerry
- passwd jerry
添加一个交 america 的组
groupadd america
将 jerry 添加到 america 组中
usermod -g america jerry
将 tomcat 用户从 root 组和 sys 组删除
- gpasswd -d tomcat root
- gpasswd -d tomcat sys
将 america 组名修改为 am
groupmod -n am america
5. 权限
创建 a.txt 和 b.txt 文件, 将他们设为其拥有者和所在组可写入, 但其他以外的人则不可写入:
chmod ug+w,o-w a.txt b.txt
创建 c.txt 文件所有人都可以写和执行
chmod a=wx c.txt 或 chmod 666 c.txt
将 / hadoop 目录下的所有文件与子目录皆设为任何人可读取
chmod -R a+r /hadoop
将 / hadoop 目录下的所有文件与子目录的拥有者设为 root, 用户拥有组为 users
chown -R root:users /hadoop
将当前目录下的所有文件与子目录的用户皆设为 hadoop, 组设为 users
chown -R hadoop:users *
6. 目录属性
1. 查看文件夹属性
ls -ld test
2. 文件夹的 rwx
--x: 可以 cd 进去
r-x: 可以 cd 进去并 ls
-wx: 可以 cd 进去并 touch,rm 自己的文件, 并且可以 vi 其他用户的文件
-wt: 可以 cd 进去并 touch,rm 自己的文件
ls -ld /tmp
drwxrwxrwt 的权限值是 1777(sticky)
7. 软件安装
1. 安装 JDK
添加执行权限
chmod u+x jdk-6u45-Linux-i586.bin 解压
./jdk-6u45-Linux-i586.bin
在 / usr 目录下创建 java 目录
mkdir /usr/java 将 / soft 目录下的解压的 jdk1.6.0_45 剪切到 / usr/java 目录下
mv jdk1.6.0_45/ /usr/java/
添加环境变量
VIM /etc/profile 在 / etc/profile 文件最后添加
- export JAVA_HOME=/usr/java/jdk1.6.0_45
- export CLASSPATH=$JAVA_HOME/lib
- export PATH=$PATH:$JAVA_HOME/bin
* 更新配置
source /etc/profile
2. 安装 tomcat
- tar -zxvf /soft/apache-tomcat-7.0.47.tar.gz -C /programs/
- cd /programs/apache-tomcat-7.0.47/bin/
- ./startup.sh
3. 安装 eclipse
- 8.VIM
- i
- a/A
- o/O
r + ? 替换
0: 文件当前行的开头
$: 文件当前行的末尾
G: 文件的最后一行开头
1 + G 到第一行
9 + G 到第九行 = :9
dd: 删除一行
3dd: 删除 3 行
yy: 复制一行
3yy: 复制 3 行
p: 粘贴
- u:undo
- ctrl + r:redo
"a 剪切板 a"b 剪切板 b
"ap 粘贴剪切板 a 的内容
每次进入 vi 就有行号
- vi ~/.vimrc
- set nu
:w a.txt 另存为
:w>> a.txt 内容追加到 a.txt
:e! 恢复到最初状态
:1,$s/hadoop/root/g 将第一行到追后一行的 hadoop 替换为 root
:1,$s/hadoop/root/c 将第一行到追后一行的 hadoop 替换为 root(有提示)
9. 查找
1. 查找可执行的命令:
which ls
2. 查找可执行的命令和帮助的位置:
whereis ls
3. 查找文件(需要更新库: updatedb)
locate hadoop.txt
4. 从某个文件夹开始查找
- find / -name "hadooop"
- find / -name "hadooop" -ls
5. 查找并删除
- find / -name "hadooop" -ok rm {
- } \;
- find / -name "hadooop" -exec rm {
- } \;
6. 查找用户为 hadoop 的文件
find /usr -user hadoop -ls
7. 查找用户为 hadoop 并且 (-a) 拥有组为 root 的文件
find /usr -user hadoop -a -group root -ls
8. 查找用户为 hadoop 或者 (-o) 拥有组为 root 并且是文件夹类型的文件
find /usr -user hadoop -o -group root -a -type d
9. 查找权限为 777 的文件
find / -perm -777 -type d -ls
10. 显示命令历史
- history
- 11.grep
- grep hadoop /etc/password
10. 打包与压缩
1.gzip 压缩
gzip a.txt
2. 解压
- gunzip a.txt.gz
- gzip -d a.txt.gz
3.bzip2 压缩
bzip2 a
4. 解压
- bunzip2 a.bz2
- bzip2 -d a.bz2
5. 将当前目录的文件打包
tar -cvf bak.tar .
将 / etc/password 追加文件到 bak.tar 中(r)
tar -rvf bak.tar /etc/password
6. 解压
tar -xvf bak.tar
7. 打包并压缩 gzip
tar -zcvf a.tar.gz
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
11. 正则
1.cut 截取以: 分割保留第七段
grep hadoop /etc/passwd | cut -d: -f7
2. 排序
du | sort -n
3. 查询不包含 hadoop 的
grep -v hadoop /etc/passwd
4. 正则表达包含 hadoop
grep 'hadoop' /etc/passwd
5. 正则表达(点代表任意一个字符)
grep 'h.*p' /etc/passwd
6. 正则表达以 hadoop 开头
grep '^hadoop' /etc/passwd
7. 正则表达以 hadoop 结尾
grep 'hadoop$' /etc/passwd
规则:
. : 任意一个字符
a: 任意多个 a(零个或多个 a)
a? : 零个或一个 a
a+ : 一个或多个 a
. : 任意多个任意字符
. : 转义.
\<h.*p\> : 以 h 开头, p 结尾的一个单词
o{2} : o 重复两次
grep '^i.{18}n$' /usr/share/dict/words
查找不是以 #开头的行
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
12. 输入输出重定向及管道
1. 新建一个文件
- touch a.txt
- b.txt
2. 错误重定向: 2>
find /etc -name zhaoxing.txt 2> error.txt
3. 将正确或错误的信息都输入到 log.txt 中
- find /etc -name passwd> /tmp/log.txt 2>&1
- find /etc -name passwd &> /tmp/log.txt
4. 追加>>
5. 将小写转为大写(输入重定向)
tr "a-z" "A-Z" </etc/passwd
6. 自动创建文件
- cat> log.txt << EXIT
- ccc
- ddd
- EXI
7. 查看 / etc 下的文件有多少个?
ls -l /etc/ | grep '^d' | wc -l
8. 查看 / etc 下的文件有多少个, 并将文件详情输入到 result.txt 中
ls -l /etc/ | grep '^d' | tee result.txt | wc -l
13. 进程控制
1. 查看用户最近登录情况
last
lastlog
2. 查看硬盘使用情况
df
3. 查看文件大小
du
4. 查看内存使用情况
free
5. 查看文件系统
/proc
6. 查看日志
ls /var/log/
7. 查看系统报错日志
tail /var/log/messages
8. 查看进程
top
9. 结束进程
- kill 1234
- kill -9 4333
- ## 公众号
* 全网唯一一个从 0 开始帮助 Java 开发者转做大数据领域的公众号~
* 公众号 ** 大数据技术与架构 ** 或者搜索 **import_bigdata** 关注, 大数据学习路线最新更新, 已经有很多小伙伴加入了~
![](https://user-gold-cdn.xitu.io/2019/2/23/1691a0d20e61eb0d?w=300&h=390&f=png&s=14824)
来源: http://www.bubuko.com/infodetail-2967115.html