Linux常见命令集合
本文由 小茗同学 发表于 2016-06-27 浏览(3410)
最后修改 2020-01-08 标签:linux 常见 命令
[TOC]

常见操作命令

cd home, cd home/tomcat # 定位到某个目录
cd ../ # 回到上一层目录
ls # 显示当前文件夹下的文件
tab键 # 自动完成
mkdir 文件夹名 # 新建文件夹
mv 旧名称 新名称 # 移动文件,也可以用来重命名
rm -rf 文件名 # 删除文件或者文件夹,其中,r表示递归删除子文件,f表示强制删除无需确认
某个命令 --help # linux下大部分命令查看帮助方法
cp -r 旧文件夹名 新文件夹名 # 复制文件夹或者文件,-r表示递归
chmod 777 startup.sh # 给某个文件添加执行权限
curl http://liuxianan.com # 访问某个网址,返回HTML代码
wget http://xxx.com/123.zip # 下载文件
pkill node,pkill nginx # 强制杀死某个进程

其它:

pwd # 查看当前目录
whoami # 查看当前登录用户
which 某个命令 # 查看某个命令在path中所在路径
where 某个命令 # 磁盘搜索某个命令

查看磁盘空间、文件大小

df -h # 查看所有磁盘剩余空间
du -h # 查看当前目录所有文件夹大小(包括子文件夹),-h 是转换成友好格式显示
du -h 文件夹名称 # 查看某个文件夹大小(包括子文件夹),由于会包括子文件,所以不要在根目录运行此命令,否则要等很久
du -sh 文件夹名称 # 查看某个文件夹大小(不包括子文件夹)

很多人时间一长都分不清dfdu,该如何记忆呢?这样记:

  • df == Disk Free == 磁盘剩余空间
  • du == Disk Usage == 磁盘已使用空间

另外注意,在没有分区和格式化数据盘之前,使用 df –h命令,是无法看到数据盘的,可以使用fdisk -l命令查看。

修改hosts

直接vi /etc/hosts,修改完后跟windows一样会立即生效。

解压压缩相关命令

tar

tar -cvf FileName.tar DirName # 打包,其中c表示create,v表示verbosely(显示过程)
tar -xvf FileName.tar # 解包,其中x表示extract

注意:以上命令只是打包,不是压缩!

gz

gzip只能压缩单个文件:

gzip FileName # 压缩,不会保留源文件
gzip -d FileName.gz # 解压

tar.gz 和 tgz

tar -zcvf FileName.tar.gz DirName # 压缩,注意是先写输出文件名,再写文件夹名
tar -zxvf FileName.tar.gz # 解压到当前目录,文件名在原始基础上去掉后缀

zip

zip FileName.zip -r DirName # 压缩,-r表示递归压缩子文件夹
unzip FileName.zip # 解压到当前目录,切记是当前目录,它会把压缩包里面的内容全部解压到当前目录,所以一般不用此命令
unzip FileName.zip -d FileName # 指定输出文件夹的解压,解压一般用这个命令

linux下端口映射远程桌面

本来可以直接使用iptables来配置端口映射,但是我嫌麻烦,自己写了个JSP版端口映射工具,碰到了几个问题记录一下。

假设具有公网的linux服务器公网IP为113.108.xx.xx,局域网IP为172.16.4.247,需要映射的私人电脑局域网IP为172.16.4.97,映射时只能用服务器的局域网IP来映射,否则会一直报错,现假设映射如下:172.16.4.247:728—>172.16.4.97:3389,远程桌面时直接访问:113.108.xx.xx:728 ,需要注意,如果开启了防火墙一定要保证目标端口(这里是728)已经开放,可以通过telnet命令来测试,如果通了,说明映射基本上OK了,剩下的就是远程桌面设置问题了,首先你私人电脑的3389端口也要保证是通的,一般为了省事直接关闭防火墙,然后保证远程桌面设置已经打开,计算机睡眠已经关闭,今天碰到一个问题,就是远程桌面已经设置为允许了,但是连接时总是提示“出现了内部错误”,后来发现映射到别的电脑就可以,所以就怀疑是自己电脑设置问题,然后把远程桌面设置下面的“仅允许运行使用网络级别身份验证”去掉勾选,再试就可以了,但是发现再次把它勾选上依然能够成功,所以具体原因就不得而知了,可能是Windows犯贱吧,估计重启一下也可能会好。

linux下node.js安装

其实很简单,下载了tar.gz压缩包后解压,然后定位到bin目录,执行./node -v如果输出版本号就说明成功了,然后配置一下环境变量就行:
在/etc/profile尾部追加:

# node.js
PATH=/opt/node.js/node-v4.2.2/bin:$PATH

然后运行source /etc/profile使之生效。

Centos 下安装shellinabox

安装

# wget http://shellinabox.googlecode.com/files/shellinabox-2.10.tar.gz
# tar -zxvf shellinabox-2.10.tar.gz
# cd shellinabox-2.10
# ./configure --prefix=/usr/local/shellinabox
# make && make install

启动

# cd /usr/local/shellinabox/bin
# ./shellinaboxd
或者
#./shellinaboxd -b -t
-b选项代表在后台启动,-t选项表示不使用https方式启动,默认以nobody用户身份,监听TCP4200端口

然后访问:http://服务器IP:4200就出现了熟悉的ssh登录界面了,默认无法使用root登录,可以先创建一个用户,用这个用户登录后再su root即可。

由于这个页面很危险,被不法分子知道了就麻烦了,所以最好更改默认的端口,更改端口需要改配置文件,关于配置文件在哪里,网上说:

在Debian/Ubuntu系统上shellinabox配置文件的默认位置是/etc/default/shellinabox。在RHEL/CentOS/Fedora上,默认位置在/etc/sysconfig/shellinaboxd

但是我的centos2个地方都没找到,所以暂时先放这。

linux安装后的大小

我在虚拟机下面安装了centos6.5 64位min版CentOS-6.5-x86_64-minimal.iso,安装完后执行df -h时发现整个系统只用了754M,iso镜像文件也才398M。

阿里云centos7.0的64位安装后如下:

[root@iZ94i7kwlagZ ~]# df -h
Filesystem	  Size  Used Avail Use% Mounted on
/dev/xvda1	   40G  1.5G   36G   5% /
devtmpfs		489M	 0  489M   0% /dev
tmpfs		   497M	 0  497M   0% /dev/shm
tmpfs		   497M  6.5M  490M   2% /run
tmpfs		   497M	 0  497M   0% /sys/fs/cgroup

阿里云centos6.5的64位安装后如下:

[root@iZ94i7kwlagZ ~]# df -h
Filesystem	  Size  Used Avail Use% Mounted on
/dev/xvda1	   40G  1.4G   36G   4% /
tmpfs		   498M	 0  498M   0% /dev/shm

刚刚挂载完40G的磁盘后:

[root@iZ94i7kwlagZ ~]# df -h
Filesystem	  Size  Used Avail Use% Mounted on
/dev/xvda1	   40G  1.5G   36G   4% /
tmpfs		   498M	 0  498M   0% /dev/shm
/dev/xvdb1	   40G  176M   38G   1% /home