linux软件的安装,更新与卸载
Linux常用命令大全
每天一个linux命令目录
Linux 新手学习资料
IptablesHowTo
ubuntu iptables设置
CentOS中如何安装7ZIP
Linux系统信息查看命令大全
Linux计划任务crontab实例详解
Linux中启动或禁止用户使用SSH登录
linux下定时执行任务的方法 crontab 用法说明
linux screen 命令详解
Linux命令大全搜索工具 && 网站 && 命令列表

ls

DOS命令中的dir,列出当前目录文件。(注:dir在linux中也可以使用)
ls (列出目录文件)
ls -l |more (目录过多分屏显示)
ls -a 显示隐藏文件
ls -l显示比ls -a更详细的文件资料
ls -F列出文件目录名称后会加一些符号

cd

进出目录如window下的dos
cd命令不仅显示当前状态,也可以改变当前状态,linux中的cd与DOS中类似。
cd /home/wwwroot (进入/home/wwwroot目录)
cd / (进入根目录)
cd -返回进入此目录之前所在的目录
cd ..返回上一级目录,中间有空格
cd ~ 回当前用户根目录

mkdir w如新建w目录
rmdir w删除w目录

cp

如DOS下的copy
cp -r连同整个目录中的子目录一起拷贝
cp a.tar.g /home (复制目录下的a.tar.gz到home目录,可一次多选,在cp后面添加文件名就可以)

rm

rm -i test删除名字为test的文件(有提示)
rm -r test删除连同test目录下的所有文件(文件夹)
rm -f test删除test不经过确认强制删除文件
rm是linux中的删除命令。

rm a.tar.gz (删除a.tar.gz,之后出现确认,输入y)
rm –r (删除目录逐一确认)
rm –rf (强制删除,不确认)

linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。
直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思

mv

移动,还多了重命名功能。
mv /tmp/aa.rar /root将/tmp目录下的aa.rar文件移动到root目录下
mv aa.rar bb.rar将aa.rar更名为bb.rar

cat

显示或链接一般ascii文件
cat text显示test文件的内容
cat file1 file2依顺序显示file,file2的内容
cat file1 file2>file3将file1,file2的内容结合起来再重向到file3文件中

more显示,文件过长时比cat好

pwd显示文件路径

用户和组管理

w显示在线用户
useradd new新建new用户,会在home目录下创建一个new的目录
useradd name -g root -G www -d /home/3w -p 123
新建name用户,首要组为root,次要组为www,Home目录为/home/3w 密码为123

userdel new删除new用户

groupadd www新建一个www用户组
groupadd www删除已存在的www用户组

passwd www更改www密码,按提示输入密码,密码不显示
su www普通用户拥有超级管理员的权限
或者超级管理员以普通用户做一些事,离开当前用户的身份用exit

Linux给普通用户增加ssh权限

inux系统安装好,建立普通用户后,普通用户不一定能通过ssh连接到服务器
可以在/etc/ssh/sshd_config中增加AllowUsers:username(可以多个,空格分开)给普通用户增加ssh权限

useradd -g www web #新添加web用户到www组
passwd web #设置web密码

在PermitRootLogin yes下面添加

AllowUsers:web

重启ssh

sudo service sshd restart
service ssh start

Ubuntu下添加新用户没有生成用户目录解决如下

sudo mkdir /home/user #这里的/home/user里的user最好改成跟你原来用户名一样
sudo chown -R user:user /home/user #这里的user:user要改成你之前的“用户名:用户组”的格式
sudo chmod -R 755 /home/user #这里权限给755

chmod

改变权限
用法chmod who 符号 mode 文件(夹)名
who
u 用户 即文件(夹)的所有者
g 同组用户 即与文件属主有相同组ID的所有者
o 其他用户
a 所有者,系统默认值

符号
+添加权限
-取消权限
=赋予给定的权限并取消其他所有权限

mode
r 读写
w 可写
x 可执行

如:chmod =rx www回车
输入ls -l www回车查看文件属性
-r-xr-xr-x 1 user group 0 Feb 10 09:42 www

chmod u=rwx,g=r,o= www(,后无空格,o=后有空格)
将www的权限设为文件属主可读,可写,可执行
与文件属主同组的用户可读,其他用户不可读

chown

改变属主和属组
chown a:b www将www的属主改为a,属组改为b

将一个文件夹下的所有文件和文件夹更改用户和用户组

chown -hR username:groupname ./目录名

其中:h表示对符号链接也起作用;
R表示对所有子文件也起作用;
后面的用户名和组名用冒号分割;
最后是要修改的目标文件夹;
如有疑惑,在终端 man chown

进程任务管理命令

Screen

yum -y install screen #安装Screen
screen -S one #开启一个screen对话
screen -r one 打开一个已知开启的对话

解决screen状态为Attached连上不的问题
当你挂起screen,下次想连上screen的时候,
有时候会出现screen session的状态为Attached而怎么连也连不上的情况。
下面给出解决方法。
列出状态为Attached的session id。

screen -ls
screen -D  -r <session-id>

解释:-D -r 先踢掉前一用户,再登陆。

ps

进程查看命令
ps -e所有进程
ps -f全格式
ps -l长格式
ps -aux进程状态查询命令
ps -aux | grep nginx在所有进程中,查找nginx的进程
kill 1234 1234为进程ID,即ps -aux 中的PID
killall nginxkillall 通过程序的名字,直接杀死所有进程,nginx为进程名
ps命令输出字段的含义:
[list]
[*]USER,进程所有者的用户名。
[*]PID,进程号,可以唯一标识该进程。
[*]%CPU,进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。
[*]%MEM,进程使用内存的百分比。
[*]VSZ,进程使用的虚拟内存大小,以K为单位。
[*]RSS,进程占用的物理内存的总数量,以K为单位。
[*]TTY,进程相关的终端名。
[*]STAT,进程状态,用(R--运行或准备运行;S--睡眠状态;I--空闲;Z--冻结;D--不间断睡眠;W-进程没有驻留页;T停止或跟踪。)这些字母来表示。
[*]START,进程开始运行时间。
[*]TIME,进程使用的总CPU时间。
[*]COMMAND,被执行的命令行。
[/list]

ps显示如
PID进程ID
TTY终端名称
TIME进程执行时间
CMD命令行输入

ps -ef显示
UID执行进程的用户ID
PID进程ID
PPID父进程ID
STIME进程启动时间

ps -ef|grep root只显示包含root的输出行,查看用户为root的所有进程

top

显示系统当前的进程和其他状态,动态显示过程
top执行过程中使用交互命令:
空格 立即刷新显示
h或?显示帮助画面给出简短命令总结说明
m 切换显示内存信息
t 切换显示进程和CPU状态信息
c q切换显示命令名和完整命令行
M根据驻留内存大小进行排序
P 根据CPU使用百分比大小进程排序
q退出

kill

终止进程
kill 【-s 信号】 进程号
kill -9 123终止PID(进程号)为123的进程
kill -l显示信号列表

service

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

service <service> start
启动指定的系统服务

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

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

chkconfig --list
查看系统服务列表,以及每个服务的运行级别。

chkconfig <service> on
设置指定服务开机时自动启动。

chkconfig <service> off
设置指定服务开机时不自动启动。

ntsysv
以全屏幕文本界面设置服务开机时是否自动启动。

iptables 所在目录 /etc/sysconfig/iptables
service iptables status 查看iptables状态
service iptables restart iptables服务重启
service iptables stop iptables服务禁用
Linux防火墙iptables入门教程
iptables常用规则:屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链

把开机启动的脚本配置到/etc/rc.d/rc.local中

磁盘及文件系统管理命令

资源占用查询:

free -m / 查看内存核swap使用情况 /
top / 查看程序的cpu、内存使用情况 /
netstat -ntl / 查看端口占用情况 /

df

显示目前磁盘剩余空间
df -h查看磁盘剩余空间
df -k显示各分区的磁盘空间使用情况
df -sh /home/wwwroot/*查看/home/wwwroot/下各个目录的占用大小

mount和umount

如mount -a
挂载软驱和光驱:mount /mnt/cdrom mount /mnt/floppy
umount -f /mnt/cdrom强制卸载挂载在/mnt/cdrom目录下

tgz

1 将tgz文件解压到指定目录

tar zxvf test.tgz -C  指定目录
比如将/source/web.tgz解压到  /source/web 目录
tar zxvf /source/web.tgz  -C /source/web
// zxv是键盘左下角相隔不远的几个键,比较好记

2 将指定目录压缩到指定文件

比如将web目录压缩到web.tgz
tar zcvf web.tgz web  // zcv是键盘左下角相隔不远的几个键,比较好记

3.cd 指定文件夹

tar zcvf web.tgz ./  //即可将当前文件夹打包为web.tgz

tar

tar [选项] 文件名
选项
-c 创建一个新的档案文件
-t 查看档案内容
-f 制定档案名称
-v 显示进程信息
-z 采用压缩方式
tar cvf a.tar.gz *.* (将当前目录所有文件打包,压缩为文件名a.tar.gz)
tar cvf a.tar.gz /home (将home文件夹下所有文件打包,压缩为文件名a.tar.gz)
tar xvf a.tar.gz (将a.tar.gz解压至当前文件夹,亦可用zxvf)
tar -zxvf a.tar.gz
tar tvf a.tar.gz (浏览a.tar.gz压缩包中的文件)
tar xvf wordpress.tar解压tar格式的文件
tar tvf myfile.tar查看tar文件中包含的文件
tar cf toole.tar tool把tool目录打包为toole.tar文件
tar zcf vpser.tar.gz tool把tool目录打包且压缩为vpser.tar.gz文件,因为.tar文件几乎是没有压缩过的,MT的.tar.gz文件解压成.tar文件后差不多是10MB
tar jcvf /var/bak/www.tar.bz2 /var/www/ 创建.tar.bz2文件,压缩率高

tar xjf www.tar.bz2解压tar.bz2格式

zip/unzip

yum list |grep zip/unzip
yum install unzip

zip -r myfile.zip ./*
将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,
-r表示递归压缩子目录下所有文件.

2.unzip
unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;

3.其他
zip -d myfile.zip smart.txt
删除压缩文件中smart.txt文件
zip -m myfile.zip ./rpm_info.txt
向压缩文件中myfile.zip中添加rpm_info.txt文件

要使用 zip 来压缩文件,在 shell 提示下键入下面的命令:
zip -r filename.zip filesdir
在这个例子里,filename.zip 代表你创建的文件,filesdir 代表你想放置新 zip 文件的目录。-r 选项指定你想递归地(recursively)包括所有包括在 filesdir 目录中的文件。

要抽取 zip 文件的内容,键入以下命令:
unzip filename.zip

你可以使用 zip 命令同时处理多个文件和目录,
方法是将它们逐一列出,并用空格间隔:
zip -r filename.zip file1 file2 file3 /usr/work/school
上面的命令把 file1、file2、 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.zip 文件中

▶在命令行中输入: shutdown -h now 命令 。表示立刻进行关机!

ubuntu默认是不启用root用户也不允许root远程登录的。
所以需要先启用root用户
▶启用root用户:sudo passwd root 修改密码后就启用了
安装OpenSSH server:

  1. 使用apt命令安装openssh server
    sudo apt-get install openssh-server
  2. 可以对 openssh server进行配置
    sudo vi /etc/ssh/sshd_config
    ▶找到PermitRootLogin no(without password)一行,
    改为PermitRootLogin yes
  3. 重启 openssh server
    sudo service ssh restart
  4. 客户端如果是ubuntu的话,则已经安装好ssh client,

可以用下面的命令连接远程服务器。
ssh xxx.xxx.xxx.xxx
常用格式:ssh [-l login_name] [-p port] [user@]hostname
ssh -l root -p 22 ip
更详细的可以用ssh -h查看。
举例
不指定用户:

ssh 192.168.0.11

指定用户:
ssh -l root 192.168.0.11

ssh root@192.168.0.11

如果修改过ssh登录端口的可以:

ssh -p 12333 192.168.0.11
ssh -l root -p 12333 216.230.230.114
ssh -p 12333 root@216.230.230.114

另外修改配置文件/etc/ssh/sshd_config,可以改ssh登录端口和禁止root登录。改端口可以防止被端口扫描。

编辑配置文件:

vim /etc/ssh/sshd_config

找到#Port 22,去掉注释,修改成一个五位的端口:

Port 12333

找到#PermitRootLogin yes,去掉注释,修改为:

PermitRootLogin no

重启sshd服务:

service sshd restart

如果是windows系统的话,
可以使用SSH Secure Shell等ssh软件进行远程连接。

vi(vim)

以下来自http://www.vpser.net/manage/vi.html
是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim)。
vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。
vi是“visual interface”的缩写,vim是vi IMproved(增强版的vi)。
在一般的系统管理维护中vi就够用,如果想使用代码加亮的话可以使用vim。
下面vps侦探整理一下vi的使用教程:
包含vi的基本介绍、使用模式、文件的打开关闭保存、插入文本或新建行、移动光标、删除、恢复字符或行、搜索等等,算是一篇比较适合新手学习vi的教程。

vi有3个模式:插入模式命令模式低行模式

插入模式:在此模式下可以输入字符,按ESC将回到命令模式。
命令模式:可以移动光标、删除字符等。
低行模式:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可以看作是命令模式里的)。

Vim操作: vim详细教程:http://www.vpser.net/manage/vi.html

移动类的:
h/j/k/l: 左/下/上/右 移一格
w : 向后词移动 (前面加数字移动多少个词)
b : 向前词移动 (前面加数字移动多少个词)
e : 向后移到词末
ge : 向前移到词末
$ : 行末
0 : 行首
tx : 向右查找本行的x并移到那儿(大写时向左)
33G : 移到文件的第33行
gg : 文件首行
G : 文件尾行
33% : 文件的33%处
H/M/L : 屏幕的首/中/尾行
zt/zz/zb : 当前行移到屏幕的首/中/底部

跳转
" : 回到跳转来的地方
CTRL-O : 跳到一个 “较老” 的地方
CTRL-I : 则跳到一个 “较新” 的地方

查找
/ : 向下查找(后加关键字)
? : 向上查找(后加关键字)
n : 下一条符合的记录

编辑
i : 转换到插入模式
x : 删除当前字符
. : 重复最后一次的修改操作(同PS里ctrl+f执行滤镜)
u : 撤销操作
CTRL-R : 重做
p : 将删除的字符插入到当前位置(put)

退出保存
:q : 退出
:q! : 不保存退出
ZZ : 保存后退出
:e! : 放弃修改重新编辑

一、打开文件、保存、关闭文件(vi命令模式下使用)

vi filename //打开filename文件
:w //保存文件
:w vpser.net //保存至vpser.net文件
:q //退出编辑器,如果文件已修改请使用下面的命令
:q! //退出编辑器,且不保存
:wq //退出编辑器,且保存文件

二、插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)

a //在当前光标位置的右边添加文本
i //在当前光标位置的左边添加文本
A //在当前行的末尾位置添加文本
I //在当前行的开始处添加文本(非空字符的行首)
O //在当前行的上面新建一行
o //在当前行的下面新建一行
R //替换(覆盖)当前光标位置及后面的若干文本
J //合并光标所在行及下一行为一行(依然在命令模式)

三、移动光标(vi命令模式下使用)

1、使用上下左右方向键

2、命令模式下:h 向左、j 向下 、k 向上、l 向右。
空格键 向右、Backspace 向左、Enter 移动到下一行首、- 移动到上一行首。

四、删除、恢复字符或行(vi命令模式下使用)

x //删除当前字符
nx //删除从光标开始的n个字符
dd //删除当前行
ndd //向下删除当前行在内的n行
u //撤销上一步操作
U //撤销对当前行的所有操作

五、搜索(vi命令模式下使用)

/vpser //向光标下搜索vpser字符串
?vpser //向光标上搜索vpser字符串
n //向下搜索前一个搜素动作
N //向上搜索前一个搜索动作

六、跳至指定行(vi命令模式下使用)

n+ //向下跳n行
n- //向上跳n行
nG //跳到行号为n的行
G //跳至文件的底部

七、设置行号(vi命令模式下使用)

:set nu //显示行号
:set nonu //取消显示行号

八、复制、粘贴(vi命令模式下使用)

yy //将当前行复制到缓存区,也可以用 "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
nyy //将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
yw //复制从光标开始到词尾的字符。
nyw //复制从光标开始的n个单词。
y^ //复制从光标到行首的内容。 VPS侦探
y$ //复制从光标到行尾的内容。
p //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴。
P //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴。

九、替换(vi命令模式下使用)

:s/old/new //用new替换行中首次出现的old
:s/old/new/g //用new替换行中所有的old
:n,m s/old/new/g //用new替换从n到m行里所有的old
:%s/old/new/g //用new替换当前文件里所有的old

十、编辑其他文件

:e otherfilename //编辑文件名为otherfilename的文件。

十一、修改文件格式

:set fileformat=unix //将文件修改为unix格式,如win下面的文本文件在linux下会出现^M。

总结:vi(vim)教程虽然有比较多的命令,但是只要勤加练习,相信你会很快的熟练掌握,同时也会给你的工作或学习带来更高的效率。当如果不知道自己处在什么模式时可以按2次Esc键即可回到命令模式,会有最后提醒一点:注意大小写!!!

find

find命令用法:
find pathname -options [-print -exec -ok ...]
pathname:标示用find命令所查找的文件路径,比如我们可以用. 来表示当前路径目录,且用/来表示系统根目录地址。
print:这样使用find命令将会把匹配的文件按照输出到标准输出。
exec:使用find命令对匹配的文件执行该参数所给出的shell命令。
ok:这个和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令。
find命令实用方法:
检查60分钟内当前目录中.PHP文件被修改过的文件:
find . -name '*.php' -mmin -60
这个比较常用于网页文件的检查,是否有被修改的痕迹。
查找当前目录中24小时内修改过的PHP文件:
find . -name '*.php' -mtime 0
查找当前目录中以有大写字母开头的文件:
find . -name "[A-Z]*" -print
查找www目录中以vps开头的文件:
find /www -name "vps*" -print
查到当前目录中具有777权限的文件:
find . -perm 777 -print
同样的,我们可以修改检查755或者644权限。
查找当前目录中文件字节数大于1MB的文件:
find . -size +1000000c -print
查找文件名为mt.cgi的文件:
find mt.cgi

下载

下载nginx-0.8.0.tar.gz:
wget http://www.abc.net/nginx-0.8.0.tar.gz
继续下载上次未下载完的文件:
wget -c http://soft.vpser.net/web/nginx/nginx-0.8.0.tar.gz
Linux Wget 命令用法
【Linux入门系列】wget 使用探索

wget 下载整个网站,或者特定目录

查看硬件信息

标签:Linux, 命令

你的评论