Linux 命令行总结
1、使用ln不加参数,会创建硬链接,如果要创建软连接,需要加-s 参数。
# ln test1 test8
-rw-r--r-- root root Nov : test1
-rw-r--r-- root root Nov : test8
2、使用-s 参数,会创建软连接。
# ln -s test1 test9
lrwxrwxrwx root root Nov : test9 -> test1
3、使用cp -s 同样也可以创建软连接。
# cp -s test1 test10
lrwxrwxrwx root root Nov : test10 -> test1
4、stat命令可以提供文件系统上某个文件的所有状态信息。
# stat test2
File: `test2'
Size: Blocks: IO Block: regular empty file
Device: 803h/2051d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::34.551721265 +
Modify: -- ::34.551721265 +
Change: -- ::39.042608528 +
5、file命令可以用来查看文件类型的工具
# file test4
test4: symbolic link to `test1' #符号连接,test4链接到test1
6、cat -n 查看文件的时候加行号
# cat -n test1.sh
#!/bin/bash
#print hello world in the console window
a="hello world"
echo $a
7、cat -b 只在文本行前添加行号,空白行不添加行号
# cat -b test1.sh
#!/bin/bash #print hello world in the console window a="hello world" echo $a
8、实时检测进程 top:第一行显示了当前时间、系统的运行时间、登入的用户数以及系统的平均负载。平均负载有三个值:最近一分钟的、最近5分钟的、最近15分钟的平均负载。值越大说明系统的负载越大,如果系统的负载超过2,就说明系统比较繁忙了。
top - :: up days, :, users, load average: 0.10, 0.04, 0.01
Tasks: total, running, sleeping, stopped, zombie
Cpu(s): 0.1%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 66001880k total, 13323228k used, 52678652k free, 290580k buffers
Swap: 16777212k total, 18948k used, 16758264k free, 2260564k cached
9、sort的用法,数字排序 sort -n
# cat file1
# sort -n file1
排反序加参数 -r,sort -nr
# sort -nr file1 3
sort -t 参数来指定字段分隔符,-k参数用来指定排序的字段
# sort -t ':' -k -n /etc/passwd
root:x:::root:/root:/bin/bash
daemon:x:::daemon:/usr/sbin:/usr/sbin/nologin
bin:x:::bin:/bin:/usr/sbin/nologin
sys:x:::sys:/dev:/usr/sbin/nologin
sync:x:::sync:/bin:/bin/sync
games:x:::games:/usr/games:/usr/sbin/nologin
10、使用du -sh |sort -nr 对目录的文件大小进行排序
# du -sh * | sort -nr
240M work
.0K test.txt
.0K small.pyc
.0K small.py
.0K data.txt
.0K changer.py
11、tar 打包和解压缩
# tar -cvf test.tar file1 file2
file1
file2
# ls
file1 file2 test.tar
# tar -xvf test.tar
file1
file2
12、 环境变量:环境变量分为两类,全局变量和局部变量。
查看全局变量 printenv
MAIL=/var/spool/mail/root
PATH=/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/ibutils/bin:/root/bin
PWD=/root/wangtao/work/shell/
KDE_IS_PRELINKED=
LANG=en_US.UTF-
MODULEPATH=/usr/share/Modules/modulefiles:/etc/modulefiles
LOADEDMODULES=
KDEDIRS=/usr
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
HISTCONTROL=ignoredups
SHLVL=
HOME=/root
LOGNAME=root
QTLIB=/usr/lib64/qt-3.3/lib
CVS_RSH=ssh
查看单个环境变量时,必须在环境变量的名称前放置一个$符。
# echo $HOME
/root
13、set命令会显示为某个特定进程设置的所有环境变量,设置局部环境变量,,记住在环境变量名称,等号和值之间没有空格。
# test=testing
# echo $test
testing
14、在子进程中设置了一个局部环境变量,一旦你推出了环境变量,那个局部环境变量就不能用了。
# bash
# test=testing
#echo $test
testing
#exit
exit
#echo $test #
15、设置全局环境变量,创建全局环境变量的方法是先创建一个局部环境变量,然后在把它导出到全局环境中,注意在导出局部环境变量时,不能用美元符($)去引用变量名。
# test="testing a long string"
echo $test
testing a long string
# export test
# bash
# echo $test
testing a long string
16、删除环境变量
删除一个已经存在的环境变量,可以使用unset.
# echo $test
testing a long string
# unset test
# echo $test #
17、PATH环境变量,冒号分隔的shell查找命令的目录列表,设置PATH环境变量
# echo $PATH
/usr/sw-cluster/intel/composer_xe_2013_sp1.4.211/bin/intel64:/usr/sw-cluster/intel/composer_xe_2013_sp1.4.211/mpirt/bin/intel64:/usr/sw-cluster/intel/composer_xe_2013_sp1.4.211/debugger/gdb/intel64_mic/py26/bin
echo $PATH
PATH=$PATH:/home/usr/test
18、登陆shell
当你登陆shell,bash shell 会作为登陆shell启动,登陆shell 会从4个不同的启动文件里读取命令,下面时bash shell处理这些文件的次序。/etc/profile文件时bash shell的主启动文件。
/etc/profile
$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile
19.可变数组
# mytest=(one two three four five) # echo $mytest
one
# echo ${mytest[]}
three
# echo ${mytest[*]}
one two three four five
20、使用命令别名,使用alias -p 可以查看已有的别名列表
# alias -p
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mc='. /usr/libexec/mc/mc-wrapper.sh'
alias mv='mv -i'
alias rm='rm -i'
你也可以使用alias命令创建自己的命令别名
# alias li='ls -il'
21、添加用户,使用useradd命令使用系统的默认值以及命令行参数来设置用户账户。
# /usr/sbin/useradd -D
GROUP=
HOME=/home
INACTIVE=-
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
可以使用useradd -D -s 来修改用户参数
# useradd -D -s /bin/tsch
You have mail in /var/spool/mail/root
[root@mail ~]#
[root@mail ~]#
[root@mail ~]# useradd -D
GROUP=
HOME=/home
INACTIVE=-
EXPIRE=
SHELL=/bin/tsch
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
删除用户 可以使用userdel -r 选择删除用户的HOME目录和mail目录
/usr/sbin/userdel -r test
22、使用linux组
/etc/group文件,/etc/group文件包含系统上用到的每个组的信息。(组名, 组密码, GID, 属于该组的用户列表)
# cat /etc/group
root:x::
bin:x::bin,daemon
daemon:x::bin,daemon
sys:x::bin,adm
adm:x::adm,daemon
tty:x::
disk:x::
lp:x::daemon
mem:x::
kmem:x::
wheel:x::
创建新组groupadd
# /usr/sbin/groupadd shared
# tailf /etc/group
pcp:x::
squid:x::
sfcb:x::root
radiusd:x::
tcpdump:x::
screen:x::
slocate:x::
zjq:x::
www:x::
shared:x::
可以使用usermod命令来添加用户到该组
# /usr/sbin/usermod -G shared test
[root@mail ~]# tail /etc/group
pcp:x::
squid:x::
sfcb:x::root
radiusd:x::
tcpdump:x::
screen:x::
slocate:x::
zjq:x::
www:x::
shared:x::test
使用groupmod -n 修改组名,现在已经将组名shared改为sharing.
/usr/sbin/groupmod -n sharing shared
[root@mail ~]# tail /etc/group
pcp:x::
squid:x::
sfcb:x::root
radiusd:x::
tcpdump:x::
screen:x::
slocate:x::
zjq:x::
www:x::
sharing:x::test
23、文件系统日志方式
数据模式: 索引节点和文件都会被写入日志;丢失数据风险低,但性能差
排序模式: 只有索引节点数据会被写入日志,但只有数据成功写入后才删除;性能和安全之间的良好折中
ext4: ext4文件系统支持压缩和加密,ext4文件系统还支持一个称作区段的特性。
磁盘格式化分区与挂载
# sudo fdisk /dev/sdc
p 显示当前分区表
n 添加一个新分区
p 推出,不保存更改
w 将分区表写入磁盘 格式化
mkefs 创建一个ext文件系统
mke2fs 创建一个ext2文件系统
mkfs.ext3 创建一个ext3文件系统
mkfs.ext4 创建一个ext4文件系统 #sudo mkfs.ext4 /dev/sdc1
#sudo mkdir /mnt/testing
#sudo mount -t ext4 /dev/sdc1 /mnt/testing #这种挂载文件系统的方法只会临时挂载该文件系统。当重启linux系统时,文件系统不会自动挂载,要强制linux在启动时自动挂载这个新文件系统,可以将文件系统添加到/etc/fstab文件按中。 #最流行的文件系统时ext3和ext4,这两个文件系统都提供了日志文件系统。 24、内核模块 Linux的内核模块文件的命名方式通常为<模块名称.ko>,CentOS系统的内核模块被存放在/lib/modules/`uname -r`.
lsmod 命令用来显示当前Linux内核模块状态,模块名称,占用内存大小,是否被使用。
# lsmod
Module Size Used by
vboxsf
bnep
rfcomm
bluetooth bnep,rfcomm
6lowpan_iphc bluetooth
joydev
snd_intel8x0
snd_ac97_codec snd_intel8x0
ac97_bus snd_ac97_codec
snd_pcm snd_ac97_codec,snd_intel8x0
snd_seq_midi
modprobe命令可以动态加载喝卸载内核模块:
# modprobe ip_vs #动态加载ip_vs模块
root@adonis:~# lsmod | grep ip_vs #查看模块是否加载成功
ip_vs
nf_conntrack ip_vs
libcrc32c ip_vs
root@adonis:~# modprobe -r ip_vs #动态卸载ip_vs模块
root@adonis:~# modinfo ip_vs #查看内核模块信息
filename: /lib/modules/3.16.--generic/kernel/net/netfilter/ipvs/ip_vs.ko
license: GPL
srcversion: E99FD4CE8D7CC74AC469649
depends: nf_conntrack,libcrc32c
intree: Y
vermagic: 3.16.--generic SMP mod_unload modversions
signer: Magrathea: Glacier signing key
sig_key: 3C::A9:3E:B5:D1:A5::::B6::A5:::8D::1E:4D:C7
sig_hashalgo: sha512
parm: conn_tab_bits:Set connections' hash size (int)
25、wc 显示文件行数
# wc -l /etc/passwd
/etc/passwd
显示文件的单词个数
# wc -w /etc/passwd
/etc/passwd
26、限制用户的进程数为200,在/etc/security/limits.conf文件末尾中加入一行,root用户不会受影响
* hard nproc
Linux 命令行总结的更多相关文章
- 像黑客一样使用 Linux 命令行
前言 之前在博客园看到一篇介绍 IntelliJ IDEA 配置的文章,它里面用的是 gif 动态图片进行展示,我觉得很不错.所以在我今天以及以后的博文中,我也会尽量使用 gif 动图进行展示.制作 ...
- 详解Linux命令行下常用svn命令
1.Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/do ...
- linux 命令行 光标移动技巧
linux 命令行 光标移动技巧 看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动.在这里强烈建立适应GUI节目的开发者尝试一下在提示符下面工作.但是事情也不是 ...
- 在linux命令行下执行php 程序
如何在linux命令行下,执行php程序. 例子 打印当前时间 php -r "echo time()" 随机输出一个数字 php -r "echo rand(1,20) ...
- git代理,windows命令行代理,linux命令行代理
下载不动设置代理:git config --global http.proxy http://127.0.0.1:1080git config --global https.proxy https:/ ...
- [转]12款最佳Linux命令行终端工具
摘要 “工欲善其事必先利其器”,作为菜鸟,也是从别人那里偷学来的一些东东.今天看到同事用到一个终端命令行工具,觉得自己弱爆了.然后在网上搜了下该工具.发现类似的工具还是挺多的,只是自己不知道罢了. 原 ...
- Linux命令行修改IP、网关、DNS、主机名 的方法
修改主机名:[改里面的 HOSTNAME 即可] vim /etc/sysconfig/network 网卡eth0 IP修改为 102.168.0.1 ifconfig eth0 102.16 ...
- Linux命令行与命令
Linux命令行与命令 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Linux的命令是很重要的工具,也往往是初学者最大的瓶 ...
- 12款最佳Linux命令行终端工具, 20款优秀的 Linux 终端仿真器
12款最佳Linux命令行终端工具 如果你跟我一样,整天要花大量的时间使用Linux命令行,而且正在寻找一些可替代系统自带的老旧且乏味的终端软件,那你真是找对了文章.我这里搜集了一些非常有趣的 ...
- Linux命令行–初识Linux shell
shell及脚本简介 GNU/Linux shell 是个交互工具,它为用户提供了启动程序.管理文件系统上的文件以及管理运行在Linux系统上的进程的途径 . shell的核心是命令行提示符 它是s ...
随机推荐
- loadrnner添加C语言代码的几种方式
今天有人在群里问,想直接把自己的C语言代码让lr调用,该怎么搞. 这东西说来简单,只是对Loadrunner这工具不熟悉可能才会有这种问题吧.个人理解,一般有三种方法吧,废话不多,直接干货. 1.直接 ...
- Spring远程调用技术<3>-Spring的HTTP Invoker
前面提到RMI使用java标准的对象序列化机制,但是很难穿透防火墙. 另一方面,Hessian和Burlap能很好地穿透防火墙,但是使用私有的对象序列化机制. Spring提供的http invke ...
- void main() && int main()
C/C++ 中从来没有定义过void main( ) .C++ 之父说过: The definition void main( ) { /* ... * / } is not and never ha ...
- Java正则抓取email
实现思路 1.使用Java.net.URL对象,绑定网络上某一个网页的地址 2.通过java.net.URL对象的openConnection()方法获得一个HttpConnection对象 3.通过 ...
- MySql 存储过程、触发器和权限问题
存储过程 1.1 什么是存储过程 存储过程,带有逻辑的sql语句 之前的sql没有条件判断,没有循环 存储过程带上流程控制语句(if while) 1.2 存储过程特点 1)执行效率非常快!存储过程 ...
- php-简单对称加密算法和字符串与十六进制之间的互转函数
/** * 简单对称加密算法之加密 * @param String $string 需要加密的字串 * @param String $skey 加密EKY * @return String */fun ...
- c# 传递Null的string值导致的调用C++的dll报错 Attempted to read or write protected memory.
c# 调用C++的dll报错 Attempted to read or write protected memory: 原因是:c# 传递Null的string值导致的,将Null改为string ...
- Caliburn.Micro学习笔记(一)----引导类和命名匹配规则
Caliburn.Micro学习笔记目录 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详 ...
- js 判断各种数据类型
了解js的都知道, 有个typeof 用来判断各种数据类型,有两种写法:typeof xxx ,typeof(xxx) 如下实例: typeof 2 输出 number ...
- 【Python】[面向对象编程] 访问限制,继承和多态
1.在Python中两个下划线__ 就是带便私有属性 private 注意已两个下划线开头并且结尾的 如 __init__ 是特殊变量,不是私有变量 2.多态,Python的“file-like ...