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 < ...
随机推荐
- 将QQl里面的休息都迁移过来了
以前一直在QQ空间里面写,今天把以前工作的,积累的都搬到博客园了,这才是一个很好交流的平台!
- linux-文件系统基本概念
linux中全部数据都是用文件存储,存放在文件夹中,文件夹呈树状结构. (一)文件类型 1.普通文件 包含文本文件.源码文件及可运行文件等.linux中不区分文本和二进制文件. 2.文件夹 类似win ...
- Win7开机提示group policy client无法登陆怎么办
1 开机按F8,进入安全模式 2 进入系统之后运行注册表,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Prof ...
- isset() unset()
检测变量是否设置,并且不是 NULL. 如果已经使用 unset() 释放了一个变量之后,它将不再是 isset().若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE. ...
- tornado zbar 二维码识别 ,配合nginx 反向代理,supervisord 监控
tornado zbar 二维码识别 ,配合nginx 反向代理,supervisord 监控 1.zbar识别二维码程序,python2.6.6 #!/usr/bin/env python # co ...
- 【转】C++ 虚函数&纯虚函数&抽象类&接口&虚基类
1. 动态多态 在面向对象语言中,接口的多种不同实现方式即为多态.多态是指,用父类的指针指向子类的实例(对象),然后通过父类的指针调用实际子类的成员函数. 多态性就是允许将子类类型的指针赋值给父类类型 ...
- Android 底部TabActivity(1)——FragmentActivity
先看看效果图: 第一篇Tab系列的文章首先实现这样的风格的底部Tab:背景条颜色不变,我们是用了深灰的颜色,图标会发生对应的变化.当选中某个标签后该标签的背板会由正常的颜色变为不正常,哈哈,是变为加深 ...
- JAVA小项目实例源码—学习娱乐小助手
代码地址如下:http://www.demodashi.com/demo/11456.html 一.程序实现 项目目录: MyJFrame:实现项目界面样式: AppProcess:实现调用api或爬 ...
- PHP-PHP常见错误
错误1:foreach循环后留下悬挂指针 在foreach循环中,如果我们需要更改迭代的元素或是为了提高效率,运用引用是一个好办法: $arr = array(1, 2, 3, 4); foreach ...
- php处理行业分类数据
实现步骤: 1.将excel表格存储为后缀名为 .csv格式的文件: 2.将.csv格式文件导入到mysql数据库中: 3.通过条件查询将所需要的数据查出并导入另一个数据表中: 下面是一些php片段: ...