Ubuntu下常用命令集锦

查找所需文件由哪个软件包提供:

在Linux下,可以看看/usr/include下有没有这个文件(DEB系统可以用apt-file find include/thread.h这样的命令来查哪个软件包提供了所需的文件) 在使用apt-file前首先按照,之后update。然后在执行命令即可。

sudo apt-get提示缺少锁的解决

当软件中心工作时,命令行方式执行sudo apt-get会提示缺少锁。这时候如果软件中心工作正常,那么退出后会释放锁。但是如果软件中心挂了(很被催的经历,发生在安装某软件期间死机后),那么需要强行释放锁。
      出现问题时系统提示如下:
                      无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
                     E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?”
     解决方法如下:
                     1.终端输入 ps  -aux ,列出进程,找到含有apt-get的进程,直接sudo kill PID解决。
                     2.强制解锁--命令:
                          sudo rm /var/cache/apt/archives/lock
                          sudo rm /var/lib/dpkg/lock

Eclipse环境设置:

增加工程需要引用的库文件

   --在project中选择properties,然后选择C/C++ Build,选择settings,在里面的libraries中,增加已经引用的库,注意前面的lib和后面的so都不需要加入,只是填中间的即可。

设置提示信息响应速度

  ---window->preferences->Editor->content Assist->Delay.默认值500ms,

设置双击函数名称时,显示函数定义信息窗口的背景色(默认为黑色,字体黑色,结果看不见了。)--方法修改ubuntu系统主题背景色。

Eclipse中查看完整函数名提示:alt+/
Eclipse自动注释本行文字:ctrl+/

在给工程设置链接库路径时,需要注意不支持子目录查找,因此需要显示定义各个库的目录。

Alt+/:代码提示 Ctrl+/:注释/取消注释 Ctrl+D:删除光标所在行 Ctrl+K:将光标停留在变量上,按Ctrl+K键可以查找到下一个同样的变量 Shift+Ctrl+K:和Ctrl+K查找的方向相反 Shift+Ctrl+F:代码格式化。如果选择了代码,仅对所选代码格式化 Shift+Ctrl+O:快速地导入import Shift+Ctrl+X:将所选字符转为大写 Shift+Ctrl+Y:将所选字符转为小写 Ctrl+M:快速对当前视图最大化 Ctrl+O:在代码中打开类似大纲视图的小窗口 Ctrl+单击:可以跟踪方法和类的源码 Alt+左右方向键:跳到前一次/后一次的编辑位置。 Ctrl+鼠标停留:可以显示类和方法的源码 双击左括号(小括号、中括号大括号),将选择括号内的所有内容。 Ctrl+1:光标停在某变量上,按Ctrl+1键,可以提供快速重构方案。选中若干行,按Ctrl+1键可将此段代码放入for、while、if、do或try等代码块中。 F3:打开声明该引用的文件 F4:打开类型层次结构 F5:单步跳入 F6:单步跳过 F7:单步跳出 F8:继续,如果后面没有断点,程序将运行完 Ctrl+H:打开搜索窗口 Ctrl+Shift+S:保存全部 Alt+Left:回退一步 Alt+Right:前跳一步 Ctrl+Shift+T:打开类型 Ctrl+Shift+R:打开资源 Ctrl+Q:回到最后一次编辑的地方 Ctrl+Shift+G: 在workspace中搜索引用 Ctrl+Alt+Down: 复制高亮显示的一行或多行 Alt+Up(Down):将一行或者多行向上或者向下移动


ubuntu系统主题背景色修改(12.04)

--参见http://blog.csdn.net/androidyue/article/details/9295505。结果发现不行。最后去了ubuntu中文论坛,结论是修改一个巨丑陋的默认主题后,解决。


抓包

        安装了wireshark抓包,结果提示没有可供抓包的网卡。后来发现是权限问题。也就是说需要用root帐号登录。

ubuntu下用root登录的方法(转载):经测试,没成功

 12.04默认是不允许root登录的,在登录窗口只能看到普通用户和访客登录。以普通身份登陆Ubuntu后我们需要做一些修改,普通用户登录后,修改系统配置文件需要切换到超级用户模式,在终端窗口里面输入: sudo  -s.然后输入普通用户登陆的密码,回车即可进入 root用户权限模式。
然后执行: vi /etc/lightdm/lightdm.conf.
增加 greeter-show-manual-login=true  allow-guest=false  . 修改完的整个配置文件是
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-show-manual-login=true #手工输入登陆系统的用户名和密码
allow-guest=false   #不允许guest登录
然后我们启动root帐号:
sudo passwd root
根据提示输入roott帐号密码。
重启ubuntu,登录窗口会有“登录”选项,这时候我们就可以通过root登录了。

在usb上划分分区

fdisk /dev/sdb

m --命令列表

d--删除分区

w--保存修改

n--增加分区

p--打印当前分区信息


格式化usb

方法1:fdisk

 fdisk -l 对比查找usb挂载后的盘符。
umount该盘符。
mkfs -t ext3 /dev/sdb1

注意,第一次做失败了,是因为错误输入sdb4,导致格式化了u盘的第四个分区,但是默认使用的分区1没有格式化。

usb的使用只能从u盘往外拷贝,不能往里拷贝


格式化usb之后,以为就可以拷贝数据了,结果悲剧的发现,只能从u盘往外拷贝,不能往里拷贝。

经查是ext3作为文件格式支持acl设置。

而ntfs不支持acl 所以直接挂载后就可以拷贝了。

解决方法:

方法一

首先插入u盘,sudo fdisk -l查看了盘符。

然后,sudo mkdir /home/work/usb

sudo mount  /dev/sdc4 /home/work/usb

发现usb目录隶属于root。

进入命令行,sudo cp。。。。。。

当然,使用后不要忘记umount

方法二

能否考虑通过一些参数设置,允许任意账户使用u盘呢?

ubuntu下抓包

安装并且使用了wireshark。
结果打开提示没有可操作的网卡。
后发现是需要root权限。进入命令行su root后sudo wireshark即可。
wireshark提示可以有更稳妥的方案。赶时间,未尝试。

用树形显示进程和线程

转:http://hi.baidu.com/willor/blog/item/fd58e6c5ea840ca38326ac6a.html
ps -ef f 
用树形显示进程和线程,比如说我想找到proftp现在有多少个进程/线程,可以用 
$ ps -ef f | grep proftpd 
nobody 23117 1 0 Dec23 ? S 0:00 proftpd:   (accepting   connections)   
jack 23121 23117 0 Dec23 ? S 7:57 /_ proftpd: jack - ftpsrv:   IDLE 
jack 28944 23117 0 Dec23 ? S 4:56 /_ proftpd: jack - ftpsrv:   IDLE 
这样就可以看到proftpd这个进程下面挂了两个线程。 
在Linux下面好像因为没有真正的线程,是用进程模拟的,有一个是辅助线程,所以真正程序开的线程应该只有一个。
 
另外用pstree -c也可以达到相同的效果 
$ pstree -c | grep proftpd 
|-proftpd-+-proftpd 
| `-proftpd
 

如何查看进程中各线程的内存占用情况?

用ps aux只能查看到进程,如果进程里面使用了pthread编程,用什么命令才能查询到进程里的线程资源占用?
ps aux | grep不就是了

如何开启ipv4数据转发功能

临时:echo "1">/proc/sys/net/ipv4/ip_forward
固定:修改/etc/sysctl.conf,取消这一行的注释:
net.ipv4.ip_forward= 1
然后使之立即生效

如何配置nat服务(iptables)

设置iptables规则
临时:iptables -t nat -A POSTROUTING -j MASQUERADE
  • 固定:
  • 或者把上面这个写到一个启动脚本中(比如/etc/rc.local)。这里还有另外一个版本:
  • iptables -F
  • iptables -P INPUT ACCEPT
  • iptables -P FORWARD ACCEPT
  • iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -jMASQUERADE
  • 据说“第一句是清除掉之前所有的iptables规则,第二第三句是允许接收和发送数据包,第四句是在eth1网口上NAT“,只是比上面的多了几句废话,最后指定网卡参数什么,还没试过。iptables的用法还得好好学。

命令行方式修改IP地址

1.给一个网卡配置多个IP地址


ifconfig eth0:0 192.168.1.2 netmask 255.255.255.0

ifconfig eth0:1 192.168.1.3 netmask 255.255.255.0

ifconfig eth0:3 192.168.1.4 netmask 255.255.255.0


2.取消一个IP地址


ifconfig eth0:3 down

常见问题

修改拥有者:chown user file
修改权限 :chmod 777 file
修改组:chgrp group file
编译:gcc -Wall main.c -g -o test
注意,此处加入-c,则不可执行。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
dup2(int oldfd,int newfd);
这个函数是复制文件描述符,将newfd描述符所对应的文件表 改成 oldfd所对应的文件表项。之后,newfd与oldfd指向同一个文件表。这样就将newfd重定向到oldfd.
dup2(4,1),这个就是将标准输出重定向到文件描述符4所对应的文件。系统默认是将文件描述符1对应标准输出(终端),也就是说,我们使用向描述符1写数据,会写到终端。调用dup2(4,1)之后,会写到描述符4所对应的文件。
dup2(1,4),这个是将描述符4重定向到标准输出,如果向描述符4写数据,会输出到终端。
获取文件修改时间
Linux下可以用
date -r filename "+%F %T"
-------------------------------------------------------------------------------------------------------------------------------------------------------------------

Linux的man使用

Linux的man手册共有以下几个章节:

代號 代表內容
1 使用者在shell中可以操作的指令或可执行档
2 系統核心可呼叫的函数与工具等
3 一些常用的函数(function)与函数库(library),大部分是C的函数库(libc)
4 装置档案的说明,通常在/dev下的档案
5 设定档或者是某些档案的格式
6 游戏(games)
7 惯例与协定等,例如Linux档案系统、网络协定、ASCII code等等的說明
8 系統管理員可用的管理指令
9 跟kernel有关的文件

  • man是按照手册的章节号的顺序进行搜索的,比如:
man sleep
只会显示sleep命令的手册,如果想查看库函数sleep,就要输入:
man 3 sleep
-------------------------------------------------------------------------------------------------------------------------------------------------------------------

linux下查看静态库和动态库是32位还是64位


动态库:
file ./usr/libexec/sudo_noexec.so

静态库:
objdump -a libmqapi.a 

DOS/Windows和Linux/Unix间的文件格式转换

vi file
            先按 EXC  再按 :
            输入 :set ff = unix   回车
或者 输入set fileformat=unix

tar   jxvf   linux-2-4-2.tar.bz2

df查看文件系统的可用空间及使用情况

 df命令可以显示目前所有文件系统的可用空间及使用情形,举例如下

以下是代码片段:
[yayug@yayu ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             3.9G  300M  3.4G   8% /
/dev/sda7             100G  188M   95G   1% /data0
/dev/sdb1             133G   80G   47G  64% /data1
/dev/sda6             7.8G  218M  7.2G   3% /var
/dev/sda5             7.8G  166M  7.2G   3% /tmp
/dev/sda3             9.7G  2.5G  6.8G  27% /usr
tmpfs                 2.0G     0  2.0G   0% /dev/shm


查看文件大小使用命令du

以下是代码片段:
[root@bsso yayu]# du -h --max-depth=1 work/testing
27M     work/testing/logs
35M     work/testing
[root@bsso yayu]# du -h --max-depth=1 work/testing/*
8.0K    work/testing/func.php
27M     work/testing/logs
8.1M    work/testing/nohup.out
8.0K    work/testing/testing_c.php
12K     work/testing/testing_func_reg.php
8.0K    work/testing/testing_get.php
8.0K    work/testing/testing_g.php
8.0K    work/testing/var.php
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
27M     work/testing/logs/
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
24K     work/testing/logs/errdate.log_show.log
8.0K    work/testing/logs/pertime_show.log
27M     work/testing/logs/show.log
 
 
 
 
 

ldd <可执行文件名>       查看可执行文件链接了哪些  系统动态链接库

nm <可执行文件名>       查看可执行文件里面有哪些符号

strip <可执行文件名>      去除符号表可以给可执行文件瘦身

strings <可执行文件名>从可执行程序里面提取出来一点什么文本信息的话

gzip压缩和gunzip解压缩

压缩保留源文件的方法: 

gzip –c filename > filename.gz 

压缩不保留源文件

gzip -9v filename

Linux解压缩保留源文件的方法: 

gunzip –c filename.gz > filename 

Linux查看系统日志的方法: 

lastb -f /var/adm/wtmp
针对ubuntu lastb -f /var/log/wtmp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值