您的位置:首页 > 运维架构 > Linux

linux操作知识归集

2016-09-30 19:42 99 查看

linux操作知识归集(ubuntu)

修改主机名

vi /etc/hostname


该文件中第一行就是主机名

设置固定IP,以及DNS

在Ubuntu 12.04 server 中需要

sudo vi etc/network/interfaces


下图为本机文件内容



关于cp命令的一些测试

cp是文件复制命令,是linux使用过程中常用的命令之一。

在我们使用的过程当中有可能会有一些小问题困惑我们,例如 复制的目录最后需要不需要加“/”?

下面进行一些简单的测试来了了解cp命令的一些规则以使我们可以用的更安心

从两个方面说起

1、如果我们复制的文件源是一个目录。我们在/home目录下新建一个目录 命名为 src_dir 作为需要复制的文件源 我们分别执行以下命令

cp /home/src_dir /home/dest_dir


cp /home/src_dir/ /home/dest_dir


cp /home/src_dir/ /home/dest_dir/


最后测试结果可以看到以上3个命令效果是相同的,都是在/home目录下生成一个新的dest_dir目录

下面我们再进行一个测试,

cp /home/src_dir /home/dest_dir
cp /home/src_dir /home/dest_dir


像上边所示代码一样,如果我们连续执行两条同样的代码会怎么样呢(这种情况很可能会发生,例如你想用第二次复制去覆盖你第一次复制的内容)?

结果是目标目录成为这个样子了

/home/dest_dir/src_dir(我们期望的是 /home/dest_dir)

为什么会这个样子?

这是因为你在执行第一个cp命令时已经在/home目录下生成了dest_dir ,当你第二次执行cp命令,并将已经存在的dest_dir作为参数传入时,cp命令自动将新的复制内容存到dest_dir 的下级,所以就产生 了/home/dest_dir/src_dir的结果。

为了避免这种情况出现,我们尽量在使用cp命令的时候不要改变源文件夹的名字,并且确保目标路径存在。

2、复制的是个文件

对于文件与上述复制文件夹的情况类似,但有一点区别,如果在目标路径后加“/”表示复制到目标文件夹下,如以下两条命令

cp /home/src_file /home/dest_file


cp /home/src_file /home/dest_file/


对于条一条命令,如果/home/dest_file已经存在,且/home/dest_file是一个文件夹,则复制结果是/home/dest_file/src_file 如果/home/dest_file是一个文件,则复制结果仍然是/home/dest_file 只是旧版本的dest_file会被覆盖,如果/home下同时存在名称为dest_file的文件夹和dest_file的文件,则这是不可能的(与windows不同,在Linux中同一目录下文件和文件夹的名字也不能相同)

对于第二条命令,如果已经存/home/dest_file且是个文件夹,则复制结果是/home/dest_file/src_file,如果/home/dest_file不存在则复制会报错说dest_file文件夹不存在。如果dest_file是一个文件,同样会出现错误提示dest_file不是一个文件夹。

ubuntu下创建桌面快捷方式

http://www.2cto.com/os/201406/306618.html

ubuntu 设置静态IP(DNS重启依然有效)

$vi /etc/network/interfaces


# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.101
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1  #多个DNS可用空格相隔


java 设置堆内存溢出快照参数

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=c:\jakarta-tomcat\webapps

移动mysql数据文件目录(datadir)以及selinux的一些经验

mysql 数据文件原来在/var/lib/mysql目录。随着数据库的增加以及数据库内容的增加,希望把数据文件移动到其他磁盘。因为操作系统启用了selinux,所以费了一番折腾,最终解决。方法如下:

关闭mysql: service mysqld stop

复制文件:cp -R /vqr/lib/mysql /xvdb1/

重命名目录: mv /var/lib/mysql /var/lib/mysql-backup

链接文件: ln -s /xvdb1/mysql /var/lib/mysql

修改目录权限:

chown mysql:mysql /xvdb1/mysql -R

chown -h mysql:mysql /var/lib/mysql

修改selinux的content type

chcon -R -t mysqld_db_t /xvdb1/mysql

chcon -h mysqld_db_t /var/lib/mysql

重新启动mysql: service mysqld start

在linux中用ln -s 创建链接时,如上面的 ln -s /xvdb1/mysql /var/lib/mysql,对每个链接,同时关联两个对象,即链接本身以及链接所指向的文件。如/var/lib/mysql,本身是一个链接,同时指向一个实际的目录 /xvdb1/mysql。当在链接上使用chown或chcon时,默认修改的是链接指向的对象,即/xvdb1/mysql,而不是链接本身。为了修改链接本身的owner或context type,需要加上 -h 参数。因此上面chown和chcon都用了两遍。

附上错误信息:

110824 6:55:11 [Warning] Can’t create test file /var/lib/mysql/testemp.lower-test

110824 6:55:11 [Warning] Can’t create test file /var/lib/mysql/testemp.lower-test

/usr/libexec/mysqld: Can’t change dir to ‘/var/lib/mysql/’ (Errcode: 13)

关闭selinux方法

https://jingyan.baidu.com/article/6d704a131ba67828da51ca73.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息