linux 基础知识

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 主机名

  1. 修改 /etc/HOSTNAME
  2. export HOSTNAME
  3. 停止服务 /etc/rc.d/boot.localnet stop
  4. 启动服务 /etc/rc.d/boot.localnet start

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值