学习一些简单实用的linux命令

学习一些简单实用的linux命令

虽然一直生存在Ubuntu下面,但是真正的利用一些命令行工作仍然较少,有些学习了便忘记了。本文只是想将一些常用的记录下来,主要内容参考网络文章1。学习之前首先要想想为什么要学习,否则就是在浪费时间。结合自己的工作,最近越来越要处理一些基因组序列数据,突然感觉到linux命令的强大,同时借用别人的服务器,也需要训练在命令行下远程操作。

利用SSH登陆远程服务器

在具体实用命令之前,登陆远程服务器是首先需要进行的。Linux或者Mac下非常的方便,打开Terminal,输入:

ssh -l username www.myserver.com

\”-l\”表示log in as。当然Windows中需要实用到Putty这样一个软件。

登陆成功后的命令操作

一旦登陆成功后便可以像在自己的电脑上一样远程操作命令行了。首先可以输入pwd便可以知道你目前所在的具体路径位置。cd可以帮助你转换到别的文件夹,ls可以帮助你查看文件夹中的内容,-al可以查看隐藏文件和文件的全部信息。

简单的文件内容操作

cat可以展示文件的内容,如果文件的内容很多,用more可以分页一页一页的查看,空格键翻页,Enter查看下一行,Q结束关闭。如果只想查看文件开头或者结尾的部分,便可以用headtail分别查看。例如:

tail -20 xxx.txt

查看文件倒数20行的内容。如果想重命名文件,可用mv命令:

mv xxx.txt xxx2.txt

类似的命令有cp复制和rm删除文件命令。

进一步更加细节的命令操作

find命令可以基于文件名、大小和修改的时间查找文件。如果是查找文件夹,那么返回将是文件夹下的所有内容。例如:

find /var/www

你有可能看到很多文件内容,有时可能会用上好几分钟,如果太慢,简单的c+c终止。另外一种方法就是同时使用诸如more命令来查看,例如:

find /var/www | more

下面的例子是一些基于文件信息的查找:

find /var/www -name logo.gif
find /var/www -name *.gif
find /var/www -name *.gif -o -name *.jpg
find /var/www -name *.gif -size +5k -size -16k
find /var/www -name *.gif -ctime +90 -ctime -180

其中“可以不要,-o表示or。另外一个有用的参数是-cmin,可以查看过去几分钟之内修改过的文件。

find /var/www -cmin -10 -printf \"%c %pn\"

这将显示所有文件和文件夹。如果只是想显示文件,需要加上-type f

所有的命令记不住,也不需要记住,如果不知道怎么用,简单的用man命令,如果要查看所有,则:

man man

文件内内容的操作编辑

grep是非常有用的文本内容查找工具。例如:

cd /var/www/xxx.com/
grep \"<div id=\"left\">\" *.php

结果将返回本文件夹中哪一个文件包含所查找的html元素。如果需要查找亚文件夹中的,需要加上-r参数。还可以在命令中使用命令,例如:

grep \"<div id=\"left\">\" `find . -name *.php -ctime -14`

如果需要迅速的编辑文本,需要使用vi或者vim

文件和数据库的备份恢复

利用tar命令可以打包备份文件夹,例如:

cd /var/www/xxx.com/
tar czf /tmp/backup.tgz .

czf表示\”created zipped file\”。 .表示当前文件夹。也可以备份单独的一个文件,例如:

tar cfz /tmp/backup.tgz `find . -type f -ctime -1`

恢复文件,利用xzf参数,即\”extract from zipped file\”。用如下的例子可以将文件恢复到当前文件夹:

tar xzf /tmp.backup.tgz ./index.php ./test/php
tar xzf /tmp/backup.tgz

如果你的服务器支持zip命令,则可以用如下命令做相同的事情:

cd /var/www/xxx.com/
zip -r /tmp/backup.zip .
zip -r/tmp/backup.zip `find . -type f -ctime -1`
unzip -l /tmp/backup.zip
unzip /tmp/backup.zip test.php
unzip /tmp/backup.zip

如果你的数据库用MySQL,则可以用mysqldump命令备份:

mysqldump --user=\"username\" --password=\"password\" --add-drop-table database

其中username、password和database其换成自己的数据库值。添加-A来转储所有的数据库,如果由于数据表被锁而出错,则添加--single-transaction。对于大的数据库,使用>可以转储到文件。

mysqldump --user=\"username\" --password=\"password\" --add-drop-table database > /tmp/db.sql

使用mysql命令恢复数据库。例如:

mysql --user=\"username\" --password=\"password\" db.sql

使用排管|可以连续使用多个命令。例如:

cat /tmp/db.sql | mysql --user=\"username\" --password=\"password\" dbname

密码位置留空可以防止他人偷看。同时还可以将数据库备份打包到现成的备份中,例如:

tar czf /tmp/backup.tgz . /tmp/db.sql

如果要备份文件夹所有的包括隐藏文件,则:

tar czf /tmp/backup.tgz .

此处用.替代了*

文件许可

linux中的所有用户名可以在这里查看:

more /etc/passwd

ps aux可以显示服务器上所有运行的进程。例如:

ps aux | grep apache

chmod命令可以修改文件的权限,通常三种类型,u代表user或者owner,g代表group,o代表other或者everyone else,另外就是a即all,例如:

chmod go+r images/bg.jpg

即给group和user加上可读的权限。如果要修改所有文件夹文件的权限,则需要加上-R。在用户权限足够的情况下,例如root用户,可以更改文件的拥有者,例如:

sudo chown www-data images/bg.jpg

如果你想变成superuser,可以使用su命令。当然,使用这个命令要慎重,特别是结合使用rm命令的时候,可以毁掉一切。


除非特别声明,文章均为牛会飞的博客原创,遵循署名-非商业使用-相同方式共享授权协议
转载请注明出处: https://blogfei.com/study-some-basic-linux-commands/

已有3条评论