
正文
Linux系统lib命令 linux libre
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Linux 史上最全命令大全
1、ls命令
cd /root
ls #显示当前目录下所有的非隐藏文件
ls -a #显示当前目录下所有文件,包含隐藏文件
ls -l #显示当前目录下所有的非隐藏文件的详情
ls -al #显示当前目录下所有文件,包含隐藏文件 的详情
ls -lh #以列表形式显示当前目录下所有的非隐藏文件的大小(K M T)
ls -alh #以列表形式显示所有文件,包含隐藏文件的文件大小(K M T)
常用的组合:
ls
ll #等价于 ls -l
ls /etc #显示/etc目录下的文件
2:pwd命令
用来显示当前所在的路径
绝对路径: 从/目录开始的路径
/root
/etc/sysconf
/opt/server/data-integration/libswt/win64
相对路径: 相对当前的路径
3、mkdir命令
cd /root
mkdir mytest #在当前目录创建文件夹
mkdir -p 111/222/333 #一次创建多级文件夹
mkdir /root/mydemo #使用绝对路径来创建
mkdir mydemo2 #使用相对对路径来创建
4、rm命令
这个命令既可以删除文件,也可以删除目录
删文件:
cd /root
rm a.txt #删除时,会给出提醒确认,输入y删除,n不删除
rm -f b.txt #强制删除 等价于 rm -f /root/b.txt
rm ../dir2/b.txt
touch a.java b.java c.java
rm a.java b.java c.java #一次可以删除多个文件
rm *.java -fr #可以删除当前目录下的所有.java文件
cd dir
rm * -fr #删除当前目录的所有内容
删目录:
rm -r 111 #删除目录,依次提醒删除
rm -rf mytest #强制删除 等价于 rm mytest -fr
常用组合:
rm -fr 文件或目录
5、cd命令
cd 命令可以进入一个目录,类似于对windows上的文件夹进行双击
cd #直接cd 可以从任何一个目录回到/root目录
cd /root #进入root目录
cd /opt/server/data-integration/system/
cd .. #回到上一级目录
cd ../.. #回到上上一级目录
cd - #可以在最近的两次目录之间切换
cd /root
mdkir dir1 dir2
cd dir1
cd ../dir2 #使用相对路径 /中国/广东省/深圳市/宝安区/留仙二路/78号
6、历史命令和table补全
使用上下方向键可以找出历史命令
table键:
cd /opt/ #两次table可以列出/opt目录下所有的文件和子目录
cd /opt/s #一次table可以自动补全目录内容,前提是/opt目录下只有一个s开头的目录
7、touch命令
cd /root
touch a.java #在当前目录创建a.txt文件
touch b.java c.java #创建多个文件
touch /root/d.java #通过绝对路径创建
8、mv命令
移动:
1、mv 文件 目录 #将文件移动到目录中区
cd /root/dir1
touch a.txt
mv a.txt /root/dir2 #等价于 mv a.txt ../dir2
2、 mv 目录1 目录2 #将目录1移动到目录2下面(前提是目录2必须存在)
cd /root
mv dir2 dir1 #将dir2移动到dir1下面
重命名:
1、mv 文件1 文件2 #给文件重命名(文件2不能存在)
cd /root
mv a.txt aaa.txt #将a.txt 重命名为aaa.txt
2、mv 目录1 目录2 #给目录重命名(目录2不能存在)
cd /root
mv dir1 dirx #将dir1重命名为dirx
9、cat命令
显示文件内容
cd /root
cat user.txt
10、cp命令
复制文件
cd /root
cp user.txt user2.txt
cp user.txt /opt/ #将当前目录的user.txt 复制到/opt目录,文件名保持不变
cp user.txt /opt.user2.txt #将当前目录的user.txt 复制到/opt目录,文件名改为user2.txt
cp /opt/server/data-integration/pan.sh ./ #将指定目录里的文件复制到当前目录(.后边的/可以去掉)
cp /opt/server/data-integration/pan.sh ./dirx #将指定目录里的文件复制到当前目录下的dirx目录(.后边的/比可以去掉)
cp /opt/server/data-integration/pan.sh /root/dirx #作用同上
11、解压和压缩
Linux的压缩包后缀一般是: .tar.gz
解压:
.tar.gz
将snappy-1.1.1.tar.gz上传到/root/dir1目录
tar -zxvf snappy-1.1.1.tar.gz #默认解压到当前目录
tar -xvf snappy-1.1.1.tar.gz #默认解压到当前目录
tar -xvf snappy-1.1.1.tar.gz -C /opt #将压缩包解压到/opt目录
.zip格式
unzip mysql-connector-java-8.0.13.zip #默认解压到当前目录
unzip -d /opt mysql-connector-java-8.0.13.zip #解压到指定目录
压缩:
.tar.gz
tar -czvf snappy-1.1.1.tar.gz snappy-1.1.1 #将snappy-1.1.1文件夹进行打包压缩
tar -czvf /root/dir/snappy-1.1.1.tar.gz /opt/server/snappy-1.1.1
.zip格式
zip -r mysql-connector-java-8.0.13.zip mysql-connector-java-8.0.13/
12、find命令
用来实现文件的查找
find / -name 'a.txt' #从/目录开始查找a.txt文件
find / -name 'ins*' #从/目录开始查找以ins开头的文件
find / -type f -size +100M #查找/目录下文件大小大于100M的文件
13、grep命令
grep lang anaconda-ks.cfg #从anaconda-ks.cfg文件中查找包含lang的内容
14、ps命令
ps #查看依赖终端的进程
ps -ef #查看Linux系统中所有的进程
15、kill命令
kill -9 进程的pid #每次启动进程时,pid会发生变化,但是进程运行期间pid不会变化
16、管道 |
管道就是把前边命令的结果作为后边命令的输入
ps -ef | grep mysql #查找和mysql相关的进程
ll /etc | grep java #在/etc目录中查找java相关的文件
17、用户的操作
用户创建和密码设置
useradd itheima #创建新用户itheima
passwd itheima #设置用户itheima密码
用户删除
userdel -r itheima #删除用户itheima
18、文件的权限
所属用户: root 文件的创建者
所属用户组: root 和文件创建者在一个组的用户
其他用户: itcast 既不是文件创建者,也和文件创建者不在同一组
r: 可读
w:可写
x: 可执行
chmod命令:
方式1:
chmod u+rw a.txt #在所属用户之前的权限基础上添加可读和可写权限
chmod u=rw a.txt #将所属用户的权限直接修改为可读,可写
chmod +x #给所属用户,所属用户组和其他用户全部加上可执行权限
方式2:
chmod 777 a.txt #给所有用户加上所有权限
19、clear命令
用来清屏
快捷键: ctrl + l
20、history命令
用来查看所有的历史命令
21:vi编辑器的使用
vi a.txt #打开a.txt文件
vim a.txt #vim是vi的增强
22、网络管理命令
hostname :查看主机名
修改主机名: /etc/hostname
ifconfig :查看ip地址
修改ip地址: /etc/sysconfig/network-scripts/ifcfg-ens33
服务问题:
service network restart
相关问答
Q1: linux操作系统中,加载和删除内核模块的命令是什么?
modprobe命令\x0d\x0aLinux命令Linux系统lib命令:modprobe 。\x0d\x0a功能说明:自动处理可载入模块。\x0d\x0a语法:modprobe [-acdlrtvV][--help][模块文件][符号名称 = 符号值]。\x0d\x0a补充说明:modprobe可载入指定Linux系统lib命令的个别模块Linux系统lib命令,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系Linux系统lib命令,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。\x0d\x0a\x0d\x0a内容\x0d\x0a1、modprobe 命令是根据depmod -a的输出/lib/modules/version/modules.dep来加载全部的所需要模块。\x0d\x0a2、删除模块的命令是:modprobe -r filename。\x0d\x0a3、系统启动后,正常工作的模块都在/proc/modules文件中列出。使用lsmod命令也可显示相同内容。\x0d\x0a4、在内核中有一个“Automatic kernel module loading"功能被编译到Linux系统lib命令了内核中。当用户尝试打开某类型的文件时,内核会根据需要尝试加载相应的模块。/etc/modules.conf或 /etc/modprobe.conf文件是一个自动处理内核模块的控制文件。\x0d\x0amodprobe命令主要用于在Linux 2.6内核中加载和删除Linux内核模块。通过此命令用户可以轻松地加载和删除Linux内核模块,同时使用此命令加载Linux内核模块时,Linux内核会自动解决内核模块之间的依赖关系,将相互依赖的模块自动加载,如下所示:\x0d\x0a1) 加载RAID1阵列级别模块:\x0d\x0a[root@rhel5 boot]# modprobe raid1 \x0d\x0a\x0d\x0a2) 显示已加载的RAID1阵列级别模块:\x0d\x0a[root@rhel5 boot]# lsmod |grep raid1 raid1 25153 0 \x0d\x0a\x0d\x0a3) 删除RAID1阵列级别模块:\x0d\x0a[root@rhel5 boot]# modprobe -r raid1 \x0d\x0a\x0d\x0a4) 显示RAID1阵列级别模块:\x0d\x0a[root@rhel5 boot]# lsmod |grep raid1 \x0d\x0a\x0d\x0amodprobe命令在加载模块时会自动解决依赖的模块。当加载的模块需依赖另一个模块时,系统会自动将此模块加载。而当用户使用insmod命令加载模块时,则不会自动解决相对应的依赖模块。\x0d\x0amodprobe命令中的"-r"参数表示删除指定模块,"-c"参数表示显示/etc/modprobe.conf配置文件的参数,"-C"参数表示指定内核配置文件,"-f"表示覆盖,"-l"表示显示模块的绝对路径。\x0d\x0a[root@rhel5 boot]# modprobe -l|grep raid /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid0.ko /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid456.ko /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid1.ko /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid10.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/aacraid/aacraid.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_mbox.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_mm.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_sas.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/raid_class.ko \x0d\x0a\x0d\x0a以上命令表示显示系统中所有的编译模块,并过滤包含有raid字符串的模块。
Q2: linux一个应用多个版本动态库命令
Linux 系统,也同样面临和Window一样的问题,如何控制动态库的多个版本问题。Window之前没有处理好,为此专门有个名词来形容这个问题 “Dll hell”,其严重影响软件的升级和维护。 Dll hell 是指windows 上动态库新版本覆盖旧版本,但是却不兼容老版本。常常发生在程序升级之后,动态库更新,原有程序运行不起来;或者装新软件,但是已有的软件运行不起来。 同样Linux操作系统,也有同样的问题,那么它是怎么解决的呢?
Linux 为解决这个问题,引入了一套机制,如果遵守这个机制来做,就可以避免这个问题。 但是这只事一个约定,不是强制的。但是建议遵守这个约定,否则同样也会出现 Linux 版的Dll hell 问题。 下面来介绍一个这个机制。 这个机制是通过文件名,来控制dll (shared library) 的版本。
Linux 上的Dll ,叫shared library,其有三个名字,分别有不同的目的。
第一个是共享库本身的文件名(real name),其通常包含版本号,常常是是这样: libmath.so.1.1.1234 。 lib是Linux 上的库的约定前缀,math 是共享库名字,so 是共享库的后缀名,1.1.1234的是共享库的版本号,其主版本号+小版本号+build号。主版本号,代表当前动态库的版本,如果动态库的接口有变化,那么这个版本号就要加1;后面的两个版本号(小版本号 和 build 号)是告诉你详细的信息,比如为一个hot-fix 而生成的一个版本,其小版本号加1,build号也应有变化。 这个文件名包含共享库的代码。
第二个是动态库的soname( Short for shared object name),其是应用程序加载dll 时候,其寻找共享库用的文件名。其格式为
lib + math+.so + ( major version number)
其只包含major version number,换句话说,也就是只要其接口没有变,应用程序都可以用,不管你其后minor build version or build version。
问题来了,程序运行时怎么通过soname 找个real name? Soname 存在哪里?如果与real name 关联起来?什么时候存的?
这就是接下来要介绍的第三个共享库的名字,link name,顾名思义,就是在编译过程,link 阶段用的文件名。 其将sonmae 和real name 关联起来。
第三个名字,共享库的连接名(link name),是专门为build 阶段连接而用的名字。这个名字就是lib + math +.so ,比如libmath.so。其是不带任何版本信息的。在共享库编译过程中,连接(link) 阶段,编译器将生成一个共享库及real name,同时将共享库的soname,写在共享库文件里的文件头里面。可以用命令 readelf -d sharelibrary 去查看。
Linux系统lib命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux libre、Linux系统lib命令的信息别忘了在本站进行查找喔。







