Liunx常用命令
2016-04-07 15:21
218 查看
命令行提示符user@ubuntu:~$
@ 之前的部分为当前用户, @ 与 : 之间的部分为您的主机名称, : 与 $ 之间的部分为当前的路径
/表示系统根目录,~表示用户主目录(/home/userid)
date 当前日期
cp a /home 表示把当前目录下的 a 文件,拷贝到 /home 目录下
cp -r 递归复制(复制文件夹)
绝对路径的起始点为根目录 / ,例如 /usr/local/bin 就是绝对路径
相对路径的起始点为当前目录,如果您现在位于 /usr 目录,那么相对路径 local/bin 所指示的位置为 /usr/local/bin
在相对路径中 . 表示当前目录, .. 表示当前目录的上一级目录
cd (change directory) 更改目录。cd ~ 进入您的用户目录
pwd (print working directory)显示当前路径。
ls (list) 显示当前目录中的文件列表。
mkdir 创建目录
rmdir 删除目录(要求目录是空的)
rm 删除文件 -f 强制删除 -i删除前询问
rm -r 递归删除(删除文件夹)
mv 移动文件或目录(也用于重命名)
远程路径的表示方法为 协议://用户名:密码@位置/路径:端口
ftp://user:passwd@ftp.ubuntu.org.cn:21
每个目录下都包含两个特殊目录 . 和 ..
文件的权限分为 r (可读)、 w (可写)、 x (可执行)三种类型
* d 文件夹 * - 普通文件 * l 链接 * b 块设备文件 * c 字符设备文件
chmod 更改文件的权限
chown 更改文件的归属
su (switch user)这个命令来切换其它用户。su root ,切换到root用户
reboot halt poweroff 重启 停止 关闭
whereis 定位文件所在目录
find 查找文件
locate 查找文件或目录
从root用户切回user用户命令:su user (user是你自己安装时候的用户名),或是直接输入exit
切换到root用户,只需要简单的执行sudo su 即可
sudo passwd root给root设定一个密码
ifconfig:查看活动的网卡信息
ifconfig eth[0-9]:查看某个网卡的信息
route命令:用于查看和修改本机的路由信息
ip addr:配置网络地址
虚拟机网络适配器设置为NAT模式:用于共享主机的IP地址
cat /proc/cpuinfo # 查看CPU信息
export LD_LIBRARY_PATH=/usr/local/lib 设置环境变量
chmod修改权限
权限分为三种:读(r,4) 写(w,2) 运行(x,1)
用户类型分为三种:档案拥有者(u,user)、档案拥有者所在的组(g,group)和其他人(o,others)
使用7个字符表示文件的权限。-rwxrwxrwx
修改权限格式如下 : [ugoa...][[+-=][rwxX]...][,...],
u : 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ : 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r : 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
chmod +x run.sh 给文件run.sh添加可执行属性
Conditional Logic on Files
-a file exists.
-b file exists and is a block special file.
-c file exists and is a character special file.
-d file exists and is a directory.
-e file exists (just the same as -a).
-f file exists and is a
1379f
regular file.
-g file exists and has its setgid(2) bit set.
-G file exists and has the same group ID as this process.
-k file exists and has its sticky bit set.
-L file exists and is a symbolic link.
-n string length is not zero.
-o Named option is set on.
-O file exists and is owned by the user ID of this process.
-p file exists and is a first in, first out (FIFO) special file or
named pipe.
-r file exists and is readable by the current process.
-s file exists and has a size greater than zero.
-S file exists and is a socket.
-t file descriptor number fildes is open and associated with a
terminal device.
-u file exists and has its setuid(2) bit set.
-w file exists and is writable by the current process.
-x file exists and is executable by the current process.
-z string length is zero.
shell判断文件是否存在
# 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
if [ ! -x "$myPath"]; then
mkdir "$myPath"
fi
# 这里的-d 参数判断$myPath是否存在
if [ ! -d "$myPath"]; then
mkdir "$myPath"
fi
# 这里的-f参数判断$myFile是否存在
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi
# 其他参数还有-n,-n是判断一个变量是否是否有值
if [ ! -n "$myVar" ]; then
echo "$myVar is empty"
exit 0
fi
# 两个变量判断是否相等
if [ "$var1" = "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $var2'
fi
Linux中重定向及管道
http://blog.csdn.net/songyang516/article/details/6758256
> 输出重定向到一个文件或设备 覆盖原来的文件
>! 输出重定向到一个文件或设备 强制覆盖原来的文件
>> 输出重定向到一个文件或设备 追加原来的文件
< 输入重定向到一个程序
1. 标准输入;代码为 0 ;或称为 stdin ;使用的方式为 <
2. 标准输出:代码为 1 ;或称为 stdout;使用的方式为 1>
3. 错误输出:代码为 2 ;或称为 stderr;使用的方式为 2>
2> 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 b-shell
2>> 将一个标准错误输出重定向到一个文件或设备 追加到原来的文件
2>&1 将一个标准错误输出重定向到标准输出 注释:1 可能就是代表 标准输出
>& 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 c-shell
|& 将一个标准错误 管道 输送 到另一个命令作为输入
在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢?
方法一: . ./subscript.sh
方法二: source ./subscript.sh
注意:
1.两个点之间,有空格,千万注意.
2.两个脚本不在同一目录,要用绝对路径
3.为简单起见,通常用第一种方法
$0 表示脚本名
$$ 表示进程id
1、dirs
1)功能
显示当前目录栈中的所有记录(不带参数的dirs命令显示当前目录栈中的记录)
2)语法
(1)格式:dirs [-clpv] [+n] [-n]
(2)选项
-c 删除目录栈中的所有记录
-l 以完整格式显示
-p 一个目录一行的方式显示
-v 每行一个目录来显示目录栈的内容,每个目录前加上的编号
+N 显示从左到右的第n个目录,数字从0开始
-N 显示从右到左的第n个日录,数字从0开始
注意:dirs始终显示当然目录, 再是堆栈中的内容;即使目录堆栈为空, dirs命令仍然只显示当然目录
2、pushd
1)功能
pushd命令常用于将目录加入到栈中,加入记录到目录栈顶部,并切换到该目录;若pushd命令不加任何参数,则会将位于记录栈最上面的2个目录对换位置
2)语法
(1)格式:pushd [目录 | -N | +N] [-n]
(2)选项
目录 将该目录加入到栈顶,并执行"cd 目录",切换到该目录
+N 将第N个目录移至栈顶(从左边数起,数字从0开始)
-N 将第N个目录移至栈顶(从右边数起,数字从0开始)
-n 将目录入栈时,不切换目录
3、popd
1)功能
popd用于删除目录栈中的记录;如果popd命令不加任何参数,则会先删除目录栈最上面的记录,然后切换到删除过后的目录栈中的最上面的目录
2)语法
(1)格式:popd [-N | +N] [-n]
(2)选项
+N 将第N个目录删除(从左边数起,数字从0开始)
-N 将第N个目录删除(从右边数起,数字从0开始)
-n 将目录出栈时,不切换目录
字符串截取
1. # 号截取,删除左边字符,保留右边字符。
复制代码代码如下:
echo ${var#*//}
其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
即删除 http://
结果是 :www.aaa.com/123.htm
2. ## 号截取,删除左边字符,保留右边字符。
复制代码代码如下:
echo ${var##*/}
##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
即删除 http://www.aaa.com/
结果是 123.htm
3. %号截取,删除右边字符,保留左边字符
复制代码代码如下:
echo ${var%/*}
%/* 表示从右边开始,删除第一个 / 号及右边的字符
结果是:http://www.aaa.com
4. %% 号截取,删除右边字符,保留左边字符
复制代码代码如下:
echo ${var%%/*}
%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
结果是:http:
5. 从左边第几个字符开始,及字符的个数
复制代码代码如下:
echo ${var:0:5}
其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:
6. 从左边第几个字符开始,一直到结束。
复制代码代码如下:
echo ${var:7}
其中的 7 表示左边第8个字符开始,一直到结束。
结果是 :www.aaa.com/123.htm
7. 从右边第几个字符开始,及字符的个数
复制代码代码如下:
echo ${var:0-7:3}
其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。
结果是:123
8. 从右边第几个字符开始,一直到结束。
复制代码代码如下:
echo ${var:0-7}
表示从右边第七个字符开始,一直到结束。
结果是:123.htm
注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)
批量kill多个进程
ps -u root |grep python |cut -c 1-6 |xargs kill -9
说明:
ps -u root 列出用户root的所有进程
grep python 筛选命令为python的进程
cut -c 1-6 选取每一行的1-6个字符,即进程的id
xargs 将管道符前面的输出作为后面命令的参数
kill -9 强制杀死进程
@ 之前的部分为当前用户, @ 与 : 之间的部分为您的主机名称, : 与 $ 之间的部分为当前的路径
/表示系统根目录,~表示用户主目录(/home/userid)
date 当前日期
cp a /home 表示把当前目录下的 a 文件,拷贝到 /home 目录下
cp -r 递归复制(复制文件夹)
绝对路径的起始点为根目录 / ,例如 /usr/local/bin 就是绝对路径
相对路径的起始点为当前目录,如果您现在位于 /usr 目录,那么相对路径 local/bin 所指示的位置为 /usr/local/bin
在相对路径中 . 表示当前目录, .. 表示当前目录的上一级目录
cd (change directory) 更改目录。cd ~ 进入您的用户目录
pwd (print working directory)显示当前路径。
ls (list) 显示当前目录中的文件列表。
mkdir 创建目录
rmdir 删除目录(要求目录是空的)
rm 删除文件 -f 强制删除 -i删除前询问
rm -r 递归删除(删除文件夹)
mv 移动文件或目录(也用于重命名)
远程路径的表示方法为 协议://用户名:密码@位置/路径:端口
ftp://user:passwd@ftp.ubuntu.org.cn:21
每个目录下都包含两个特殊目录 . 和 ..
文件的权限分为 r (可读)、 w (可写)、 x (可执行)三种类型
* d 文件夹 * - 普通文件 * l 链接 * b 块设备文件 * c 字符设备文件
chmod 更改文件的权限
chown 更改文件的归属
su (switch user)这个命令来切换其它用户。su root ,切换到root用户
reboot halt poweroff 重启 停止 关闭
whereis 定位文件所在目录
find 查找文件
locate 查找文件或目录
从root用户切回user用户命令:su user (user是你自己安装时候的用户名),或是直接输入exit
切换到root用户,只需要简单的执行sudo su 即可
sudo passwd root给root设定一个密码
ifconfig:查看活动的网卡信息
ifconfig eth[0-9]:查看某个网卡的信息
route命令:用于查看和修改本机的路由信息
ip addr:配置网络地址
虚拟机网络适配器设置为NAT模式:用于共享主机的IP地址
cat /proc/cpuinfo # 查看CPU信息
export LD_LIBRARY_PATH=/usr/local/lib 设置环境变量
chmod修改权限
权限分为三种:读(r,4) 写(w,2) 运行(x,1)
用户类型分为三种:档案拥有者(u,user)、档案拥有者所在的组(g,group)和其他人(o,others)
使用7个字符表示文件的权限。-rwxrwxrwx
修改权限格式如下 : [ugoa...][[+-=][rwxX]...][,...],
u : 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ : 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r : 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
chmod +x run.sh 给文件run.sh添加可执行属性
Conditional Logic on Files
-a file exists.
-b file exists and is a block special file.
-c file exists and is a character special file.
-d file exists and is a directory.
-e file exists (just the same as -a).
-f file exists and is a
1379f
regular file.
-g file exists and has its setgid(2) bit set.
-G file exists and has the same group ID as this process.
-k file exists and has its sticky bit set.
-L file exists and is a symbolic link.
-n string length is not zero.
-o Named option is set on.
-O file exists and is owned by the user ID of this process.
-p file exists and is a first in, first out (FIFO) special file or
named pipe.
-r file exists and is readable by the current process.
-s file exists and has a size greater than zero.
-S file exists and is a socket.
-t file descriptor number fildes is open and associated with a
terminal device.
-u file exists and has its setuid(2) bit set.
-w file exists and is writable by the current process.
-x file exists and is executable by the current process.
-z string length is zero.
shell判断文件是否存在
# 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
if [ ! -x "$myPath"]; then
mkdir "$myPath"
fi
# 这里的-d 参数判断$myPath是否存在
if [ ! -d "$myPath"]; then
mkdir "$myPath"
fi
# 这里的-f参数判断$myFile是否存在
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi
# 其他参数还有-n,-n是判断一个变量是否是否有值
if [ ! -n "$myVar" ]; then
echo "$myVar is empty"
exit 0
fi
# 两个变量判断是否相等
if [ "$var1" = "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $var2'
fi
Linux中重定向及管道
http://blog.csdn.net/songyang516/article/details/6758256
> 输出重定向到一个文件或设备 覆盖原来的文件
>! 输出重定向到一个文件或设备 强制覆盖原来的文件
>> 输出重定向到一个文件或设备 追加原来的文件
< 输入重定向到一个程序
1. 标准输入;代码为 0 ;或称为 stdin ;使用的方式为 <
2. 标准输出:代码为 1 ;或称为 stdout;使用的方式为 1>
3. 错误输出:代码为 2 ;或称为 stderr;使用的方式为 2>
2> 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 b-shell
2>> 将一个标准错误输出重定向到一个文件或设备 追加到原来的文件
2>&1 将一个标准错误输出重定向到标准输出 注释:1 可能就是代表 标准输出
>& 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 c-shell
|& 将一个标准错误 管道 输送 到另一个命令作为输入
在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢?
方法一: . ./subscript.sh
方法二: source ./subscript.sh
注意:
1.两个点之间,有空格,千万注意.
2.两个脚本不在同一目录,要用绝对路径
3.为简单起见,通常用第一种方法
$0 表示脚本名
$$ 表示进程id
1、dirs
1)功能
显示当前目录栈中的所有记录(不带参数的dirs命令显示当前目录栈中的记录)
2)语法
(1)格式:dirs [-clpv] [+n] [-n]
(2)选项
-c 删除目录栈中的所有记录
-l 以完整格式显示
-p 一个目录一行的方式显示
-v 每行一个目录来显示目录栈的内容,每个目录前加上的编号
+N 显示从左到右的第n个目录,数字从0开始
-N 显示从右到左的第n个日录,数字从0开始
注意:dirs始终显示当然目录, 再是堆栈中的内容;即使目录堆栈为空, dirs命令仍然只显示当然目录
2、pushd
1)功能
pushd命令常用于将目录加入到栈中,加入记录到目录栈顶部,并切换到该目录;若pushd命令不加任何参数,则会将位于记录栈最上面的2个目录对换位置
2)语法
(1)格式:pushd [目录 | -N | +N] [-n]
(2)选项
目录 将该目录加入到栈顶,并执行"cd 目录",切换到该目录
+N 将第N个目录移至栈顶(从左边数起,数字从0开始)
-N 将第N个目录移至栈顶(从右边数起,数字从0开始)
-n 将目录入栈时,不切换目录
3、popd
1)功能
popd用于删除目录栈中的记录;如果popd命令不加任何参数,则会先删除目录栈最上面的记录,然后切换到删除过后的目录栈中的最上面的目录
2)语法
(1)格式:popd [-N | +N] [-n]
(2)选项
+N 将第N个目录删除(从左边数起,数字从0开始)
-N 将第N个目录删除(从右边数起,数字从0开始)
-n 将目录出栈时,不切换目录
字符串截取
1. # 号截取,删除左边字符,保留右边字符。
复制代码代码如下:
echo ${var#*//}
其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
即删除 http://
结果是 :www.aaa.com/123.htm
2. ## 号截取,删除左边字符,保留右边字符。
复制代码代码如下:
echo ${var##*/}
##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
即删除 http://www.aaa.com/
结果是 123.htm
3. %号截取,删除右边字符,保留左边字符
复制代码代码如下:
echo ${var%/*}
%/* 表示从右边开始,删除第一个 / 号及右边的字符
结果是:http://www.aaa.com
4. %% 号截取,删除右边字符,保留左边字符
复制代码代码如下:
echo ${var%%/*}
%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
结果是:http:
5. 从左边第几个字符开始,及字符的个数
复制代码代码如下:
echo ${var:0:5}
其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:
6. 从左边第几个字符开始,一直到结束。
复制代码代码如下:
echo ${var:7}
其中的 7 表示左边第8个字符开始,一直到结束。
结果是 :www.aaa.com/123.htm
7. 从右边第几个字符开始,及字符的个数
复制代码代码如下:
echo ${var:0-7:3}
其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。
结果是:123
8. 从右边第几个字符开始,一直到结束。
复制代码代码如下:
echo ${var:0-7}
表示从右边第七个字符开始,一直到结束。
结果是:123.htm
注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)
批量kill多个进程
ps -u root |grep python |cut -c 1-6 |xargs kill -9
说明:
ps -u root 列出用户root的所有进程
grep python 筛选命令为python的进程
cut -c 1-6 选取每一行的1-6个字符,即进程的id
xargs 将管道符前面的输出作为后面命令的参数
kill -9 强制杀死进程
相关文章推荐
- 加密狗测试用例设计
- uva 11176 Winning Streak
- R中利用apply、tapply、lapply、sapply、mapply、table等函数进行分组统计
- 基于tensorflow的MNIST手写数字识别(二)--入门篇
- 遍历数组时移除数组中元素造成程序崩
- 稀疏表示与压缩感知
- PS中图层混合模式的Blend公式
- 【JAVA重温】String 类
- hadoop SecondNamenode
- UITextField小结
- 【BZOJ-3996】线性代数 最小割-最大流
- php多线程
- mysqld
- 1045. Favorite Color Stripe (30)
- ViewTreeObserver
- PL/SQL Developer连接Oracle数据库
- LeetCode/sort(地址A,地址B)和qsort(首地址,元素个数,sizeof(),cmp比较函数)的使用
- 用Berkeley sockets实现ios上进程间通信
- 如何给 eclipse 设置快捷键
- (OK) VirtualBox 5.0.10 中 Fedora 23 在安装了增强工具后无法自动调节虚拟机分辨率的问题