Ubuntu技巧

(1)Ubuntu12.10 root用户登录设置
ubuntu12.10默认不允许root用户登录,在登录窗口只能看到普通用户和访客登录。
以普通身份登陆ubuntu后,我们需要做一些修改
普通用户登录后,修改系统配置文件需要切换到超级用户模式,在终端窗口里面输入: sudo  -s,然后输入普通用户登陆的密码,回车即可进入root用户权限模式。
然后执行: vi /etc/lightdm/lightdm.conf
增加:greeter-show-manual-login=true allow-guest=false
修改完的整个配置文件是:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-show-manual-login=true #手工输入登陆系统的用户名和密码
allow-guest=false #不允许guest登录
然后我们启动root帐号:
sudo passwd root
根据提示输入root帐号密码。
重启ubuntu,登录窗口会有“登录”选项,这时候我们就可以通过root登录了。


(2)Ubuntu12.10 命令行模式启动
Ubuntu12.10 命令行模式启动方法:
终端执行:vi /etc/default/grub
将 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 改为 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text"
然后执行 update-grub
重启ubuntu,这时默认就从命令行模式启动了。


(3)apt-get install 安装失败解决方案
Ubuntu下安装常用服务apt-get install 真得很好用,但它也有发生错误的时候。
Package *** is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source.
解决方案是先运行apt-get update更新软件包列表,然后再安装需要用到的package,不信你试试看。


以下是apt-get和apt-cache命令的详细介绍:
apt-get命令的用法很简单,以下是其主要功能的介绍:
apt-get update 更新软件包列表
apt-get upgrade 升级系统中的所有软件包
apt-get install 安装软件包
apt-get remove 卸载软件包
apt-get source 下载源码包
apt-cache是另外一个很有用的命令,可以用它来搜索某个软件包的名字,或者显示某个软件包的详细信息。
apt-cache search mysqlcpp 搜索含有mysqlcpp字样的软件包
apt-cache show ssh 查看ssh软件包的详细信息


(4)Ubuntu安装PHP环境,Apache2+MySQL+PHP
sudo apt-get install mysql-server // 安装MySQL服务端
sudo apt-get install mysql-client // 安装MySQL客户端
sudo apt-get install apache2 // 安装Apache
sudo apt-get install php5 // 安装PHP5
sudo apt-get install libapache2-mod-php5 // 配置APACHE+PHP
sudo apt-get install libapache2-mod-auth-mysql // 让apache支持MySQL
sudo apt-get install php5-mysql // mysql连接
sudo apt-get install php5-gd // GD库
sudo apt-get install phpMyAdmin // 安装phpMyAdmin图形化管理工具
注:在安装phpMyAdmin图形化管理工具时,系统会将其自动安装在/usr/share目录下,此时只需将该目录中的phpMyAmin目录拷贝到/var/www目录下,然后运行http:/localhost/phpmyadmin即可访问。


(5)C语言访问MySQL数据库问题时,系统缺少mysql.h头文件
Ubuntu在默认情况下,并没安装libmysqlclient-dev库,在用C语言访问MySQL数据库时,
首先执行:apt-get install libmysqlclient-dev
编译指令:gcc -I/usr/include/mysql -o * *.c -L/usr/lib/mysql -lmysqlclient


(6)MySQL开启远程访问方法
MySQL安装后,默认不支持远程访问,解决方案是:
用vim编辑器打开MySQL配置文件/etc/mysql/my.cnf,注释掉下面一行:
#bind-address           = 127.0.0.1
然后给远程用户赋权限:(如果已经赋予权限,则没有必要)
GRANT ALL ON *.* TO username@'%' IDENTIFIED BY 'password';
最后重启MySQL服务,就可以远程访问了。


(7)C语言连接MySQL数据库客户端中文乱码问题
首先查看MySQL数据库默认编码:
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
mysql> show variables like 'coll%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
此时,我们发现默认编码latin1并非我们想要的,假设我们的数据是utf8编码,我们需要修改MySQL配置文件:/etc/mysql/my.cnf
[client]下添加:default-character-set=utf8
[mysqld]下添加:character_set_server=utf8
然后重启MySQL服务:service mysql restart


再次查看编码时,我们发现默认编码已经发生了变化:
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
mysql> show variables like 'coll%';
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
数据库和表可能需要重建,看看问题是否依然存在,通常情况下问题解决了。


但如果你使用C语言访问数据库的话,有个函数,你得特别注意:
int mysql_set_character_set(MYSQL * mysql, char * csname)
在数据库连接成功后,在插入数据前一定要调用此函数修改C语言默认字符集,默认为latin1编码;第二个参数的格式是"utf8";调用成功返回0,失败返回非0值。


(8)配置静态IP地址,适用于Ubuntu Server版本
#vim /etc/network/interfaces
原文件内容:
auto lo
iface lo inet loopback
auto em1
iface em1 inet dhcp
此处默认使用DHCP分配IP,我们将其修改如下:
auto lo
iface lo inet loopback
# The primary network interface
auto em1
# iface em1 inet dhcp
iface em1 inet static
address 192.168.0.188
netmask 255.255.255.0
gateway 192.168.0.1
设置完IP,子网掩码和网关后,我们设置DNS服务器:
#vim /etc/resolv.conf
添加DNS:
search mydomain.com
nameserver 192.168.10.100
nameserver 192.168.10.104
配置完成后,重启网络服务:
/etc/init.d/networking restart
注意:重启Ubuntu系统后,/etc/resolv.conf会被重写,此时的dns又被修改为默认值,所以我们需要永久性修改DNS。方法如下:
#vim /etc/resolvconf/resolv.conf.d/base
nameserver 192.168.10.100
nameserver 192.168.10.104
最后重启networking服务使其生效:
/etc/init.d/networking restart
(9)Ubuntu 12.10安装vsftpd服务,530 login incorrect解决方案
首先安装vsftd服务端:apt-get install vsftpd
然后修改配置文件:vim /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
此时我们登陆时,可能会报530 login incorrect错误,经过自己的一番尝试,终于找到了解决方案:
apt-get remove vsftpd
rm /etc/pam.d/vsftpd
apt-get install vsftpd
 
(10) 设置服务程序开机自动启动
首先将启动服务程序的shell脚本放在/etc/init.d目录下,然后输入命令:
sysv-rc-conf 脚本名 on
重启后你便发现脚本已经在启动时执行了。


查看软件xxx安装内容

  • dpkg -L xxx 

查找软件

  • apt-cache search 正则表达式

查找文件属于哪个包

  • dpkg -S filename
    apt-file search filename

查询软件xxx依赖哪些包

  • apt-cache depends xxx

查询软件xxx被哪些包依赖

  • apt-cache rdepends xxx

增加一个光盘源

  • sudo apt-cdrom add

系统升级

  • sudo apt-get update
    sudo apt-get dist-upgrade

清除所以删除包的残余配置文件

  • dpkg -l |grep ^rc|awk '{print $2}' |tr ["\n"] [" "]|sudo xargs dpkg -P  -

编译时缺少h文件的自动处理

  • sudo auto-apt run ./configure

查看安装软件时下载包的临时存放目录

  • ls /var/cache/apt/archives

系统

查看内核

  • uname -a

查看Ubuntu版本

  • cat /etc/issue

查看内核加载的模块

  • lsmod

查看PCI设备

  • lspci

查看USB设备

  • lsusb

查看网卡状态

  • sudo ethtool eth0

查看CPU信息

  • cat /proc/cpuinfo

显示当前硬件信息

  • lshw

硬盘

查看硬盘的分区

  • sudo fdisk -l

查看硬盘剩余空间

  • df -h
    df -H

查看目录占用空间

  • du -hs 目录名

优盘没法卸载

  • sync
    fuser -km /media/usbdisk

内存

查看当前的内存使用情况

  • free -l

进程

查看当前有哪些进程

  • ps -A

中止一个进程

  • kill 进程号(就是ps -A中的第一列的数字)
    或者 killall 进程名

强制中止一个进程(在上面进程中止不成功的时候使用)

  • kill -9 进程号
    或者 killall -9 进程名

查看当前进程的实时状况

  • top

查看进程打开的文件

  • lsof -p

ADSL

配置 ADSL

  • sudo pppoeconf

ADSL手工拨号

  • sudo pon dsl-provider

激活 ADSL

  • sudo /etc/ppp/pppoe_on_boot

断开 ADSL

  • sudo poff

查看拨号日志

  • sudo plog

网络

根据IP查网卡地址

  • arping IP地址

查看当前IP地址

  • sudo ifconfig eth0 |awk '/inet addr/ {split($2,x,":");print x[2]}'

查看当前外网的IP地址

  • w3m -no-cookie -dump www.ip138.com|grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'
    w3m -no-cookie -dump ip.loveroot.com|grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'

查看当前监听80端口的程序

  • lsof -i :80

查看当前网卡的物理地址

  • sudo arp -a | awk '{print $4}'
    sudo ifconfig eth0 | head -1 | awk '{print $5}'

立即让网络支持nat

  • sudo echo 1 > /proc/sys/net/ipv4/ip_forward
    sudo iptables -t nat -I POSTROUTING -j MASQUERADE

查看路由信息

  • netstat -rn
    sudo route -n

手工增加删除一条路由

  • sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
    sudo route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1

修改网卡MAC地址的方法

  • sudo ifconfig eth0 down #关闭网卡
    sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE #然后改地址
    sudo ifconfig eth0 up #然后启动网卡

服务

添加一个服务

  • sudo update-rc.d 服务名 defaults 99

删除一个服务

  • sudo update-rc.d 服务名 remove

临时重启一个服务

  • /etc/init.d/服务名 restart

临时关闭一个服务

  • /etc/init.d/服务名 stop

临时启动一个服务

  • /etc/init.d/服务名 start

设置

配置默认Java使用哪个

  • sudo update-alternatives --config java

修改用户资料

  • sudo chfn userid

给apt设置代理

  • export http_proxy=http://xx.xx.xx.xx:xxx

修改系统登录信息

  • sudo vim /etc/motd

中文

转换文件名由GBK为UTF8

  • sudo apt-get install convmv
    convmv -r -f cp936 -t utf8 --notest --nosmart *

转换文件内容由GBK为UTF8

  • iconv -f gbk -t utf8 $i > newfile 

文件

快速查找某个文件

  • whereis filename
  • find 目录 -name 文件名

查看文件类型

  • file filename

显示xxx文件倒数6行的内容

  • tail -n 6 xxx

查找包含xxx字符串的文件

  • grep -l -r xxx .

查找关于xxx的命令

  • apropos xxx
    man -k xxx

通过ssh传输文件

  • scp -rp /path/filename username@remoteIP:/path  #将本地文件拷贝到服务器上
    scp -rp username@remoteIP:/path/filename /path #将远程文件从服务器下载到本地

查看某个文件被哪些应用程序读写

  • lsof 文件名

压缩

解压缩 xxx.tar.gz

  • tar -zxvf xxx.tar.gz

解压缩 xxx.tar.bz2

  • tar -jxvf xxx.tar.bz2

压缩aaa bbb目录为xxx.tar.gz

  • tar -zcvf xxx.tar.gz aaa bbb

压缩aaa bbb目录为xxx.tar.bz2

  • tar -jcvf xxx.tar.bz2 aaa bbb

Nautilus

显示隐藏文件

  • Ctrl+h

显示地址栏

  • Ctrl+l

特殊 URI 地址

  • * computer:/// - 全部挂载的设备和网络
    * network:/// - 浏览可用的网络
    * burn:/// - 一个刻录 CDs/DVDs 的数据虚拟目录
    * smb:/// - 可用的 windows/samba 网络资源
    * x-nautilus-desktop:/// - 桌面项目和图标
    * file:/// - 本地文件
    * trash:/// - 本地回收站目录
    * ftp:// - FTP 文件夹
    * ssh:// - SSH 文件夹

查看已安装字体

  • 在nautilus的地址栏里输入”fonts:///“,就可以查看本机所有的fonts

程序

详细显示程序的运行信息

  • strace -f -F -o outfile <cmd>

日期和时间

设置日期

  • #date -s mm/dd/yy

设置时间

  • #date -s HH:MM

将时间写入CMOS

  • hwclock --systohc

读取CMOS时间

  • hwclock --hctosys

控制台

不同控制台间切换

  • Ctrl + ALT + ←
    Ctrl + ALT + →

指定控制台切换

  • Ctrl + ALT + Fn(n:1~7)

控制台下滚屏

  • SHIFT + pageUp/pageDown

控制台抓图

  • setterm -dump n(n:1~7)

数据库

mysql的数据库存放在地方

  • /var/lib/mysql

从mysql中导出和导入数据

  • mysqldump 数据库名 > 文件名  #导出数据库
    mysqladmin create 数据库名 #建立数据库
    mysql 数据库名 < 文件名 #导入数据库

忘了mysql的root口令怎么办

  • sudo /etc/init.d/mysql stop
    sudo mysqld_safe --skip-grant-tables &
    sudo mysqladmin -u user password 'newpassword''
    sudo mysqladmin flush-privileges

修改mysql的root口令

  • sudo mysqladmin -uroot -p password '你的新密码'

其它

下载网站文档

  • wget -r -p -np -k http://www.21cn.com
    · -r:在本机建立服务器端目录结构;
    · -p: 下载显示HTML文件的所有图片;
    · -np:只下载目标站点指定目录及其子目录的内容;
    · -k: 转换非相对链接为相对链接。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值