首页 > 代码库 > UBUNTU 札记(53条经验)
UBUNTU 札记(53条经验)
adobe_pdf 菜单栏
/etc/profile
是一个global config file,会影响系统全局用户,如果你只想对single user生效的话,可以修改vi ~/.bash_profile
。 在终端下输入export UBUNTU_MENUPROXY=
偶把export UBUNTU_MENUPROXY=
加到启动脚本里/opt/Adobe/Reader8/bin/acroread
里alias acroread="export UBUNTU_MENUPROXY= && /opt/Adobe/Reader8/bin/acroread" echo "alias acroread=\"export UBUNTU_MENUPROXY= && /opt/Adobe/Reader8/bin/acroread\"" >>~/.bashrc
解除Unity系统托盘图标限制:
由于在Unity中,Ubuntu对系统托盘采取了白名单机制,只有在白名单内的程序才能在系统托盘处显示图标,这显然不符合我们的要求。因为我们还需要开启一些中国特色的软件,如WINE、AIR程序等。所以需要解除这一设置:
#如果你想所有的程序都可以显示,则在终端运行下面命令: gsettings set com.canonical.Unity.Panel systray-whitelist "[‘all‘]" #若你想自定义程序的话,运行下面的命令(YOUR_APPLICATION是程序名): gsettings set com.canonical.Unity.Panel systray-whitelist "[‘JavaEmbeddedFrame‘, ‘Mumble‘, ‘Wine‘, ‘YOUR_APPLICATION‘]" #还原到系统默认状态: gsettings set com.canonical.Unity.Panel systray-whitelist "[‘JavaEmbeddedFrame‘, ‘Mumble‘, ‘Wine‘, ‘Skype‘, ‘hp-systray‘]"
如何用linux创建iso镜像文件
1.用dd命令
dd if=/dev/cdrom of=/***/目的文件.iso
上面的命令是在将光盘作成iso文件
2.用mkisofs 命令
mkisofs -r -J -V 卷标名 -o 目的文件.iso 源文件
上面的命令是将 “源文件” 文件及目录作成 “目的文件.iso”。
注:卷标名是iso文件载入系统时显示的名称
time command 计算command运行的时间
Rhythmbox 乱码
原理应该就是让播放器先试着用GBK解码标签,然后用UTF-8解码,其实就是调整解码顺序啦。具体的做法就是在/etc/profile.d/文件夹底下创建一个shell脚本:
#!/bin/bash export GST_ID3_TAG_ENCODING=GBK:UTF-8:GB18030 export GST_ID3V2_TAG_ENCODING=GBK:UTF-8:GB18030
必须让Rhythmbox重新读取音乐文件的信息,可以通过删除~/.local/share/rhythmbox下的所有文件来实现。注销后再登录使sh脚本生效,重新添加音乐文件即可。
自动挂载硬盘
可以通过配置/etc/fstab文件来实现系统启动时自动进行挂载。
设备编号 挂载点 挂载方式 挂载参数 /dev/sdb1 /media/DATA ntfs-3g umask=0000,uid=1000,gid=1000,defaults,locale=zh_CN.UTF-8 0 0
挂载参数中uid,gid等可以运行命令id得到,上面给出的一般是系统第一个注册用户的参数。
man ntfs-3g
可以得到详细文档。ubuntu 安装新字体:
把字体文件复制到家目录的.fonts文件夹下。 常见字体名和文件名对照:http://www.yale.edu/chinesemac/pages/fonts.html
让codeblocks调用系统终端:
启动codeblocks,点击菜单栏
Settings => Environment settings
,把下面的“Terminal to launch console programs”的内容改成gnome-terminal -t $TITLE -x
codeblocks增加设置快捷键插件,codeblocks官方发布版没有自定义快捷键的功能,需要由插件来实现,一般可以通过安装codeblocks-contrib软件包来实现sudo apt-get install codeblocks-contrib
但是这一般要解决很多依赖并下载大量数据,实际上是因为同时安装的还有很多其他插件,一个简单的方法就是下载
codeblocks-contrib
然后手动解压两个文件(文件名应该是key,搜索一下即可)到对应位置实现插件的安装。修改ubuntu显示桌面默认快捷键为win+d
安装 :
sudo apt-get install gconf-editor
输入命令 :gconf-editor
找到目录:apps->Metacity->Global keybingdings
下的show desktop
属性修改值为<super>d
装好texlive后更新、安装新软件包
若用光盘安装,完成后默认更新目录是光盘的挂载目录,此时可以重新设置默认更新仓库:
sudo tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet
另一个仓库是 ftp://ftp.ctex.org/CTAN/systems/texlive/tlnet. Texlive每年都会发布新版本,测试期间会frozen旧版本的仓库,这时可以设定仓库地址为诸如ftp://tug.org/historic/systems/texlive/2015/tlnet-final.
更改后运行命令进行升级:
sudo tlmgr update --self sudo tlmgr update --all
运行命令
sudo tlmgr --gui
可以打开texlive可视化界面进行配置。 在编译tex文件时如果出现错误提示无法找到**.sty,则运行下面命令安装宏包:sudo tlmgr install **
如果安装名称不对,可以先查找缺失文件对应的包名:
sudo tlmgr search --global --file **.sty
安装Adobe字体:
首先下载下面的这些字体文件:
AdobeSongStd-Light.otf AdobeFangsongStd-Regular.otf AdobeHeitiStd-Regular.otf AdobeKaitiStd-Regular.otf
里面有宋体和黑体.
sudo mkdir /usr/share/fonts/adobe #把otf字体文件复制到 /usr/share/fonts/adobe sudo cp Adobe*.otf /usr/share/fonts/adobe/ #更新字体缓存: sudo fc-cache -fsv #察看一下是否已安装: fc-list | grep Adobe
让终端不显示当前路径
选择以下变量定义追加到
~/.bashrc
export PS1="\[\e]0;\u@\h: \w\a\e[32;1m\]\$\[\e[0m\] " export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\W\$ " export PS1=‘/\W\$ ‘
建议采用第二条,当前完整路径将会显示在标题上,提示符$前仅显示当前文件夹的名称。 相关分析见http://www.yunsec.net/a/school/xtrm/linux/2010/0522/4012.html
Mercurial
在仓库根目录下创建文件
.hgignore
添加以下内容可使hg仅跟踪某些类型的文件和文件夹syntax: regexp .*\.(?!(h|cpp|cbp|depend|layout|cxx|ini)$) ^bin/ ^obj/
注:hgignore支持两种语法,Python/Perl-style regular expressions和系统shell。虽然shell语法一目了然,但是还是建议使用regexp吧,一是不用在文件中指定语法(正则表达式是默认语法),二是可控性高些。常用需求有两种:过滤掉特定类型文件(一般是靠后缀),过滤掉特定文件夹下的文件。
- 过滤特定后缀的写法:`/.xxx$`,“/.”是就是“.”,因为“.”在正则表达式里有特殊含义,所以前面要加上“/”转义。“$”表示结束,所以上面的表达式的意思是匹配以“. xxx ”结束的文件 - 过滤特定文件夹的写法:`^folder/`.python的路径分隔符是“/”,这样在不同的操作系统上是可移植的。“^”表示开始。一个完整的文件名是path/filename,所以上面的表达式的意思是匹配“folder/ ”开始的文件。
.hg/hgrc配置文件
# 设置hg默认拉取和推送地址: [paths] default = 拉取地址 default-push = 推送地址 #设置hg用户名及默认编辑器 [ui] username = nickname <email> editor = nano
注:nano是一个和记事本十分像的编辑器,很好用哦!
google code 被墙
去google搜online ping,在英文google搜。在提供在线ping的国外网站上
ping code.google.com
,取得ip。改/etc/hosts
文件,将刚才ping到的ip设置和code.google.com配对。(最好清空一下dns缓存,windows下命令行输入ipconfig /flushdns,我自己没有清缓存也可以。)利用下面命令导出和导入一些commit,或者使用更加方便的
transplant
扩展:hg export -o ‘changeset-%R.patch‘ 1:tip hg import $(ls *.patch | sort -V)
利用
hg-git
扩展操作git仓库,注意clone的时候要求克隆地址(URL或文件夹名)必须以.git
结尾,否则会报错找不到仓库。克隆github地址形式需要转换一下:hg clone git://github.com/user/repo.git # set the push path in hgrc as following hg push git+ssh://git@github.com/user/repo.git hg push git+ssh://SSHConfigEntry/user/repo.git # where SSHConfigEntry can be defined in ssh/config file as: # Host SSHConfigEntry # User git # must be git, not your github user name # Hostname github.com # IdentityFile ~/.ssh/private-key
Git
下载github中仓库下某一个文件夹内的文件,可使用命令
svn checkout $(echo $GITHUB_HTTPS|sed ‘s#tree\/master#trunk#‘)
,即使用trunk
替换github地址中的tree/master
。用于做中央备份的git仓库最好是裸仓库,通过
hg-git
推送时要求目标git仓库是bare
的。一下命令创建会克隆一个裸仓库:git init --bare repo.git git clone --bare https://github.com/user/repo.git
安装GSL - GNU Scientific Library库
去
http://www.gnu.org/software/gsl/
下载GSL的源码包,解压后按照INSTALL文件介绍的步骤安装GSL。./configure && make && sudo make install
在编译源代码时,提示找不到头文件,这是因为在编译时没有添加链接库参数引起的。
命令
gsl-config --cflags
命令即可查询编译参数Cflags,gsl-config --libs
可查询库参数Libs。举例:
//filename: test.c #include <stdio.h> #include <gsl/gsl_block_double.h> int main() { gsl_block * b = gsl_block_alloc(100); printf("length of block = %u\n", b->size); printf("block data address = %#x\n", b->data); gsl_block_free(b); return 0; }
以上源码使用了gsl下
gsl_block_double.h
这个头文件,编译的时候有命令gcc test.c `gsl-config --libs`
也可以首先执行一遍
gsl-config --libs
,再用相应结果替换gcc的编译参数。如果gsl-config --libs
不起作用,则在安装目录</lib/pkgconfig>下有一个文件gsl.pc,里面就有编译选项Cflags和Libs。将一组图片合成为GIF,延时为10,无限循环播放
convert -delay 10 -loop 0 *.jpeg 4*101-k=0.1-ONE.gif
以HTTP方式共享当前文件夹的文件
python -m SimpleHTTPServer
这命令启动了Python的SimpleHTTPServer模块,考虑到Python在绝大多数的Linux发 行版当中都默认安装,所以这个命令很可能是最简单的跨平台传文件的方法。命令执行后将在本机8000端口开放HTTP服务,在其他能访问本机的机器的浏览器打开__http://ip:8000__即打开一个目录列表,点击即可下载。
将Windows/dos格式的换行(CRLF)转成Unix格式(LF)
awk ‘{ sub(/\r$/,""); print }‘
这条语句使用了sub(regex,repl,[string])函数。此函数将匹配regex的string替换成repl,如果没有提供string参数,则$0将会被默认使用。$0的含义代表整行。
这句话其实是将\r删除,然后print语句在行后自动添加一个ORS,也就是默认的\n。
将Unix格式的换行(LF)换成Windows/dos格式(CRLF)
awk ‘{ sub(/$/,"\r"); print }‘
这句话同样使用了sub函数,它将长度为0的行结束符$替换成\r,也就是CR。然后print语句在后面添加一个ORS,使每行最后以CRLF结束。
SSH
有时候不想开启 SFTP 工具传送文件,那么下面的命令会帮到你
tar cvfz - localFileOrDir | ssh user@remotehost ‘cd /remote/path/to/unpack/ ; tar xvfz -‘
这个命令可以自动将本地的文件或者目录打包压缩以后,通过 ssh 传输到 remotehost 主机,然后 remotehost 会自动将其解压缩。
自动登录 ssh
ssh user@remotehost ‘cat >> ~/.ssh/authorized_keys‘ < ~/.ssh/id_rsa.pub
还有些有用的参数
-C 这个参数可以将文本数据压缩传送 -X 如果远程服务器支持 X11 forwarding ,那么远程的 X 应用直接可以在本地显示运行(当然你本地要有 X Server)
一个更加实用的命令是
ssh-copy-id user@remotehost
可以实现上面的功能,不过不确信在其他发行版也有这个命令.另外,需要确信用户主目录权限对组用户不具有权限,drwxrwx---
权限是不行的。使用SSH代理
ssh -qTfnN -D 7070 nick@nick-wong.vicp.cc
回车后会输入密码,关闭shell窗口,ssh仍然会后台运行,一个基于SSH的本地代理即建立完毕。在
firefox中打开首选项-高级-网络-设置
,选择手动配置代理,填写SOCKS主机为本机__127.0.0.1__,端口为7070,开启远程dns解析。 Chrome浏览器的话,安装Proxy switchy插件后,在socks Host里设置代理服务器为__127.0.0.1__端口为7070。远程端口转发
ssh -qfnTN -R lp:GhostHost:gp LocalHost
在一个中间节点InterHost上执行此命令,将GhostHost的gp端口转发到LocalHost的lp端口上,使得LocalHost可以通过访问自身的lp端口实现访问GhostHost上的gp端口。通常InterHost和GhostHost可以是同一个节点,从而GhostHost直接写作
localhost
。-q Quiet mode. 安静模式,忽略一切对话和错误提示。 -f Requests ssh to go to background just before command execution. 后台运行,并推荐加上 -n 参数。 -n Redirects stdin from /dev/null (actually, prevents reading from stdin). -f 推荐的,不加这条参数应该也行。 -T Disable pseudo-tty allocation. 不占用 shell 了。 -N Do not execute a remote command. 不执行远程命令,专为端口转发度身打造。
ssh -X user@host ‘command’ 传递命令行的GUI信息
实用-X或-Y命令可以利用SSH的X服务传递功能实现远程调用GUI程序。注意,是大写的X,小写x表示关闭X服务传递。 若显示无法打开DISPLAY,那么可能是DISPLAY变量未设置。bash下面可以
export DISPLAY=localhost:11.0
或者export DISPLAY=ClientIp:0.0
设置。若设置后还是无法打开,再/etc/hosts中添加127.0.0.1 localhost
。 其中CliendIp为本机的ip地址。实用后面一种需要在本机上设置服务端ip,用xhost + ServerIp
即可。 如果想要在打开ssh时默认打开-X选项,可以将以下代码添加至~/.ssh/config
文件:Host * ForwardX11 yes
更改 Gnome Shell 默认日历程序为 Thunderbird:
gsettings set org.gnome.desktop.default-applications.office.calendar exec thunderbird
仅复制目录结构(从source到dst)
方法一:
find source/ -type d | sed ‘s#^source#mkdir -p dst#‘>sh.sh && source sh.sh && rm sh.sh
方法二:
find ./work_database/ -type d -exec mkdir -p ./copy/{} \; -exec echo ‘创建文件夹 {} 成功‘ \;
利用find的执行命令的功能实现,最后的\;是语法要求,{}代表查找到的文件,mkdir -p表示需要时创建上层文件夹,注意此种用法目标位置不要在源位置下,会引起嵌套的创建文件夹目录
音频分轨:
shntool split -f CDImage.cue -t ‘%n.%t‘ -o flac CDImage.ape
。需sudo add-apt-repository ppa:flacon/ppa
添加源后安装flacon
在网站域名后面添加
.sixxs.org
后缀,例如:通过Google.com.sixxs.org
访问 Google 网站;命令行关闭ubuntu错误报告服务whoopsie
Just change the report_crashes parameter to false in the
/etc/default/whoopsie
file. Then bid farewell to whoopsie with sudo service whoopsie stop.获取 WAN IP :
curl ifconfig.me
死机时安全重启系统
按住 Alt-Print(Sys Rq),然后依次按下 reisub 这几个键(busy的比较级busier倒过来就是),按完 b 系统就会重启。
ubuntu server +fvwm
sudo apt-get install xorg fvwm-crystal build-essential msttcorefonts echo "exec fvwm-crystal" > ~/.xinitrc startx
命令od可以查看文件其他进制的代码
使用 echo 密码 sudo -S 命令 的形式来自动输入密码 有时候使用脚本运行管理员命令时,希望能够自动运行,不被sudo 密码中断,这时候可以使用 echo 密码 sudo -S 命令 的形式来自动输入密码,如: #!/bin/bash echo psw|sudo -S halt #或者: #echo psw|sudo -S init 0
添加命令行记录到log文件
首先创建日志文件并调整权限
#1.创建一个审计日志文件 sudo touch /var/log/command_history.log #2.将日志文件所有者赋予一个最低权限的用户 sudo chown nobody:nogroup /var/log/command_history.log #3.给该日志文件赋予所有人的写权限 sudo chmod 002 /var/log/command_history.log #4.设置文件权限,使所有用户对该文件只有追加权限(当需要删除此log文件时需要去掉此权限) sudo chattr +a /var/log/command_history.log
然后设置PROMPT_COMMAND变量已实现每次敲入命令后添加记录到log文件,编辑
/etc/profile
添加HISTSIZE=1000 export HISTTIMEFORMAT="%Y/%m/%d %T " export HISTORY_FILE=/var/log/command_history.log export PROMPT_COMMAND=‘{ thisHistID=`history 1|awk "{print \\$1}"`;lastCommand=`history 1| awk "{\\$1=\"\" ;print}"`;user=`id -un`;whoStr=(`who -u am i`);realUser=${whoStr[0]};logMonth=${whoStr[2]};logDay=${whoStr[3]};logTime=${whoStr[4]};pid=${whoStr[6]};ip=${whoStr[7]};if [ ${thisHistID}x != ${lastHistID}x ];then echo -E `date "+%Y/%m/%d %H:%M:%S"` $user\($realUser\)@$ip[PID:$pid][LOGIN:$logMonth $logDay $logTime] --- $lastCommand ;lastHistID=$thisHistID;fi; } >> $HISTORY_FILE‘
更改包标记
有的时候需要安装一个软件包,当这个包已经被其他包依赖且自动安装时,apt-get 就只是简单的把这个包标记为手动安装。这样子的话,如果哪天不需要这个包了,又不能被手动删除,因为可能还有包在依赖它,而如果就这样丢在哪儿不管它,一旦哪天它不再被依赖了,又不能自动删除它。对于我这个对系统有洁癖的人来说,那是不可接受的,所以需要在使用完后重新标记该包为自动安装。需要用到以下命令:
sudo apt-mark auto pkg-name
安装ubuntu server后无法启动网络
想装一个清爽版的desktop,所以先装server然后手动装desktop,为求方便,安装时并没有链接网络,所以启动后插上网线也没有网络可以使用。添加以下语句到文件
/etc/network/interfaces
即可:auto eth0 iface eth0 inet dhcp #这表示采用动态获取网址dhcp方式打开有线网络eth0,下面是以手动配置IP等: auto eth0 iface eth0 inet static address 192.168.200.99 netmask 255.255.255.0 gateway 192.168.200.100 #对于无线网络,类似地: auto wlan0 iface wlan0 inet dhcp
设置好网络后,先升级软件库,然后安装桌面就可以了,因为要清爽,所以我没有安装建议的包,少了好几百兆呢!
sudo apt-get update sudo aptitude install --no-install-recommends kubuntu-desktop
安装wps出错
安装wps时候,显示xdg-desktop-menu: No writable system menu directory found.如下即可:
mkdir /usr/share/desktop-directories
采用命令行进行VPN拨号
首先新建一个VPN账户:
sudo pptpsetup --create vpnname --server ip --username test --password test --encrypt --start
start参数表示立即开始这个拨号,password密码是可选的。以后要用时:
sudo pon vpnname sudo poff#断开 plog#查看状态 sudo pptpsetup --delete vpnname#删除保存的会话
开启VPN后还需要添加一条路由信息
sudo route add default dev ppp0
umount没有响应的nfs文件系统
如果一个正在使用得nfs文件系统失去了连接,有以下方法可能能够卸载掉它:
1)umount加参数f,是强制执行umount
2)要kill正在使用这个目录的进程。可以
fuser -m -v nfsfs
看一下哪个用户哪个进程占用着此设备, 然后杀掉fuser -m -v -k nfsfs
占用此设备的进程(fuser -m -v -k -i nfsfs
杀掉之前先确认)。 更简单地直接用fuser -km nfsfs
杀掉所有以任何形式访问文件系统nfsfs的进程。杀完之后umount就行了。3)
umount -l nfsfs
,采用Lazy方式卸载。对于一个频繁掉线的nfs,用soft模式可以避免系统无法响应不断重试。
sudo mount -o soft IP:/medis/study /media/office/
给SSH主机起别名
当使用SSH登录远端的主机时,可以将输入长长的一串主机名(user@a.long.address.name)设置别名。在~/.ssh/config里面加入下面的字段:
Host nickname Hotname user@a.long.address.name
这样只需要输入ssh nickname,就可以登录了,适用于ssh和sftp。
合并flv
mencoder -of lavf -oac mp3lame -lameopts abr:br=128 -ovc copy -o output.flv input1.flv input2.flv
格式化U盘
在Ubuntu下格式化U盘需要使用mkfs命令族,使用前需卸载已被挂载的U盘分区,也可使用磁盘实用工具(
palimpsest
)。sudo fdisk -l #列出磁盘 sudo umount /dev/sdc1 #卸载U盘分区 sudo umount /dev/sdc #卸载U盘分区 sudo mkfs.vfat /dev/sdc1 #以vfat格式格式化U盘分区 sudo mkfs.vfat [-I] /dev/sdc #以vfat格式格式化整个U盘
ppa
本人对系统有洁癖,同时乱添加ppa也容易把系统包管理搞乱,所以,对于某些独立性很强的deb包我希望能直接下下来用dpkg安装。最常见的ppa仓库是
http://ppa.launchpad.net
, 在得知仓库的名字后(如ppa:francisbrwn9/testing
中的francisbrwn9/testing
部分),可以直接访问http://ppa.launchpad.net/ppaname
去找到deb包来下载(如http://ppa.launchpad.net/francisbrwn9/testing/ubuntu/pool/main/
)。Ubuntu启动后进入GUI界面
将
/etc/default/grub
文件中修改GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
为GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text"
然后运行sudo update-grub
更新grub,即可使系统打开时不自动进入GUI桌面,要想进入,在新版Ubuntu里运行sudo lightdm
即可。添加一个新用户并设置其可以使用sudo提升权限
sudo useradd newuser #创建新用户 sudo passwd newuser #更改密码 sudo adduser newuser sudo #加入sudo组
若添加用户后登陆后总是以sh做终端,可以更改
/etc/passwd
中该用户的默认shell为bash。使用命令
dpkg-reconfigure tzdata
重新配置时区openbox下打开skype时聊天窗口总是在左上角,边框被到屏幕外了,这时使用
Alt+左键
同时用鼠标就可以拖动窗口了。具体用什么快捷键可以看openbox的rc.xml
.实用
set path = ($path /add/a/path)
更改tcsh的PATH环境变量在命令行打开GUI程序显示
Error: no display specified
时可以试一下改变环境变量:export DISPLAY=localhost:0.0
在命令行调节麦克风音量到最大:
amixer set Capture cap 99
.zip解压乱码,可指定编码
unzip -O gb2310 filename.zip
查看软件版本
aptitude show pkg
,查看软件安装位置dpkg -L pkg
rsync 常用参数
# 压缩 -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD -z, --compress 对备份的文件在传输时进行压缩处理 #备份 -b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。 --backup-dir 将备份文件(如~filename)存放在在目录下。 -suffix=SUFFIX 定义备份文件前缀 #文件信息处理 -L, --copy-links 想对待常规文件一样处理软链结 -p, --perms 保持文件权限 -t, --times 保持文件时间信息 #哪些文件更新 -u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件) --partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输 --exclude=PATTERN 指定排除不需要传输的文件模式 --include=PATTERN 指定不排除而需要传输的文件模式 --exclude-from=FILE 排除FILE中指定模式的文件 --include-from=FILE 不排除FILE指定模式匹配的文件 -r, --recursive 对子目录以递归模式处理 #信息输出 -v, --verbose 详细模式输出
安装新库后设置库路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/new/path
并sudo ldconfig
刷新库利用Nmap扫描网段内所有计算机22端口
sudo nmap -sP -PI -PT 192.168.1.0/24 |awk ‘/report/{print $5}‘ |xargs -i sudo nmap -v -sS -p 22 {}
编译某个包时需要安装额外的依赖包,一个简单的方法是使用命令
sudo apt-get build-dep pkg-name
利用vim打开某些含有BOM的文件时行头部可能出现一个
<feff>
这样的字符,利用如下命令删除sed -i ‘s/^\xEF\xBB\xBF//’ file.txt
为extX分区设置卷标名
e2label /dev/sdX NEW-NAME
- 固定网卡的界面名称,修改udev规则即可。如在文件
/lib/udev/rules.d/75-persistent-net-generator.rules
中添加行SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="your:mac:address:here", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="what-ever-name-you-want"
http://blog.uorz.me/2012/05/24/UBUNTU%E6%9C%AD%E8%AE%B0.html
UBUNTU 札记(53条经验)