《LINUX私房菜》笔记
中文MAN文档:
wget http://manpages-zh.googlecode.com/files/manpages-zh-1.5.1.tar.gz
./configure && make && make install
export LANG=zh_CN.GB2312
想看英文的, man -a ls
如果想删除,make uninstall
如果系统里没有安装gcc 和 g++ 的话:
如果是 CentOS 系统,可以使用 yum install gcc
使用 yum search gcc ,看到 gcc-c++.x86_64 ,所以使用 yum install gcc-c++* 就可以安装 g++ 了
关闭系统声音: modprobe -r pcspkr
恢复系统声音:modprobe pcspkr
bc命令,默认保留0位小数,可以使用 scale=n 来保留 n 位小数。 2^32 表示2的32次方。
history 会显示最近执行过的命令,通过!加上history序号,就可以执行history里的命令。
在输入命令时,Ctrl + a 会跳到命令开头; Ctrl + e 会跳到命令结尾;Ctrl + u 删除光标前的命令;Ctrl + k 删除光标后的命令。
切换到root帐号:
sudo su 或 su -
/etc/init.d/ 文件夹下是系统各个级别中的服务。
/etc/rc.d/ 文件夹下的 rc0.d/ 文件夹到 rc6.d/ 文件夹 分别是 0~6 这七个级别,文件夹里的文件名(服务)以S开头的表示启动,以K开头的表示不启动。
第六章
ls -l 来查看文件类型
- 开头是普通文件
d 开头是文件夹
b 开头是块设备文件(即可存储的设备)
c 开头是字符设备文件(如键盘等不可存储的设备)
l 开头的是软链接文件(即快捷方式)
然后依次显示三方对于该文件的权限:所有者,所有组,其它用户,依次为 u , g , o 。所有的用 a
chmod a=rwx test.cpp
chmod u+x,g+x,o-x test.cpp
chmod 755 test.cpp r用4,w用2,x用1 ,然后相加之和。 对于文件来说,x是执行权限;对于文件夹来说,是进入权限。
ls -l 目录名 查看的是这个目录下文件的信息
ls -ld 目录名 查看的是这个目录的信息
chmod 777 目录名 则只改变该目录权限
chmod -R 777 目录名 则可递归改变该目录下所有文件权限
chown -R 所有者 目录名 可递归改变该目录下所有文件的所有者
chown 所有者:所有组 文件名 同时改变所有者和所有组,使用冒号和逗号都是可以的
chgrp 改变所有组
查看文件类型,不使用后缀,使用: file 文件名
cd ~ 可以切换到用户家目前, 直接用 cd 效果一样
cd ~yugd 切换到 yugd 的家目录里去。
cd - 切换到上一次的目录
mkdir -p 目录名/目录名
mkdir -p aa/{bb,cc,dd}
cp -p 可以把属性信息一起复制过去。
more 文件名 可以分页查看文件,不过只能向后翻,回车按行,空格或d键按屏,q退出。支持查找关键字。
less 文件名 也可以分页查看文件,不过比 more 强大,可向上向下翻,快捷键和vim相同。而且可以查找关键字。
tail -f 文件名 可以持续查看文件末尾动态变化,比如可以用来监测日志。
touch 文件名 如果该文件不存在,则创建;如果存在,则更新其修改时间。
touch -t 201301011200 文件名
which、whereis
locate 关键字 : 它查找的是系统中的一个数据库 /var/lib/mlocate/mlocate.db,该数据库每天生成一次。你可以使用 updatedb 来立即更新。
find [目录] -属性 值
find -user root -group root
find / -name Login.hpp -or -name Register.hpp
find / -size +1M -size -10M 如果不指明大小单位,则为字节
find -ctime -3 -ctime 为天数,可换为 -cmin 表示分钟。 后面的值 -3 表示小于3天,如果是 +3,表示大于3天。
find -newer test.cpp 在本目录查找比 test.cpp 还新的文件。
id 用户名:查看用户的uid
su - tianya 切换用户,默认切换到 root
使用CentOS 64bit 安装 wine 时,会报错,可以执行:
./configure --enable-win64
yum install libgail-gnome-devel.x86_64
在 LINUX 下远程:
ssh 10.10.10.121
远程 windows 桌面有两个好用的工具:rdesktop 和 tsclient ,我觉得 tsclient 更好用。但使用tsclient,必须安装rdesktop,因为tsclient实际上是rdesktop的外壳程序,调用rdesktop进行连接。
安装 wine:
yum install wine --setopt=protected_multilib=false --skip-broken
编码转换工具: iconv \ enca \ convmv 前两者是转文件内容的,第三个是转换文件名的。
find default -type d -exec mkdir -p utf/{} \;
find s3 -type f -exec enca -x utf8 {} \;
ssh -l root 10.10.10.222 使用 ssh 命令来连接远程LINUX机器, -l 参数表示 login_name 或: ssh root@10.10.10.222
scp /root/test.cpp root@10.10.10.222:/root/test 使用 scp 命令来上传本地文件到远程LINUX机器上的相应路径
echo 123456 | passwd --stdin bob 给 bob 用户修改密码
linux系统中有个符号链接:/proc/self/exe 它代表当前程序,所以可以用readlink读取它的源路径就可以获取当前程序的绝对路径,如下:
#include <unistd.h> #include <stdio.h> int main(int argc , char* argv[]) { char buf[1024] = { 0 }; int n; n = readlink("/proc/self/exe" , buf , sizeof(buf)); if( n > 0 && n < sizeof(buf)) { printf("%s\n" , buf); } }
如果在putty中的命令行下无法输入中文,甚至都无法粘贴中文时(如 svn ci -m "中文注释"),可能是 /etc/inputrc (或者修改 /root/.inputrc)文件配置有了变化,该文件是处理键盘映射的,找到下面两项,修改成如下即可:
set meta-flag on //允许从终端输入中文,否则的话终端会过滤掉每个字节的最高位 set input-meta on //允许向终端直接输入中文 set convert-meta off //设置不将中文字符转化为转义序列,因为中文是两个字节表示的,第一字节的最高位是1开头的,可以能同于某个转义字符 set output-meta on //允许向终端直接输出中文
想临时取消 alias 效果,比如 alias cp = 'cp -i',可以在命令前加上 "\" 来执行,如
\cp -r /tmp/test /tmp/script/