The.first.glance.at.linux.commands
## Get Ubuntu Version Info
lsb_release -a
## Get Linux kernal info
uname -a
## Get Computer name
echo $HOSTNAME
## Define Environment Variable
### Defining Variables Globally
Most Linux distributions tell you to change or add environment variable definitions in /etc/profile
or other locations. Be sure to maintain and manage the environment variables and pay attention to the numerous files that can contain environment variables. In principle, any shell script can be used for initializing environmental variables, but following traditional UNIX conventions, these statements should be only be present in some particular files. The following files should be used for defining global environment variables on your system: /etc/profile
, /etc/bash.bashrc
and /etc/environment
.
### Defining Variables Locally
You do not always want to define an environment variable globally. For instance, you might want to add /home/my_user/bin
to the PATH variable but do not want all other users on your system to have that in their PATH
too. The following files should be used for local environment variables on your system: ~/.bashrc
, ~/.profile
, ~/.bash_login
and ~/.bash_logout
.
To add a directory to PATH
for local usage, put following in ~/.bashrc
:
PATH="${PATH}:/home/my_user/bin"
To update the variable, re-login or source the file: $ source ~/.bashrc
.
### Session Specific Variables
Sometimes even stricter definitions are required. One might want to temporarily run executables from a specific directory created without having to type the absolute path to each one, or editing ~/.bashrc
for the short time needed to run them.
In this case, you can define the PATH
variable in your current session, combined with the export
command. As long as you do not log out, the PATH
variable will be using the temporary settings. To add a session-specific directory to PATH
, issue:
$ export PATH="${PATH}:/home/my_user/tmp/usr/bin"
## Print all environment variables
printenv
## 关机命令 shutdown
好像ubuntu的终端中默认的是当前用户的命令,只是普通用户,因此在终端器中可以使用sudo -sh 转换到管理员root用户下执行命令。
1)shutdown --help
可以查看shutdown命令如何使用,当然也可以使用man shutdown命令。
2) shutdown -h now 现在立即关机
3)shutdown -r now 现在立即重启
4)shutdown -r +3 三分钟后重启
5)shutdown -h +3 "The System will shutdown after 3 minutes" 提示使用者将在三分钟后关机
6)shutdown -r 20:23 在20:23时将重启计算机
7)shutdown -r 20:23 & 可以将在
## How to start GUI application
Add a "&" to the end of commandline
$ emacs &
$ p4v &
You can also "ctrl + z" to suspend current running process.
## 搜索文件
1.whereis 文件名
快速模糊查找.
2.find / -name 文件名
准确,但速度慢,消耗资源大
#find / -name php.ini
3.locate 文件名
强力推荐,最快,最好. To use locate in Mac, run "sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist"
Install locate:
ubuntu:sudo apt-get install locate;
centos:yum -y install mlocate;
第一次使用locate的时候,会有一个"mlocate.db:No such file or directoly"的错误,需要update db。
[root@ip-10-199-99-196 src]# locate .emacs
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
[root@ip-10-199-99-196 src]# updatedb
[root@ip-10-199-99-196 src]# locate .emacs
/etc/rpm/macros.emacs
/etc/skel/.emacs
/root/.emacs.d
/root/.emacs.d/auto-save-list
/root/.emacs.d/auto-save-list/.saves-11160-ip-10-199-99-196.ec2.internal~
/root/.emacs.d/auto-save-list/.saves-5002-ip-10-199-99-196.ec2.internal~
/root/.emacs.d/auto-save-list/.saves-5181-ip-10-199-99-196.ec2.internal~
/root/.emacs.d/auto-save-list/.saves-5215-ip-10-199-99-196.ec2.internal~
/usr/bin/etags.emacs
/usr/share/man/man1/etags.emacs.1.gz
## 查看磁盘剩余空间和文件夹大小
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小
du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
Example:
[root@ip-12-345-678-910 users]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.9G 3.0G 4.9G 39% /
tmpfs 831M 0 831M 0% /dev/shm
Help:
df --help
du --help
## 用ps查看进程
ps命令可以用来查看当前的进程。
ps a 显示现行终端机下的所有程序,包括其他用户的程序。
ps -A 显示所有程序。
ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e 此参数的效果和指定"A"参数相同。
ps e 列出程序时,显示每个程序所使用的环境变量。
ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H 显示树状结构,表示程序间的相互关系。
ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s 采用程序信号的格式显示程序状况。
ps S 列出程序时,包括已中断的子程序资料。
ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
ps u 以用户为主的格式来显示程序状况。
ps x 显示所有程序,不以终端机来区分。
常有人用ps aux | grep program_filter_word来利用grep过滤process。
## 用top来查看进程
top命令用来动态显示系统当前的进程状况,与ps的主要区别也正在于这动态二字.
Options:
-b:使用批处理模式。
-c:显示程序并显示程序的完整相关信息,如名称、路径等。
-i:忽略闲置或已经冻结的程序。
-d<delay>:以秒为单位,设定监控程序执行状况的时间间隔。
-n<iterations>:设定监控信息的更新次数。
-p<进程号>:指定进程。
-s:安全模式。
-u<somebody>:指定用户名。
-v:显示版本信息。
-h:显示帮助信息。
## 用pstree来显示进程树
pstree命令列出当前的进程,以及它们的树状结构。
## kill来杀死进程
kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]
参数
-s:指定发送的信号。
-p:模拟发送信号。
-l:指定信号的名称列表。
pid:要中止进程的ID号。
Signal:表示信号。
信号量9杀死Zombie Process并清理内存
kill -9 pid
free
## 查看可执行程序和动态链接库所以来的动态链接库
在Windows下,我们可以使用Dependency Walker来查看依赖,在Linux下,我们可以简单使用ldd来达到同样的目的.
[root@ip-12-345-678-910 users]# ldd ./test
linux-vdso.so.1 => (0x00007fff491ff000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f9b10b84000)
libm.so.6 => /lib64/libm.so.6 (0x00007f9b10900000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f9b106eb000)
libc.so.6 => /lib64/libc.so.6 (0x00007f9b1035c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9b10e8b000)
但是,我们要注意可能存在安全问题:
ldd工具可能比你想象的更容易被攻击。程序员和系统管理员经常使用ldd工具在Linux和UNIX操作系统内列出可执行文件所依赖的共享库。但是一位黑客用事例证明,在一个可执行文件中运行ldd,可能会导致其执行任意代码。一位用户指出,这个问题很早被发现了,“Program Library HOWTO”就警告:不要在自己不信任的程序内运行ldd,ldd是通过设置特殊的环境变量工作和运行程序的,一个可疑的程序可能会迫使ldd用户执行任意的代码,而不是列出共享库。
当然,除了ldd,我们也可以使用elflibviewer或binscan:
binscan: http://sourceforge.net/projects/binscan/
elflibviewer:http://www.purinchu.net/software/elflibviewer.php
## 显示动态链接库的导出的符号
这个功能在Windows下的Dependency walker也有,在Linux下,它是nm。
[root@ip-12-345-678-910 users]# nm ./test
0000000000600ad8 d _DYNAMIC
0000000000600cc0 d _GLOBAL_OFFSET_TABLE_
0000000000400863 t _GLOBAL__sub_I_main
...
0000000000400968 R _IO_stdin_used
00000000004007c0 t frame_dummy
00000000004007e4 T main
## 压缩与解压
———————————————
.tar/.tar.gz/tar.bz
必须的参数:(3个参数不能共存)
-c :创建压缩文件c代表create。
-x :解压缩文件
-t :查看压缩包里面的文件!
辅助参数:
-z :用 gzip 压缩/解压缩
-j :用 bzip2 压缩/解压缩
-v :显示压缩/解压缩的进度条
-f :使用档名(注意:f后面不要接参数,也就是说-zxfv是不对的,要写成-zxvf)
实例:
解压一个文件:tar -zxvf abc.tar.bz2
(解压缩abc.tar.bz2)
创建压缩文件:tar -zcvf abc.tar.bz2 one.mp3 two.mp3
(把one.mp3和two.mp3压缩成abc.tar.bz2)
———————————————
———————————————
安装:Redhat、Fedora、Centos安装命令:yum install p7zip
安装:Debian、Ubuntu安装命令:apt-get install p7zip
解压实例:
7z x filename.7z
———————————————
———————————————
.zip
zip参数列表:
-a 将文件转成ASCII模式
-F 尝试修复损坏的压缩文件
-h 显示帮助界面
-m 将文件压缩之后,删除源文件
-n 特定字符串 不压缩具有特定字尾字符串的文件
-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-q 安静模式,在压缩的时候不显示指令的执行过程
-r 将指定的目录下的所有子目录以及文件一起处理
-S 包含系统文件和隐含文件(S是大写)
-t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy
unzip参数列表:
-l 列出压缩文件所包含的内容
-v 显示详细的执行过程
解压:unzip FileName.zip
压缩:zip -r FileName.zip DirName
———————————————
## Find all file descripters
列出打开FileDescripter数目: ls -l | wc -l
http://www.cyberciti.biz/tips/linux-procfs-file-descriptors.html
The.first.glance.at.linux.commands的更多相关文章
- 10 Linux Commands Every Developer Should Know
转载:http://azer.bike/journal/10-linux-commands-every-developer-should-know/ As a software engineer, l ...
- The common Linux Commands
Linux的命令总结 1. man:在线请求系统帮助 例:man mkdir NAME:这个命令的完整全名 mk(make directories) SYNOPSIS:这个命令的基本语法 mkdir ...
- linux commands
abrt-cli --since ;查看abrt捕捉的异常 alias ;别名,alias rm='rm -i':使用“ \rm ” 使用原命令 alsamixer ;图形音量调节,q 增加左声道, ...
- [reprint]useful linux commands
linux一说都是搞开发玩的,敲敲键盘就能完成所有的工作.其实你也可以这么玩,玩游戏的除外哦. 那我们就来侃侃如何玩,linux是命令的天下,高级的命令那是相当的多,但是我们正真用到的也就那么几个看你 ...
- Learning Linux Commands: awk--reference
http://how-to.linuxcareer.com/learning-linux-commands-awk 1. Introduction In this case, the title mi ...
- Common Linux Commands 日常工作常用Linux命令
How to know CPU info cat /proc/cpuinfo arch How to know memory info: cat /proc/meminfo ...
- linux commands - 一次性解压多个tar.gz文件
tar -zxvf list所有tar.gz文件,然后利用xargs将其作为参数传给tar命令.-n 1表示每次传一个参数. xargs: https://www.cnblogs.com/wangqi ...
- some useful linux commands
# best way to see log file less +F /var/log/syslog (equals: less /var/log/syslog, then shift+f) # se ...
- Linux commands frequently used
touch <filename>.sh gedit <filename>.sh bash <filename>.sh & ps auxw|grep < ...
随机推荐
- 能显示git分支的终端提示配置
之前都是跟随潮流,安装zsh然后oh-my-zsh,选一个看起来顺眼的主题,一通瞎配置,很酷炫. 可是即使只有一个git插件,oh-my-zsh每次启动的时候都很慢,起码有好几秒,而且有时候zsh还会 ...
- limit是mysql的语法
select * from table limit m,n 其中m是指记录开始的index,从0开始,表示第一条记录 n是指从第m+1条开始,取n条. , 即取出第3条至第6条,4条记录 转自:htt ...
- 深入分析JavaWeb Item24 -- jsp2.X自己定义标签开发进阶
一.简单标签(SimpleTag) 由于传统标签使用三个标签接口来完毕不同的功能,显得过于繁琐.不利于标签技术的推广, SUN公司为减少标签技术的学习难度,在JSP 2.0中定义了一个更为简单.便于编 ...
- 3、jQuery的DOM基础
DOM模型在页面文档中,通过树状模型展示页面的元素和内容,其展示的方式则是通过节点(node)来实现的. 3.1 访问元素 3.1.1 元素属性操作 Attr()可以对元素属性执行获取和设置操作,而r ...
- Unity 使用 Stripping Level == Use micro mscorlib 导致 MD5.Create() 返回NULL
这几天在弄资源更新,昨天导出Android APK 到手机上測试,发现MD5 校验的时候一直出错.打出Log 又一次导包測试发现 MD5.Create() 返回NULL 可是在电脑上是好好的,在手机上 ...
- oracle update left join查询
对于有的更新语句,要更新的表可能条件不够,需要用到left join关联其他表, 但是不能直接关联,否则报错:错误如下: update imim_gireqbillitems gi left join ...
- Linux上寻找并杀死僵尸进程
转载: http://blog.csdn.net/shanzhizi/article/details/47320595 linux服务器上,多少会出现一些僵尸进程,下面介绍如何快速寻找和消灭这些僵尸进 ...
- android Volley 上传文件上传图片
Volley不解释了吧, android 官方的一个网络请求库. 源码的地址在: git@github.com:com314159/VolleyMultiPartRequest.git 上面的是ssh ...
- ⽤运营的思路来做无线产品測试-第13届BQConf上的分享
⽤运营的思路来做无线产品測试,在2014.10.25.第13届B'QConf(北京软件质量大会)上分享的一个主题.主要是关于京东无线測试的一些实践,包含android和ios的代码覆盖率.无线的接口自 ...
- 打败 IE 的葵花宝典:CSS Bug Table
博主说:本博客文章来源包括转载,翻译,原创,且在文章内均有标明.鼓励原创,支持创作共享,请勿用于商业用途,转载请注明文章链接.本文链接:http://www.kein.pw/?p=35 原文发表于:A ...