Fork me on GitHub

linux操作

1. 常用指令

ls              显示文件或目录
     -l               列出文件详细信息l(list)
     -a               列出当前目录下所有文件及目录,包括隐藏的a(all)
mkdir             创建目录
     -p               创建目录,若无父目录,则创建p(parent)
cd                切换目录
touch             创建空文件
echo              创建带有内容的文件。
cat               查看文件内容
cp                拷贝
mv                移动或重命名
rm                删除文件
     -r               递归删除,可删除子目录及文件
     -f               强制删除
find              在文件系统中搜索某文件
wc                统计文本中行数、字数、字符数
grep              在文本文件中查找某个字符串
rmdir             删除空目录
tree              树形结构显示目录,需要安装tree包
pwd               显示当前目录
ln                创建链接文件
more、less        分页显示文本文件内容
head、tail        显示文件头、尾内容
ctrl+alt+F1       命令行全屏模式

2. 系统管理命令

stat              显示指定文件的详细信息,比ls更详细
who               显示在线登陆用户
whoami            显示当前操作用户
hostname          显示主机名
uname             显示系统信息
top               动态显示当前耗费资源最多进程信息
ps                显示瞬间进程状态 ps -aux
du                查看目录大小 du -h /home带有单位显示目录信息
df                查看磁盘大小 df -h 带有单位显示磁盘信息
ifconfig          查看网络情况
ping              测试网络连通
netstat           显示网络状态信息
man               命令不会用了,找男人  如:man ls
clear             清屏
alias             对命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit
kill              杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。

3. 打包压缩相关命令

gzip:
bzip2:
tar:              打包压缩
     -c           归档文件
     -x           压缩文件
     -z           gzip压缩文件
     -j           bzip2压缩文件
     -v           显示压缩或解压缩过程 v(view)
     -f           使用档名

例:

tar -cvf /home/abc.tar /home/abc            只打包,不压缩
tar -zcvf /home/abc.tar.gz /home/abc        打包,并用gzip压缩
tar -jcvf /home/abc.tar.bz2 /home/abc       打包,并用bzip2压缩

当然,如果想解压缩,就直接替换上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了。

4. 关机/重启机器

shutdown
     -r           关机重启
     -h           关机不重启
     now          立刻关机
halt              关机
reboot            重启

5. Linux管道

将一个命令的标准输出作为另一个命令的标准输入。也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。
例:

grep -r "close" /home/* | more       在home目录下所有文件中查找,包括close的文件,并分页输出。

6. Linux软件包管理

dpkg (Debian Package)管理工具,软件包名以.deb后缀。这种方法适合系统不能联网的情况下。
比如安装tree命令的安装包,先将tree.deb传到Linux系统中。再使用如下命令安装。

sudo dpkg -i tree_1.5.3-1_i386.deb         安装软件
sudo dpkg -r tree                          卸载软件

注:将tree.deb传到Linux系统中,有多种方式。VMwareTool,使用挂载方式;使用winSCP工具等;

APT(Advanced Packaging Tool)高级软件工具。这种方法适合系统能够连接互联网的情况。
依然以tree为例

sudo apt-get install tree                  安装tree
sudo apt-get remove tree                   卸载tree
sudo apt-get update                        更新软件
sudo apt-get upgrade        

将.rpm文件转为.deb文件
.rpm为RedHat使用的软件格式。在Ubuntu下不能直接使用,所以需要转换一下。

sudo alien abc.rpm

7. vim使用

vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。
命令模式下:

:q                      退出
:q!                     强制退出
:wq                     保存并退出
:set number             显示行号
:set nonumber           隐藏行号
/apache                 在文档中查找apache 按n跳到下一个,shift+n上一个
yyp                     复制光标所在行,并粘贴
h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)

8. 用户及用户组管理

/etc/passwd             存储用户账号
/etc/group              存储组账号
/etc/shadow             存储用户账号的密码
/etc/gshadow            存储用户组账号的密码
useradd                 用户名
userdel                 用户名
adduser                 用户名
groupadd                组名
groupdel                组名
passwd root             给root设置密码
su root
su - root 
/etc/profile            系统环境变量
bash_profile            用户环境变量
.bashrc                 用户环境变量
su user                 切换用户,加载配置文件.bashrc
su - user               切换用户,加载配置文件/etc/profile ,加载bash_profile
sudo chown [-R] owner[:group] {File|Directory}      更改文件的用户及用户组
sudo chown root:root jdk-7u21-linux-i586.tar.gz

9. 文件权限管理

三种基本权限

R       读         数值表示为4
W       写         数值表示为2
X       可执行     数值表示为1
$ ll
total 64M
drwxr-xr-x  4 root root 4.0K Feb  8 11:22 beifen
drwxr-xr-x 13 root root 4.0K Jun 19 13:55 blog
-rw-rw--w-  1 root root 1.7M Mar 17 21:45 get-pip.py

如图所示,get-pip.py文件的权限为-rw-rw--w-

-rw-rw--w-一共十个字符,分成四段。

第一个字符“-”表示普通文件;这个位置还可能会出现“l”链接;“d”表示目录
第二三四个字符“rw-”表示当前所属用户的权限。               所以用数值表示为4+2=6
第五六七个字符“rw-”表示当前所属组的权限。                 所以用数值表示为4+2=6
第八九十个字符“w--”表示其他用户权限。                     所以用数值表示为2

所以操作此文件的权限用数值表示为662 

更改权限

sudo chmod [u所属用户  g所属组  o其他用户  a所有用户]  [+增加权限  -减少权限]  [r  w  x]   目录名 

例如:有一个文件filename,权限为“-rw-r----x” ,将权限值改为"-rwxrw-r-x",用数值表示为765

sudo chmod u+x g+w o+r  filename

上面的例子可以用数值表示

sudo chmod 765 filename

10. 软链接和硬链接

touch t1             #创建一个测试文件t1
ln t1 t2             #创建t1的一个硬连接文件t2
ln -s t1 t3          #创建t1的一个软连接文件t3
mkdir dir1           #创建一个测试文件夹
ln -s dir1   dir3    #为文件夹创建一个软连接
ln -s 已存在文件  未存在文件   # 第二个文件不需要创建
软连接中间有 ->  
硬链接只能给文件使用,不能给文件夹使用,软连接都可以
软连接dir1和dir3中的文件是同步的,不管你在哪个文件夹中操作
删除t1不会影响t2,删除t2不会影响t1,这就是硬链接的好处,防止意外删除重要文件

11. 其他一些命令

工作中用到的

ls -la -R(reverse关键是这个命令)         # Linux列出某文件夹下面所有文件包括子目录得的文件
echo abcbedf>>a.txt                      # 将abcdef追加到a.txt文件末尾
echo bbbbb>a.txt,                       # 这个是bbbbb把a.txt原来的内容替换,这里注意 >是覆盖,>>是追加。
ssh -i ~/.ssh/key.pem root@139.198.0.173 -p 22005            # 指定key路径和端口号的
scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root      # 不同主机间拷贝,若是文件夹可在scp后加 -r参数
scp root@172.19.2.75:/home/root /home/daisy/*.tar.gz 
ps -ef | grep nginx    # System V展示风格, COMMADN列如果过长,aux会截断显示,而ef不会
ps aux | grep nginx    # BSD风格,查看进程的CPU占用率和内存占用率,可以使用aux,查看进程的父进程ID和完整的COMMAND命令,可以使用ef
netstat -antlp | grep 514
git branch |grep 'branchName' |xargs git branch -D  # 批量删除git分支
find app/ -name '*.php' | xargs dos2unix # xargs的使用

grep的用法

grep -rn "hello,world!" *
 
* : 表示当前目录所有文件,也可以是某个文件名
-r 是递归查找
-n 是显示行号
-R 查找所有文件包含子目录
-i 忽略大小写

下面是一些有意思的命令行参数:

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写, 
grep -l pattern files :只列出匹配的文件名, 
grep -L pattern files :列出不匹配的文件名, 
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’), 
grep -C number pattern files :匹配的上下文分别显示[number]行, 
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行, 
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。 

这里还有些用于搜索的特殊符号:

\<\> 分别标注单词的开始与结尾。
例如:

grep man * 会匹配 ‘Batman’、‘manic’、‘man’等, 
grep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’, 
grep '\<man\>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。 
'^':指匹配的字符串在行首, 
'$':指匹配的字符串在行尾,  

rz和sz的用法

z,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具。
优点就是不用再开一个sftp工具登录上去上传下载文件。

sz:将选定的文件发送(send)到本地机器
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器

安装命令:

yum install lrzsz

从服务端发送文件到客户端:

sz filename

从客户端上传文件到服务端:

rz

在弹出的框中选择文件,上传文件的用户和组是当前登录的用户

posted @ 2018-12-04 20:24  archer-wong  阅读(297)  评论(0)    收藏  举报