export | 打印当前shell的环境变量 |
ln –s src dest | 创建软连接 |
sed –i “/export/d” | 删除含有export的行 |
ldconfig | 用来解决无动态库的问题或者弄错了动态库的软连接 |
ldd | 查看可执行程序依赖哪些库文件 |
df –T | 查看磁盘使用率和文件系统 |
fdisk -l | 查看磁盘分区表 |
mkfs | 创建一个文件系统,或者为一个分区指定文件系统 |
mount | 挂载一个分区或者磁盘到某个目录 |
umount | 去挂载分区或者磁盘 若报错“Device is busy”,则用isof查看被占用的进程,用kill -9 结束进程,再umount |
mount –o loop xx.so /tmp | 将xx.iso 光盘挂到/tmp 下 |
umount /tmp 或者umount xx.iso | 去挂载xx.iso |
drop_caches | 释放内存, 0 不释放, 1 释放页缓存, 2 释放dentries 和 index 3 释放所有的缓存 |
top | 查看Linux 所有tasks 或者进程 |
ps -ef | 查看进程 |
cat /porc/<pid>/stack | 查看进程栈信息 |
netstat -ant | 查看端口和对应的进程名 |
awk –F “:” {print $n} {print $nF} | : 分隔符 用分隔符分割后的第几部分 从后向前,用分隔符分割的第几部分 |
basename | 获取脚本或者可执行程序的文件名 |
dirname | 获取脚本或者可执行文件的目录(相对目录) |
mkdir | 创建目录 |
chmod | 改变文件权限 |
chown | 改变文件所属用户和用户组 |
watch –n 3 “cmd” | 每隔3s执行一次cmd命令 例如:watch –n 3 “date” |
sed –i ‘s/aaa/bbb/g’ | 将所有的aaa替换成bbb |
find . –name Makefile| xargs sed –i ‘s/aaa/bbb/g’ | 将所有makefile 中的aaa换成bbb 什么时候会用到? 当源码被-O选项优化后,要单步跟踪时,将-O后的参数变为0,表示不优化,就可以单步跟踪了 |
修改suse-linux 主机名 |
|
suse-linux zypper 命令 | zypper是rpm包管理命令,类似于yum 和 apt-get,可以自动安装所依赖的软件包 |
crontab | Linux 任务计划程序 |
/etc/cron.deny | 该文件所列的用户不允许使用crontab命令 |
/etc/cron.allow | 该文件所列的用户允许使用crontab命令 |
/var/spool/cron/tabs | 所有用户的crontab 文件 |
crontab -l | 显示用户的crontab文件内容 |
crontab -e | 编辑用户的crontab文件,和vi /var/spool/cron/tabs/root 是一样的效果 |
*分钟 0-59 *小时0-23 *日期1-31 *月份1-12 *星期0-6 | cmd命令格式 |
redhat6/centos6:
打开/关闭防火墙:service iptables start/stop
防火墙自启动:chkconfig iptables off/on
redhat7/centos7:
打开/关闭防火墙:systemctl start/stop firewall.service
防火墙自启动:systemctl enable/disable firewall.service
rpm 命令:
安装 | rpm –ivh xx.rpm |
卸载 | rpm –evh xx.rpm |
查询 | rpm –q xx(不写.rpm) rpm –qa 查询所有的安装包 rpm –qi 查看安装包的详细信息,包名必须详细 rpm –ql 显示安装包的安装路径 |
查询其他选项 | --force 强制操作 --requires 显示该包的依赖关系 --nodeps 忽略依赖关系,并继续操作 |
find . –type d | 查找当前目录下的目录 |
ulimit –c ulimited | 设置系统允许产生core 文件 |
echo “./core-%p-%e” > /proc/sys/kernel/core_pattern | 设置在当前文件产生core文件 |
---------------------------------------------------------------------------------------------------------------------------------
查看suse-linux 系统及相关组件版本(gcc,glibc):
rpm -qa | grep glibc|xargs rpm -qi
cat /etc/SUSE-release
uname -a
gcc -v 查看编译器版本和位数
---------------------------------------------------------------------------------------------------------------------------------
Linux解压缩命令:
文件格式 | 解压 | 压缩 |
.tar.gz 或者 .tgz | tar –zxvf xx.tar.gz | tar –zcvf xx.tar.gz /tmp |
.tar | tar –xvf xx.tar | tar –cvf xx.tar /tmp |
.gz | gunzip xx.gz gzip –d xx.gz | |
.tar.bz2 | tar –jxvf xx.tar.bz2 | tar –jcvf xx.tar.bz2 |
.bz2 | bzip2 –d xx.bz2 | bzip2 –z xxFile bunzip2 xx.bz2 |
.tar.bz | tar –jxvf xx.tar.bz | tar –jcvf xx.tar.bz |
.bz | bzip2 –d xx.bz bunzip2 xx.bz | |
.tar.z | tar –zxvf x.tar.z | tar –zcvf xx.tar.z /tmp |
.z | uncompress xx.z | compress xxfile |
.xz | xz –d xx.xz | |
.zip | unzip xx.zip | zip xx.zip [-r] dirname |
.rpm | rpm2cpio xx.rpm|cpio –div | |
.deb | arp xx.deb xx.tar.gz|tar zxvf |
---------------------------------------------------------------------------------------------------------------------------------
ssh服务的配置文件
/etc/ssh/sshd_config:
RSAAuthentication yes
pubkeyAuthentication yes
PermitRootLogin yes(允许root登录)
UsePAM yes(普通用户登录)
在redhat7/centos7 上使配置文件生效的方法:
systemctl reload sshd.service
---------------------------------------------------------------------------------------------------------------------------------
.so 对外的函数接口必须在 对应的.h 中声明,
nm –D xx.so | 查看so文件里的函数列表 |
readelf –s xx.so | 查看so文件里的符号表 |
readelf –a xx.so | 查看so文件里的所有信息 |
strings xx.so | grep gcc | 查看so文件里的gcc版本 |
---------------------------------------------------------------------------------------------------------------------------------
当Linux 执行了ldconfig后报错:xx.so is not a symbolic link,造成的Linux命令大多数不能用,报错信息为:/lib64/libc.so.6 elf file osABI invaild.
解决方法:
1. 通过 echo "/path/" >> /etc/ld.so.conf
将path路径加入到ldconfig的配置文件中,确保ldconfig的执行不报错
2.Sln /lib64/libc-2.4.so /lib64/libc.so.6
第一步如果不成功,也可执行第二步,创建一个软连接(是Sln 不是 ln)
---------------------------------------------------------------------------------------------------------------------------------
linux 软件安装:
1. 源码安装:
if ./configure 后面有参数 --prefix=/path,
所有的文件都在 /path 下
else
bin 在 /usr/local/软件名/bin
so 在 /usr/local/软件名/lib
etc 在 /usr/local/软件名/etc
其他放在 /usr/local/软件名/share
2. rpm包安装
通过rpm -ql xx 查找 (xx代表rpm包全名,如果不知道,可用 rpm -qa| grep xx过滤出来,再执行rpm -ql xx)
一般放在 /usr/bin, /usr/lib, /usr/include, /usr/share
---------------------------------------------------------------------------------------------------------------------------------
在Linux下源码编译中,一般采用 -g -On 的方式优化代码,-g表示gdb可以调试,-O表示优化等级,n表示等级,n=0,不优化,n最大为3,一般情况下n=2
优化的坏处:在gdb单步调试时,行号乱跳,不能按行号顺序执行
解决方法:另所有的-On = -O0
优化的好处:提高程序运行速度
---------------------------------------------------------------------------------------------------------------------------------
Linux 不能用上下键调用历史命令的方法:
1. 看 set-o | grep history 是否显示为on
2.查看环境变量 $HISTFILE, $HISTSIZE, $HISTFILESIZE 是否有值,且后2个不能为0,设置文件为:
针对某个用户:~/.bashrc
针对全部用户:/etc/profile