Linux使用总结

来源:互联网 发布:matlab矩阵相加 编辑:程序博客网 时间:2024/06/09 20:32

Linux 命令

安装和登陆

登陆命令login

登陆系统

文件处理

创建链接ln

硬链接和软链接

$ ln f1 f2 创建一个f2的硬连接$ ln -s f1 f3 创建一个f3的软连接

删除f1,f3失效,f3是f1的快捷方式;删除f1,f2可以使用。
参考:http://blog.chinaunix.net/uid-26983585-id-3245031.html

列出目录ls

$ ls -a$ ls -l

查找find

$ find -name file

grep

cat

unzip

解压缩。如果有多卷,先合并再解压:

$ cat files.* >files_all.zip& unzip files_all.zip

安全

文件权限chmod

  • 用于改变文件或目录的访问权限,用户可以用它控制文件或目录的访问权限,使用权限是超级用户。
  • chmod命令有两种用法。一种是包含字母和操作符表达式的字符设定法(相对权限设定);另一种是包含数字的数字设定法(绝对权限设定)。

(1)字符设定法
chmod [who] [+ | - | =] [mode] 文件名
◆操作对象who可以是下述字母中的任一个或它们的组合
u:表示用户,即文件或目录的所有者。
g:表示同组用户,即与文件属主有相同组ID的所有用户。
o:表示其它用户。
a:表示所有用户,它是系统默认值。
◆操作符号
+:添加某个权限。
-:取消某个权限。
=:赋予给定权限,并取消其它所有权限(如果有的话)。
◆设置mode的权限可用下述字母的任意组合
r:可读。
w:可写。
x:可执行。
X:只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。
s:文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t:保存程序的文本到交换设备上。
u:与文件属主拥有一样的权限。
g:与和文件属主同组的用户拥有一样的权限。
o:与其它用户拥有一样的权限。
文件名:以空格分开的要改变权限的文件列表,支持通配符。
一个命令行中可以给出多个权限方式,其间用逗号隔开。
(2) 数字设定法
数字设定法的一般形式为: chmod [mode] 文件名
数字属性的格式应为3个0到7的八进制数,其顺序是(u)(g)(o)文件名,以空格分开的要改变权限的文件列表,支持通配符。

字表示的权限的含义如下:0001为所有者的执行权限;0002为所有者的写权限;0004为所有者的读权限;0010为组的执行权限;0020为组的写
权限;0040为组的读权限;0100为其他人的执行权限;0200为其他人的写权限;0400为其他人的读权限;1000为粘贴位置位;2000表示假
如这个文件是可执行文件,则为组ID为位置位,否则其中文件锁定位置位;4000表示假如这个文件是可执行文件,则为用户ID为位置位。

$ chmod +x test.sh$ chmod 666 file...

文件所有者chown

  • 更改一个或多个文件或目录的属主和属组。使用权限是超级用户。
  • chown [选项] 用户或组 文件

网络

$ nmcli dev show$ nmcli dev

其他


Linux使用

Ubuntu配置VPN上网

Ubuntu中的网络管理机制

Ubuntu中有两种网络管理方案:文本配置工具以及图像化的管理工具NetworkManager.这两套网络管理工具是独立的,为了方便我只使用图形化的管理工具.这样,需要把/etc/network/interfaces文件中的其他内容删除,只保留两行:

auto lo
iface lo inet loopback

这样,NetworkManager才会接管网络.
但是,输入nmcli dev命令,发现以太网不可用,查看IP地址后发现没有分配IP地址,所以终端输入sudo dhclient enp2s0,获取IP地址.之后就可以在Ubuntu右上角的的网络管理中看到enp2s0了.配置IP地址,子网掩码,网关,DNS服务器地址,就可以上内网了.

配置VPN

到内网http://www.cc98.org/dispbbs.asp?BoardID=212&id=2323871&page=&replyID=2323871&star=1下载xl2tpd包:xl2tpd_1.2.5+zju-1_i386.deb或者xl2tpd_1.2.5+zju-1_amd64.deb,安装:

$ sudo dpkg -i xl2tpd_1.2.5+zju-1_amd64.deb

如果缺少依赖项,自行安装.
安装完毕有提示,按照提示操作就可以了.

修改环境变量

修改/etc/profile文件

下载工具

  • wget http://blog.csdn.net/endall/article/details/1571220
  • curl

Ubuntu运行库

Ubuntu的运行库管理工具ldconfig

ldconfig的介绍:http://linux.101hacks.com/unix/ldconfig/
在 Linux 下面,共享库的寻找和加载是由 /lib/ld.so 实现的。 ld.so 在标准路经(/lib, /usr/lib) 中寻找应用程序用到的共享库。如果共享库不在标准路径下,则需要指定共享库的搜索路径.ldconfig是一个管理linux下共享库符号链接的工具,共享库的查找路径定义在/etc/ld.so.conf中.ldconfig的作用就是将/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache中,ld.so 加载共享库的时候,会从 ld.so.cache查找.因此当安装完一些库文件,(例如刚安装好glib),或者修改ld.so.conf增加新的库路径后,需要运行一下/sbin/ldconfig.使所有的库文件都被缓存到ld.so.cache中,如果没做,即使库文件明明就在/usr/lib下的,也是不会被使用的,结果编译过程中报错,缺少xxx库.

共享库搜索路径LD_LIBRARY_PATH

Linux 的先辈 Unix 还有一个环境变量 - LD_LIBRARY_PATH 来处理非标准路经的共享库。ld.so 加载共享库的时候,也会查找这个变量所设置的路经。但是,有不少声音主张要避免使用 LD_LIBRARY_PATH 变量,尤其是作为全局变量.解决这一问题的另一方法是在编译的时候通过 -R 选项指定 run-time path.
如果需要用到的共享库在非标准路径

方法一:将非标准路经加入 /etc/ld.so.conf,然后运行 ldconfig 生成 /etc/ld.so.cache。 ld.so 加载共享库的时候,会从 ld.so.cache 查找。
方法二:将共享库路径添加到LD_LIBRARY_PATH环境变量

其他

ldd命令查看程序的依赖库

Ubuntu编译时包含路径和库目录

pkg-config简介

编译程序的时候需要指定库目录和包含目录,为了减少库版本的更换造成编译命令的变化,人们使用了库信息提取工具pkg-config:事先把库的位置信息等保存起来,需要的时候再将其中有用的信息提取出来供编译和链接使用.
pkg-config 是通过库提供的一个.pc 文件获得库的各种必要信息的,包括版本信息、编译和连接需要的参数等。这些信息可以通过 pkg-config 提供的参数单独提取出来直接供编译器和连接器使用.
在默认情况下,每个支持pkg-config 的库对应的 .pc 文件在安装后都位于安装目录中的 lib/pkgconfig 目录下。安装完库之后,我们需要告诉系统该库对应的pkgconfig的目录.默认的PKG_CONFIG_PATH是/usr/lib/pkgconfig,我们可以将我们安装的库的pkgconfig目录添加到环境变量PKG_CONFIG_PATH.
这样,我们在编译程序的时候会方便很多,假设一个 sample.c 的程序用到了 Glib 库,就可以这样编译:

gcc -c `pkg-config --cflags glib-2.0` sample.c

有些库不支持pkgconfig,比如boost库.


update-alternatives切换软件版本

update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个软件版本.
介绍下 update-alternatives 命令中的几个主要选项,diplay、install、remove、config:

  • display:查看一个命令链接组的所有信息,包括链接的模式(自动还是手动)、链接priority值、所有可 用的链接命令等等。使用语法:update-alternatives –display name ,其中name为命令链接名称
  • install: 增加一组新的系统命令链接符了.使用语法为:update-alternatives –install link name path priority [–slave link name path]… 其中link为系统中功能相同软件的公共链接目录,比如/usr/bin/java(需绝对目录); name为命令链接符名称,如java; path为你所要使用新命令、新软件的所在目录; priority为优先级,当命令链接已存在时,需高于当前值,因为当alternative为自动模式时,系统默认启用priority高的链接; –slave为从alternative。
  • remove:删除一个alternative及相关从alternative,使用语法为:update-alternatives –remove name path,其中name与path与install中的一致,如果所删除的链接组中还有其他链接的话,系统将会自动从其他中选择一个priority高的链接作为默认为链接。
  • config:在现有的命令链接选择一个作为系统默认的

Ubuntu增加交换空间

1.首先用命令free查看系统内 Swap 分区大小

$ free -m

2.创建一个 Swap 文件

$ sudo dd if=/dev/zero of=/mnt/swap bs=1024 count=16384

3.格式化Swap 文件

$ sudo mkswap /mnt/swap

4.激活交换空间

$ sudo swapon swapfile

5.修改权限

$ sudo chown root:root /mnt/swap$ sudo chmod 0600 /mnt/swap$ ls -l /mnt/swap

显示:

$ -rw------- 1 root root 17179869184  7月 13 13:27 /mnt/swap
$ free -m             total       used       free     shared    buffers     cachedMem:          7890       7814         76        399         37       5154-/+ buffers/cache:       2622       5268Swap:        16383          0      16383

如果要卸载交换空间:

$ sudo swapoff swapfile

如果想开机自动挂载就需要修改fstab,输入

$ sudo gedit /etc/fstab

在文件的最后面加上

swap(此处swapswap文件的绝对地址)       none            swap    sw              0       0

Ubuntu远程登陆

Ubuntu远程登陆客户端

安装远程登陆客户端:

$ sudo apt-get install rdesktop

查看使用说明

$ rdesktop -h

登陆

$ rdesktop -f -a 24 xx.xx.xx.xx

选择全屏,24位彩色。
退出全屏:

Ctrl+Alt+Enter

Ubuntu远程登陆服务器端

1.安装mate桌面
2.安装xrdp

Linux Shell编程

注意创建完源文件后要赋予可执行权限。
读取文件fileA每一行

while read linedo...done < $fileA

分割字符串str

output=${str#*.}   #删除从左边以'.'结尾的最短的字符串output=${str##*.}  #删除从左边以'.'结尾的最长的字符串output=${str%.*}   #删除从右边起以'.'结尾的最短字符串output=${str%%.*}  #删除从右边起以'.'结尾的最长的字符串

数学计算

Ubuntu问题解决

WPS无法输入中文

原因:环境变量未正确设置
$ vi /usr/bin/wps,添加以下内容:

#!/bin/bashexport XMODIFIERS="@im=fcitx"export QT_IM_MODULE="fcitx"gOpt=#gOptExt=-multiplygTemplateExt=("wpt" "dot" "dotx").......
0 0
原创粉丝点击