Linux命令大全
上一个节大数据基础知识(一):玩转Linux(二) 免密码登录和基本命令简单的介绍了几个基本的LInux命令,我们知道仅仅掌握这些基本的命令是不够的,需要更加深入的了解Linux的命令。
常用的命令
这一节主要讲解基础的Linux命令,这些命令在我们使用Linux时候无时无刻将会使用到,我们需要在自己的Linux上练习,达到随机可取的境界。
1.进入目录
使用cd 目录进入指定的目录,或者使用cd ~进入当前的用户的根目录。下面是作者的一个实例。
还有相关的命令如下:
cd - 返回原来目录
cd .. 返回上一级目录
2.获取当前路径
使用 pwd来得到当前的路径。
3. 查看文件以及创建文件
查看文件的命令如下:
less 文件名
more 文件名
cat 文件名
创建文件
touch a.txt 创建a.txt文件
向文件中追加内容
echo "hello,world " >> a.txt 注意使用两个>表示追加,使用一个>表示覆盖。
还可以使用cat或者less等命令追加
cat a.txt >>README 将a中内容追加到README中
4.文件夹相关操作
5.拷贝移动删除
拷贝命令
cp a.txt b.txt将a.txt拷贝一份并且命名为b.txt
如果需要拷贝一个文件夹的多个内容
cp -r 源地址 目的地
移动命令
mv 目标文件 目的地
删除命令
rm a.txt 删除a文件
rm -rf document 删除文件夹
6.解压命令
将其解压缩,再取消打包
分步完成:gzip -d mysql.tar.gz 或 gunzip mysql.tar.gz
一步完成:tar -zxvf itcast.tar.gz
将/mysql目录先打包,同时用bzip2压缩,并保存到/tmp目录下
tar -jcvf /tmp/mysql.tar.bz2 itcast
将/tmp/mysql.tar.bz2解压到/usr目录下面
tar -jxvf mysql.tar.bz2 -C /usr/
文件相关的命令
1.进入到用户根目录
cd ~ 或者 cdcd ~hadoop
回到原来路径
cd -
2.查看文件详情
stat a.txt3.移动
mv a.txt /ect/改名
mv b.txt a.txt
移动并改名
mv a.txt ../b.txt
4拷贝并改名
cp a.txt /etc/b.txt5.vi撤销修改
ctrl + u (undo)恢复
ctrl + r (redo)
6.名令设置别名(重启后无效)
alias ll="ls -l"取消
unalias ll
7.如果想让别名重启后仍然有效需要修改
vi ~/.bashrc8.添加用户
useradd hadooppasswd hadoop
9.创建多个文件
touch a.txt b.txttouch /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.txtchmod a=wx c.txt
12.将当前目录下的所有文件与子目录皆设为任何人可读取:
chmod -R a+r *13.将a.txt的用户拥有者设为users,组的拥有者设为jessie:
chown users:jessie a.txt14.将当前目录下的所有文件与子目录的用户的使用者为lamport,组拥有者皆设为users,
chown -R lamport:users *15.将所有的java语言程式拷贝至finished子目录中:
cp *.java finished16.将目前目录及其子目录下所有扩展名是java的文件列出来。
find -name "*.java"查找当前目录下扩展名是java 的文件
find -name *.java
17.删除当前目录下扩展名是java的文件
rm -f *.java
系统命令
1.查看主机名
hostname2.修改主机名(重启后无效)
hostname hadoop3.修改主机名(重启后永久生效)
vi /ect/sysconfig/network4.修改IP(重启后无效)
ifconfig eth0 192.168.12.225.修改IP(重启后永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth06.查看系统信息
uname -auname -r
7.查看ID命令
id -uid -g
8.日期
datedate +%Y-%m-%d
date +%T
date +%Y-%m-%d" "%T
9.日历
cal 201210.查看文件信息
file filename
11.挂载硬盘
mountumount
加载windows共享
mount -t cifs //192.168.1.100/tools /mnt
12.查看文件大小
du -hdu -ah
13.查看分区
df -h14.ssh
ssh hadoop@192.168.1.115.关机
shutdown -h now /init 0shutdown -r now /reboot
用户和分组
添加一个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
权限管理
创建a.txt和b.txt文件,将他们设为其拥有者和所在组可写入,但其他以外的人则不可写入:
chmod ug+w,o-w a.txt b.txt
创建c.txt文件所有人都可以写和执行
chmod a=wx c.txt 或chmod 666 c.txt
将/itcast目录下的所有文件与子目录皆设为任何人可读取
chmod -R a+r /itcast
将/hadoop目录下的所有文件与子目录的拥有者设为root,用户拥有组为users
chown -R root:users /hadoop
将当前目录下的所有文件与子目录的用户皆设为hadoop,组设为users
chown -R hadoop:users *
文件夹属性
1.查看文件夹属性
ls -ld test2.文件夹的rwx
--x:可以cd进去r-x:可以cd进去并ls
-wx:可以cd进去并touch,rm自己的文件,并且可以vi其他用户的文件
-wt:可以cd进去并touch,rm自己的文件
ls -ld /tmp
drwxrwxrwt的权限值是1777(sticky)
安装软件
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
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(有提示)
查找命令
1.查找可执行的命令:
which ls2.查找可执行的命令和帮助的位置:
whereis ls3.查找文件(需要更新库:updatedb)
locate hadoop.txt4.从某个文件夹开始查找
find / -name "hadooop*"find / -name "hadooop*" -ls
5.查找并删除
find / -name "hadooop*" -ok rm {} \;find / -name "hadooop*" -exec rm {} \;
6.查找用户为hadoop的文件
find /usr -user hadoop -ls7.查找用户为hadoop并且(-a)拥有组为root的文件
find /usr -user hadoop -a -group root -ls8.查找用户为hadoop或者(-o)拥有组为root并且是文件夹类型的文件
find /usr -user hadoop -o -group root -a -type d9.查找权限为777的文件
find / -perm -777 -type d -ls10.显示命令历史
history11.grep
grep hadoop /etc/password打包与压缩
1.gzip压缩
gzip a.txt
2.解压 gunzip a.txt.gz
gzip -d a.txt.gz
bzip2 a
4.解压 bunzip2 a.bz2
bzip2 -d a.bz2
tar -cvf bak.tar .
将/etc/password追加文件到bak.tar中(r)
tar -rvf bak.tar /etc/password
tar -xvf bak.tar
7.打包并压缩gziptar -zcvf a.tar.gz
8.解压缩 tar -zxvf a.tar.gz
解压到/usr/下
tar -zxvf a.tar.gz -C /usr
tar -ztvf a.tar.gz
zip/unzip
tar -jcvf a.tar.bz2
11.解压bz2tar -jxvf a.tar.bz2
正则表达式
1.cut截取以:分割保留第七段
grep hadoop /etc/passwd | cut -d: -f72.排序
du | sort -n3.查询不包含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
管道
1.新建一个文件
touch a.txt> b.txt
2.错误重定向:2>
find /etc -name zhaoxing.txt 2> error.txt3.将正确或错误的信息都输入到log.txt中
find /etc -name passwd > /tmp/log.txt 2>&1find /etc -name passwd &> /tmp/log.txt
4.追加>>
5.将小写转为大写(输入重定向)
tr "a-z" "A-Z" < /etc/passwd6.自动创建文件
cat > log.txt << EXIT> ccc
> ddd
> EXI
7.查看/etc下的文件有多少个?
ls -l /etc/ | grep '^d' | wc -l8.查看/etc下的文件有多少个,并将文件详情输入到result.txt中
ls -l /etc/ | grep '^d' | tee result.txt | wc -l进程管理
1.查看用户最近登录情况
lastlastlog
2.查看硬盘使用情况
df3.查看文件大小
du4.查看内存使用情况
free5.查看文件系统
/proc6.查看日志
ls /var/log/7.查看系统报错日志
tail /var/log/messages8.查看进程
top9.结束进程
kill 1234kill -9 4333