您的位置:首页 > 其它

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 强制杀死进程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: