Linux常用命令

玩了将近20年的Windows,基本都在和图形界面打交道,想要完全习惯纯命令行还是要有一个过程的,但是也慢慢感受到命令行的便利。

一、文件操作:

1、目录切换cd:
cd /usr/local
切换到根目录下的/usr/local目录
cd ..
返回上一级目录
cd hello
进入名称为hello的目录,这个hello目录需要在当前文件夹存在。
如果没有可以新建一个名称为hello目录,命令为:
mkdir hello

2、解压文件tar :
tar命令最初的设计目的是将文件备份到磁带上(tape archive),因而得名tar。
tar -zxvf xxx.tar.gz

z : 表示 tar 包是被 gzip 压缩过的,所以解压时需要用 gunzip 解压
x : 从 tar 包中把文件提取出来
v : 显示详细信息
f:指定备份文件

3、权限控制chmod(change mode):
范例 :将文件 hello.txt 设为所有人皆可读取 :
chmod ugo+r hello.txt(ugo分别表示文件拥有者User、同组人Group、及其他人Other的权限,r=read)

chmod a+r hello.txt

将文件 hello.txt 设为与该文件拥有者同一组可写入,其他人不可写入 :
chmod ug+w,o-w hello.txt
将 hell.py 设定为只有该文件拥有者可以执行 :
chmod u+x hel1o.py

此外chmod也可以用数字来表示权限
语法为:chmod abc hello.txt
其中a,b,c各为一个数字(0-7),分别表示User、Group、及Other的权限。
r=2^2=4,w=2^1=2,x=2^0=1
rwx属性为4+2+1=7;
rw-属性为4+2=6;
r-x属性为4+1=5;
以此类推。
chmod a=rwx hello.txt

chmod 777 hello.txt
效果相同,为所有人都可以对文件读写和执行。

4、推送/拉取文件
推送文件
scp 要推送的文件 用户名@IP地址:路径
拉取文件
scp 用户名@IP地址:要拉取的文件 路径

5、重命名文件
mv A B

6、上传大文件
rz -be
如命令无效则安装lrzsz
yum install -y lrzsz

7、查看文件夹大小
du -h --max-depth=1

8、删除文件/目录rm(remove):
rm -rf [目录路径]
-r/R --recursive 同时删除该目录下的所有目录层
-f --force 略过不存在的文件,不显示任何信息

9、查看文本文件头部n行
head -n 200 filename #--200可替换为任一数字

10、查看文本文件末尾n行
tail -n 200 filename #--200可替换为任一数字

11、查看文本文件行数
wc -l filename
(对于十分冗长的日志文件,下面的查看文件命令会比较有用)

12、查看文件相关信息
stat filename

二、其它操作

1、强制结束某进程kill:
kill -9 [进程号]
当前java进程的pid可以通过jps(Java Virtual Machine Process Status Tool)命令查看

2、把某两个目录加入环境变量(以hadoop为例):
export PATH=$PATH:/usr/hadoop/bin:/usr/hadoop/sbin

3、服务命令service:

格式:service <service> start
启动指定的系统服务<service>
例如,启动mysql:service mysql start

格式:service <service> stop
停止指定的系统服务<service>

格式:service <service> restart
重新启动指定的系统服务<service>,即先停止(stop),然后再启动(start)

格式:service <service>
打印指定服务<service>的命令行使用帮助。

4、关机:shutdown -h now
5、重启:shutdown -r now 或 reboot

6、查看版本当前操作系统发行版信息
cat /etc/issue 或cat /etc/redhat-release

7、查看端口使用情况
netstat -ntlp
netstat -tunlp|grep 端口号

-n或--numeric 直接使用IP地址,而不通过域名服务器。
-t或--tcp 显示TCP传输协议的连线状况。
-u或--udp 显示UDP传输协议的连线状况。
-l或--listening 显示监控中的服务器的Socket。
-p或--programs 显示正在使用Socket的程序识别码和程序名称。