Linux常见命令集锦

时间:2023-03-09 00:38:27
Linux常见命令集锦

这是平常用到的命令在这里做一下总结:

一、python 类
1、pip(已安装)
pip用来安装来自PyPI(https://www.python.org/)的python所有的依赖包,并且可以选择安装任何在PyPI上已上传的先前版本的依赖包,个人认为是python相关的包和第三方包以及各种版本
2、setuptools (已安装)
easy_install

综上:安装pip的方法:
Install pip and virtualenv for Ubuntu 10.10 Maverick and newer

$ sudo apt-get install python-pip python-dev build-essential
$ sudo pip install --upgrade pip
$ sudo pip install --upgrade virtualenv
For older versions of Ubuntu

Install Easy Install
$ sudo apt-get install python-setuptools python-dev build-essential
Install pip
$ sudo easy_install pip
Install virtualenv
$ sudo pip install --upgrade virtualenv

二、ssh
1.无密码:
ssh-keygen -t rsa
cd ~/.ssh
cp id_rsa.pub authorized_keys
cd
ssh a(建立自身链接)
设置b
拷贝a上的.ssh 文件覆盖本地即可

有时候需要 ssh b@ip 先进行链接(更改 /etc/hosts ip1 主机名a ip2 主机名2 ssh 主机名a)
2.scp
三 、 mysql
find / |grep my.cnf
find / -name my.conf
whereis
which
配置文件
1.终端启动MySQL:/etc/init.d/mysql start;(stop ,restart。)
2.登录MySQL:mysql -u root -p (用root账户登录),然后输入密码; mysql -h ip -u root -p 登陆到其他机器

3.查看所有的数据库名字:show databases;
4.选择一个数据库操作: use database_name;
5.查看当前数据库下所有的表名:show tables;
6.创建一个数据库:create database database_name;
7.删除一个数据库:drop database database_name;
8.创建一个表: create table mytest( uid bigint(20) not null, uname varchar(20) not null);
9.删除一个表: drop table mytest;
10.SQL插入语句:insert into table_name(col1,col2) values(value1,value2);
11.SQL更新语句:update table_name set col1='value1',col2='value2' where where_definition;
12.SQL查询语句:select * from table_name where.......(最复杂的语句)
13.SQL删除语句:delete from table_name where...
14.增加表结构的字段:alert table table_name add column field1 date ,add column field2 time...
15.删除表结构的字段:alert table table_name drop field1;
16.查看表的结构:show columns from table_name;
17.limit 的使用:select * from table_name limit 3;//每页只显示3行
select * from table_name limit 3,4 //从查询结果的第三个开始,显示四项结果。
此处可很好的用来作分页处理。
18.对查询结果进行排序: select * from table_name order by field1,orderby field2;多重排序
19.退出MySQL:exit;
20 导入导出 mysqldump

21 导出文件
第一种 :mysql -uroot -pmima -e"select *from contest" jol > /tmp/contest.txt 有时候会有乱码

第二种 :mysql -uroot -ppwd -e"select * fromtable into outfile '/table.txt' fields terminated by ',' lines terminated by '\r\n'"

远程链接 对于给定的ip 地址
     mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'ip' IDENTIFIED BY 'pwd' WITH GRANT OPTION;
mysql > flush privileges;

四 apache

配置文件 /etc/apache2
日志文件 /var/log/apache2
启动 /etc/init.d/apache2 restart

五、phpmyadmin

本地phpmyadmin远程连接服务器端MySQL 首先要确定你的mysql远程连接已开启,如果没有开启按照下面的二个方法操作:
方法一:改表法
因为在linux环境下,默认是关闭3306端口远程连接的,需要开启,如果你装mysql数据库时开启了3306就OK了。
默认mysql帐号不允许从远程登陆,只允许localhost访问。登入mysql后,更改 "mysql" 数据库 里的 "user"(远程数据库的名称) 表里的 "host" 项,把"localhost"改称"%" 。这样你的mysql就可以远程操作了。
update user set host = '%' where user = 'root';
注意:这样方法只是把本机localhost访问改为了"%"所有地址IP都可以访问mysql服务器,这样很不安全。默认localhost访问的时候有所有操作权限。所以不安全!推荐用第二个方法。
方法二:授权法 (推荐使用)
(1)SQL语句:
grant select,insert,update,delete on *.* to root@"%" Identified by "password";
允许地址IP上root用户,密码dboomysql来连接mysql的所有数据库,只付给select,insert,update,delete权限。 这样比较安全。如果只允许IP(192.168.1.1)上root用户
访问更安全,操作(2)
(2)SQ语句:
grant select,insert,update,delete on *.* to root@"192.168.1.1" Identified by "password";
只允许地址IP(192.168.1.1)上root用户访问更安全了。
(3)
grant all on *.* to root@"192.168.1.1" Identified by "password"
允许地址192.168.1.1上用root用户,密码password来连接mysql的所有数据库,付给所有权限。不太安全。
现在重启mysql服务,如果你的服务器上安装了防火墙,看看3306端口开启没,如果没需要开启3306端口才能用了,在linux下要开启防火墙 打开3306 端口,编辑这个文件vi /etc/sysconfig/iptables
输入
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
保存后在控制台输入 /etc/init.d/iptables restart 重启防火墙,记得一定要重启防火墙。

配置好本地PHP环境,下载PHPMYADMIN
方法一:
(一)、下载phpmyadmin
http://www.phpmyadmin.net/home_page/index.php
(二)、修改libraries文件夹下的config.default.php文件或者phpmyadmin根目录的config.inc.php文件。
1、查找$cfg['PmaAbsoluteUri'] ,将其值设置为你本地的phpmyadmin路径
2、查找$cfg['Servers'][$i]['host'] , 将其值设置为你mysql数据库地址,例如127.0.0.1
3、查找$cfg['Servers'][$i]['user'] , 将其值设置为你mysql数据库用户名,例如admin
4、查找$cfg['Servers'][$i]['password'] , 将其值设置为你mysql数据库密码,例如admin
(三)、在本地访问phpmyadmin 可查看远程mysql数据库,phpMyAdmin 3.3.1只需要修改 $cfg['Servers'][$i]['host']的值,用户名密码 访问phpmyadmin时输入。
方法二:
1,在浏览器中输入:http://localhost/phpmyadmin/setup/
2,点击“新建服务器” ,填写表单:
服务器名称:主机名称
服务器主机名:主机IP
认证方式:config
config 认证方式的用户名:用户名
config 认证方式的密码:用户密码
3,保存后返回setup界面,点击下载,下载的文件为 config.inc.php
4,将下载的文件 config.inc.php 复制到 /usr/share/phpmyadmin/ 目录下

5,编辑 /usr/share/phpmyadmin/config.inc.php
添加以下代码
/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '主机名称';
$cfg['Servers'][$i]['host'] = '主机IP';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = '用户名';
$cfg['Servers'][$i]['password'] = '密码';

六、iptables

iptables -L -n 检查端口情况
为了能采用远程SSH登陆,我们要开启22端口. input链的默认规则是DROP。所以我们就写需要ACCETP的链。
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

iptables -I INPUT -p tcp --dport 3306 -j ACCEPT 开启3306 的端口

iptables -I INPUT -p tcp --dport 3306 -j DROP  关闭

七 vnc
1.每次服务器关闭后,都要重新kill,重新申请vnc端口号。否则出现“authentication failure”

#vncpassword 修改密码
#vncserver -geometry 1280x1024(不能是*,用小写x(字母)) 设置vnc server分辨率
#vncserver -alwaysshared 设置vnc的同一个显示窗口可以连接多个客户机,一般默认是连接最后发送连接请求的客户机
vncserver -kill :15 暴力停止vnc server(一定要记得冒号前加空格,否则kill失败。开多个端口而不用,很浪费资源,一般就一个)

八 、服务器缓存处理
1、
查看目录下有多少个文件及文件夹需在终端输入
ls | wc -w
查看目录下有多少个文件需在终端输入
ls | wc -c
查看文件夹下有多少个文件,多少个子目录需在终端输入
ls -l |wc -l
若只想知道文件的个数,则需在终端输入
/bin/ls -l |grep ^-|wc -l
2、
du -h --max-depth=1 查看文件夹容量
df -h 查看文件系统容量
3、
uname -a 查看系统位数 i686 32 还是 64位
4、find . -mtime +1 -type f -name 'cache*' | xargs rm -rf
寻找 前24小时的文件 放入管道 并且 删除

九、使用shell分析Apache的access.log

#查看80端口的tcp连接

#netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l

1

#当前WEB服务器中联接次数最多的ip地址:

#netstat -ntu |awk '{print $5}' |sort | uniq -c| sort -n -r

#查看日志中访问次数最多的前10个IP

#cat access.log |cut -d ' ' -f 1 |sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 10 |less

#查看日志中出现100次以上的IP

#cat access.log |cut -d ' ' -f 1 |sort |uniq -c | awk '{if ($1 > 100) print $0}'|sort -nr |less

#查看最近访问量最高的文件

#cat access.log |tail -10000|awk '{print $7}'|sort|uniq -c|sort -nr|less

#从日志里查看该ip在干嘛:

#cat access.log | grep 218.66.36.119| awk '{print $1"/t"$7}' | sort | uniq -c | sort -nr | less

#列出传输时间超过 30 秒的文件

#cat access.log|awk ‘($NF > 30){print $7}’|sort -n|uniq -c|sort -nr|head -20

#列出最最耗时的页面(超过60秒的)的以及对应页面发生次数

#cat access.log |awk ‘($NF > 60 && $7~//.php/){print $7}’|sort -n|uniq -c|sort -nr|head -100

九、vi
查找 /关键字 n继续查找 N网上查找
十、其他

1、(乱码) 已配置 并且禁用了 8中字体
zip 解压时:防止乱码 unzip -O CP936 文件名.zip GBK GB18030 ********
ubuntu默认不支持gbk所以用gbk编码写的东西就会乱码 让Ubuntu支持GBK,方法如下:
 修改/var/lib/locales/supported.d/local文件,在文件中添加  zh_CN.GBK GBK  zh_CN.GB2312 GB2312  sudo dpkg-reconfigure --force locales  然后在输出的结果中会出现  zh_CN.GB2312 done  zh_CN.GBK done  这样, Ubuntu就支持GBK编码了这只是系统支持了 有的程序还是不支持的需要你自己再配置一下

2、cp 不带参数,只能copy一个文件,不能copy带文件的目录,到指定地方.

cp -rf 带参数,就能copy任何数据,到指定地方.

比如:cp test.txt /home/MIR1566-PC/Document 拷贝test文本文件到指定目录下.

比如:cp -rf test /home/MIR1566-PC/Document 拷贝test目录到指定目录下.

3、[****@localhost ~]$ su - username
Password: #输入用户username的密码

4、可以用命令“getconf LONG_BIT”查看,
如果返回的结果是32则说明是32位,返回的结果是64则说明是64位。

此外还可以使用命令“uname -a”查看,
输出的结果中,如果有x86_64就是64位的,没有就是32位的。

后续待补