最全面的工作中常用Linux命令总结(正确阅读点击原文地址)
原文地址:https://note.youdao.com/share/?id=8f601c5be96adb89fedc8a2bbfccec98&type=note#/
10.4 字符转换命令 tr col join paste expand
10.5 将从window中复制的文件到linux上 删除断行符
https://www.cnblogs.com/200911/p/4012161.html 系统文件目录的详解
1.基础命令
date 显示日期 date +%Y%m%d%H%M%S 显示 年月日时分秒
cal 显示日历 cal 2017 显示整年的日历 cal 10 2017 显示2017年10月的日历
bc 简单计算器
Ctrl + c 中断目前程序
sync 将数据同步写入硬盘
shutdown 关机 reboot重启
别名设置 alias lm='ls -al'
1.1文件属性和权限
chgrp (Change group) 改变文件所属用户组
chown:(Change owner)改变用户所有者
chmod(Change mode)改变用户权限
r(read):4 w(write):2 x(excute):1 注意:w 不含删除文件权限 x对目录来说代表能否访问此目录
u(user) g(group) o(others) a(all) + 加入 -除去 设置
chmod u=rwx,go=rx filename 注意:标红的地方无空格 chmod u=rwx,g=rx,o=r filename
chmod a+w filename chmod a-x filename
1.2 磁盘容量及连接文件
df -h 列出文件系统整体磁盘使用量 df -aT 将系统内所有文件格式及名称都列出来
du -s 列出总量 而不列出个别目录占用容量 ( -k -m 结合使用看kb M 容量)
du -sm /* 检查根目录下每个目录的占用的容量
常用命令使用:
1. 先用df 查看磁盘使用率
2.然后查看某一个目录的大小 使用 du -h 默认查看
3. 使用du -hd 1(数字1) 查看当前目录下所有子目录的大小 ,如果是2 ,就是子目录的子目录
ln (硬连接 hard link)
ln -s (符号连接 symbolic link)
区别:一个文件若是有硬链接文件,删除任何一个,另外的文件都能打开,没有真正删除文件内容
2.处理目录及文件命令
- 代表前一个工作目录
~ 代表目前用户身份所在的主文件夹 cd ~ 表示回到自己的主文件夹(即 /root 目录)
ls (list): 列出目录
-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
-d :仅列出目录本身,而不是列出目录内的文件数据(常用)
-l :长数据串列出,包含文件的属性与权限等等数据;(常用)
ls -al 将家目录下的所有文件列出来(含属性与隐藏档)
ll --time=atime 查看访问时间
cd (change directory):切换目录
cd .. 返回上级目录
cd ~ 返回/root目录
cd - 返回历史目录
pwd (print work directory):显示目前的目录
touch 创建文件 改变文件时间
改变文件修改时间 touch a (如何此文件存在)
改变文件的访问时间 touch --time=atime
mkdir (make directroy):创建一个新的目录
mkdir -p test1/test2/test3 创建多层目录 -m 给创建的目录配置权限
rmdir (remove directroy):删除一个空的目录 rmdir -p 连同上一级『空的』目录也一起删除
rm 删除非目录文件
rm -rf 删除不为空的目录和非目录文件 区别 rm -r (会提示是否删除)
cp (copy file): 复制文件或目录
cp -r 复制目录 (可能改变文件和目录的权限) 备份还是使用cp -a
cp -i 复制并覆盖同名的
cp -p 连同文件的属性一起复制过去,而非使用默认属性(备份常用);
rm (remove): 移除文件或目录
mv (move) 移动文件位置并修改文件名称
mv jdk1.7.0_51 jdk1.7 文件名修改
mv命令既可以重命名,又可以移动文件或文件夹。
例子:将目录A重命名为B
mv A B
例子:将/a目录移动到/b下,并重命名为c
mv /a /b/c
取得路径的文件名与目录名称
basename /etc/sysconfig/network 输出结果: network
dirname /etc/sysconfig/network 输出结果:sysconfig
文件隐藏属性 chattr lsattr
chattr +i filename 设置文件为不可被更改
chattr +a filename 可以增加数据但不能修改数据
查看文件类型 file
2.1 文件内容查看
cat 由第一行开始显示文件内容 cat -n 显示行号
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
nl 显示的时候,顺道输出行号!(默认不包含空格)nl -b a file 显示空格
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
less
空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字串 :向下搜寻『字串』的功能;
?字串 :向上搜寻『字串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序;
b ctrl +b 代表往回翻页 (注意:只对文件有用,对管道无用)
2.2 过滤输出列表
例如 命令:
ls my*
ls my?
ls my[ai]a
ls my[a-i]a
问号代表一个字符
星号代表零个或多个字符
中括号 匹配所需的元素
2.3文件名的查找
find:
find /etc -name '*httpd*' 模糊查找 (连同子目录查找)
find / -size +1000k 查找根目录下大于1000kb的文件
一般模式:光标移动、查找、替换、复制、粘贴、删除
hjkl 左下上右移动 20j 下移20行
Ctrl+f 向下移动一页 Ctrl+b 向上
0 $ 行首 行尾 G gg 文件头 文件尾
H M L 屏幕的头 中 尾
----------------------------------------------------------------------
/word 配合n及N 查找
:n1,n2s/word/word2/g 从n1到n2行查找替换
:1,$s/word/word2/g 从第一行到最后一行查找替换
:1,$s/word/word2/gc 会提醒是否替换
------------------------------------------------------------------
dd yy nyy ndd y0 y$
p 粘贴在此行之下 P 粘贴在此行之上
----------------------------------------------------------------------
u 复原
ctr+r 重做
. 重复前一个操作
r R 进入替换模式
:set nu : set nonu 显示和取消行号
:w filename 另存为filename文件 :n1,n2 w filename
:r filename 在此文件中读入filename文件的数据到此行后面
v ctrl +v 块选择 实现整块的复制和删除
多功能窗口
:sp filename
特别注意
不建议将文件从linux复制到windows上修改后再复制到linux上
会出现编码 和断行符不一样导致执行出错
解决方式:转换断行符
dos转unix:
dos2unix file
dos2unix -k file 保留文件原本的mtime格式
dos2unix -n file newfile 保留旧文件
如何查看断行符?
答:cat -A 要查看的文件路径或者使用vim打开你要查看的文件,在末行模式输入 :set list
1.安装
安装软件包:
yum install dos2unix
yum install unix2dos
3.进程端口命令
3.1 工作管理(job control)
job (job -l ) 查看当前所有工作
fg %jobnumber 根据工作号获取工作
bg %jobnumber 将后台某工作变成运行状态
端口 进程
ps -ef 查看所有进程的(完整格式)
ps -l 查看进程的所有信息
netstat -aln|grep 8080 查看端口占用情况
netstat -a 查看所有端口号
ps -ef | grep java 查看所有进程里 CMD 是 java 的进程信息
ps -aux | grep java 显示所有状态
kill -9 20628 杀死进程(-9代表强制删除的意思,20628是PID)
ps 查看所有PID
4.处理数据文件(排序、搜索、压缩)
4.1排序
sort file 默认语言的排序规则 排序(会把数据识别成字符排序)
sort -n 按数字排序
sort -M 按月份排序
按字段分隔后以第2段字段排序
----------------------------------------------------------------
[[email protected] processing-data-files]# cat passwd
root:0:1
a:2:6
liu:5:2
[[email protected] processing-data-files]# sort -t ':' -k 2 -n passwd
root:0:1
a:2:6
liu:5:2
----------------------------------------------------------------------
4.2搜索
grep a file 从file文件中搜索有a的行
grep -v a file 输出不匹配a的行
grep -c a file 含a的行 的数量 例如有两行有a字段 ,就输出2
grep -e a -e b file 制定多个匹配模式
安装
查看某个rpm包是否安装:rpm -qi a.rpm
安装某个包:rpm -ivh a.rpm
wget http://download.redis.io/releases/redis-3.0.7.tar.gz 在线下载
rpm -ivh 安装
linux 安装zip unzip yum install -y zip unzip
gzip、zcat
gzip filename 压缩成 filename.gz gzip -d filename.gz 解压 注意:源文件消失
zcat filename
gzip filename > filename.gz 保留源文件
-v 显示压缩信息 -t 检验压缩文件一致性 -c 将压缩数据输出到屏幕上,可以通过数据流重定向处理
bzip2 、bzcat(同上)
bzip2 -z filename 压缩 bzip2 -d (或者 bunzip2) filename.bz2 解压 bzcat 读取压缩文件
tar
打包:tar -cvf lxt008.tar /home/lxt008(将home目录下的路线图lxt008文件夹打包成lxt008.tar v是view简写 f为file)
解包:tar -xvf lxt008.tar /home(解压到home中)
查看包的内容:tar -tvf lxt008.tar
打包并压缩:tar -czvf 008.tar.gz /home/lxtoo8
解压包:tar -xzvf 008.tar.gz /home
tar -jcvf filename.tar.bz2 filename 打包并压缩(bzip2)
tar -jxvf filename.tar.bz2 -C /tmp 解压到tmp目录下
打包备份: filenam tar -cvf - /etc | tar -xvf - 将/etc整个目录一边打包一边在当前目录解开
备份
find /boot | cpio -ocvB > /tmp/boot.cpio 找出/boot下面所有文件并备份到boot.cpio
还原 cpio -idvc< filename
5.上传、下载命令
linux服务器需要安装插件
yum install -y lrzsz
xsell 发送文件到本地(下载) sz 文件名
xsell 接受本地文件(上传) rz 文件名
常用英文单词
recursive 递归
6.shell 变量功能
6.1变量规则
1.第一个不能为数字
2.等号两边不能有空格
3.执行命令要用反引号或者$(cd / )
6.2变量显示与设置
set 查看所有变量
export 查看环境变量
name=liujiang 自定义一个名词为name的变量
echo $name 查看 unset name 取消此变量 export name 将name变量设置为环境变量
name="$name"new 累加新内容new到变量name中
bash 进入到子进程(父进程sleep) exit 离开这个子进程
env 与export 查阅环境变量 set 查看所有变量(环境变量+自定义变量)
PS1(数字1而不是英文字母)
PS1='[\u \W \t #\#]\$' (详情请查阅鸟哥的私房菜书籍306页)
echo $$ 目前这个Shell的线程代号(PID)
? (关于上个执行命令的回传码) echo $?
6.3 变量键盘读取、数组与声明
read atest
-p 后面可接提示信息
declare 声明 默认是字符串 数值运算默认达整数类型
-a(array) 数组
-i(integer)整数数字
-x(同export 设为环境变量)
-r(readonly)不可被更改内容
-p 显示变量的类型
注意:将-变成+可以进行取消操作
数组
6.3 变量内容的删除、替代与替换
7.shell 变量功能
7.1命令别名设置
alias 查看所有别名
alias lm='ls -l' 设置别名
unalias lm 删除别名
让别名永久有效(重新连接后仍有效)
vim /etc/profile
在最后面添加 别名设置命令
source /etc/profile
7.2历史命令
history 查看所有历史命令 系统默认是1000个左右
history n (n代表最近的n个命令)
-c 清除所有history内容
-w 将目前history记忆内容写入histfiles文件中(系统默认此操作,将历史记录写入~/.bash_history
!number (number表示历史第几条命令) 执行历史命令
!! 执行上一个命令
!al 执行最近以al开头的命令
注意:
8.Bash Shell 操作环境
type -a echo 查询echo命令的类型
source ~/.bashrc source(或者小数点) 将最新设置的内容读进目前的环境中
stty -a 列出所有的按键和按键内容
set -u 启动配置(启动了,当使用了未设置的变量时,会显示错误信息)
8.1通配符与特殊符号
9.数据流重定向
定义:执行命令所回传到屏幕的正确或者错误的消息分别传送到其他的文件或者设备去。
ll > test.txt (将ll命令执行后输出的正确内容传送到test文件中,如果此文件不存在就创建)
默认是1 代表正确 2> 代表错误
>> 累加
; && ||
cmd1 ; cmd2 不考虑命令相关性的连续命令执行
cmd1 && cmd2 若cmd1正确执行 则开始执行cmd2 若cmd1错误执行 则cmd2不执行
cmd1 || cmd2 若cmd1正确执行 则不执行cmd2 若cmd1错误执行 则cmd2开始执行
10.管道命令(pipe)
10.1 选取命令(cut grep)
cut 将一段信息的某段切出来,处理信息是以行为单位。
-d '分隔符’ 将此行以分隔符切成个几段
-f 3,5 取 取第3段和第5段
last | cut -d ' ' -f 1 将last命令执行后显示的登陆者信息,将每一行 以空格分隔,取第1段
grep [-acinv] [--color=auto] '查找字符串' filename
-a:将binary文件以text文件的方式查找数据
-c 计算找到 '查找字符串' 的次数
-i 忽略大小写的不同
-n 顺便输出行号
-v 反向选择
--color==anto 将找到的关键词加上颜色
grep筛选多个条件
① grep -E "word1|word2|word3" file.txt
满足任意条件(word1、word2和word3之一)将匹配。
② grep word1 file.txt | grep word2 |grep word3
必须同时满足三个条件(word1、word2和word3)才匹配。
例如需要排除 abc.txt 中的 mmm nnn
grep -v 'mmm\|nnn' abc.txt
但是这样还是很多,需要从这几条信息里面去找到所需要的 ip 地址,我们可能想到了使用 grep -v 屏蔽掉 inet6,结果如下:
bash-3.2# ifconfig | grep inet | grep -v inet6 inet 127.0.0.1 netmask 0xff000000 inet 10.60.104.38 netmask 0xfffffe00 broadcast 10.60.105.255
10.2 排序命令:sort wc uniq
sort 默认以文字类型排序 升序
cat /etc/passd | sort -t ':' -k 3 以冒号分段后的第3段 内容 按数字类型升序
uniq
-i 忽略大小写字符的不同
-c 进行计数
last | cut -d ' ' -f1 | sort | uniq -c
wc
-l 仅列出行
-w 仅列出多少字
-m: 多少字符 (包括空格和断行符)
10.3 双向重定向 tee
tee 在数据流处理过程中将某段信息存下来
-a 累加
ls | tee test.txt
10.4 字符转换命令 tr col join paste expand
tr [-ds] test
-d 删除信息中test这个字符串
-s 替换掉重复的字符
将从window中复制的文件到linux上 删除断行符