Linux 常用命令
Originally by: 于俊杰
Join | ||
Join a1.txt a2.txt | inner join by the first column | |
join -a1 a1.txt a2.txt | left join by the first column | |
join -a1 -1 1 -2 3 a1.txt a2.txt | left join by the first column in first file, and third col in the third column | |
mkdir | ||
mkdir -p ./a1/a2/a3/a4/a6 | mamke dirs in all the specified places | |
alias | ||
alias work="cd ~/data" | ~/.bashrc; ~/.bash_profile | |
? | mkdir & cd | |
function mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\""; } | ||
cd - | 在最近访问的两个目录间转换 | |
ssh | ssh -V | 显示ssh版本 |
ssh -l junjie.yjj 10.242.94.1 | ||
grep | ||
grep junjie /etc/passwd | 文件下查找所有含有“junjie” 的行并全部显示出来 | |
grep -v junjie /etc/passwd | 参数-v会显示出所有不包含匹配文本的内 | |
grep -c junjie /etc/passwd | 显示了在“/etc/password/”下含有“junjie”的行的总数 | |
grep -cv junjie /etc/passwd | 显示了在“/etc/password/”下不含有“junjie”的行的总数 | |
grep -i junjie /etc/passwd | 查找时忽略大小写 | |
grep -r junjie /home/users | 在所有的子目录下执行相应的查找 | |
grep -rl junjie /home/users | 利用参数‘l‘, 只显示文件名 | |
find | ||
find /etc -name "*mail*" | 找在文件名中含有指定关键字的文件;查找在“/etc”目录下所有文件名中含有“mail”的文件 | |
find / -type f -size +100M | 列出系统中所有大于100M的文件 | |
find . -mtime +60 | 列出在当前目录下在最近60天没有被修改过文件 | |
find . -mtime -2 | 列出在当前目录下在最近2天被修改过文件 | |
2> /dev/null | ||
cat a.txt 2>/dev/null | 用“2>/dev/null”禁止错误输出 | |
tr | tr a-z A-Z < employee.txt | 将文件中小写字母转化成大写字母 |
tr A-Z a-z < employee.txt | 小写字母 --> 大写字母 | |
xargs | 可以取一个命令的输出作为另一个命令的参数 | |
cat url-list.txt | xargs wget -c | ||
find ~ -name "*.conf*" | xargs ls -l | ||
find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz | ||
tar | 压缩 | |
tar -zcvf filename.tar.gz filename | ||
解压 | ||
tar -zxvf filename.tar.gz | ||
sort | sort name.txt | 文本升序排列 |
sort -r name.txt | 文本降序排列 | |
sort -t: -k 2 name.txt | 以: 为分隔符的,第二列为key进行排序 | |
sort -t: -u -k 3 name.txt | 排序且去掉重复项 | |
sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n /etc/hosts | 基于ip地址进行排序 | |
? | ls -al | sort +4n | 使用升序对ls -al的输出以文件大小进行排序(第5项) |
ls -al | sort +4nr | 使用降序对ls -al的输出以文件大小进行排序(第5项) | |
uniq | ||
sort name.txt | uniq | sort -u name.txt #equalient | |
sort name.txt | uniq -c | 去除重复,同时进行计数 | |
sort name.txt | uniq -cd | 紧显示有重复项的记录&其计数 | |
cut | 显示一个文本文件中特定的列或者其它命令的输出 | |
cut -d: -f 1 names.txt | 取冒号分割的文件中的第一列 | |
cut -d: -f 1,3 names.txt | 取冒号分割的文件中的第一&第三列 | |
cut -c 1-8 names.txt | 去文件中每行前八个字符 | |
stat | 显示一个文件或目录的属性 | |
stat /etc/my.conf | 查看文件属性 | |
stat -f / | 查看系统属性 | |
diff | 比较两个文件并显示差异 | |
diff -w names.txt names2.txt | w: 忽略空白 | |
ac | 显示用户的连接时间 | |
ac -d | 显示当前用户,在不同时间(天)上的连接时间长度 | |
ac -p | 显示所有用户,今天的已连接时间长度 | |
ac -d junjie.yjj | 显示用户不同时间上的连接时间长度 | |
PS1 | 默认提示符 | |
export PS1="\u@\h \w>" | add this to bashrc or bash_profile | |
\u 用户名 | ||
\h 主机名 | ||
\w 当前完整工作目录 | ||
PS2 | 多行命令默认连接符 (>) | |
addsfs cont\ | ||
>inue | ||
PS3 PS4 | skip | |
PROMPT_COMMAND | ||
环境变量 | ||
Bash在显示PS1之前先执行PROMPT_COMMAND定义的内容 | ||
export PROMPT_COMMAND = "date +%k:%m:%S" | 22:08:42 | |
zip | zip log-files.zip /var/log/* | 压缩多个文件 |
zip -r log-files.zip /var/log/* | 递归的压缩一个目录及目录下的文件 | |
unzip -v log-files.zip | v查看解压缩过程中的详细信息 | |
unzip -l log-files.zip | l在不解压缩的情况下,查看其中的文件 | |
zip -6 log-files.zip /var/log/* | 0-9 压缩程度,数值越大,压缩程度越大; 默认为6 | |
zip -P password log-file.zip /var/log/* | 设置压缩密码 | |
zip -e log-files.zip | 交互式设置压缩密码(相对于上面的明文方法) | |
zip -t log-files.zip | 显示文档的完整性;及其包含的内容 | |
tar (tape archive) | ||
tar 【选项】 【档案文件名】 【需要归档的文件】 | ||
tar cvf /tmp/my_home_directory.tar /home/junjie.yjj | ||
c:创建档案文件 | ||
v:verbose模式,即在命令执行过程中显示更多信息 | ||
f:在命令中之处归档文件名 | ||
tar tvf /tmp/my_home_directory.tar | 查看归档文件中包含哪些文件 | |
tar xvf /tmp/my_home_dirctory.tar | x:从归档文件中提取所有文件 | |
tar xvfz /tmp/my_home_dirctory.tar.gz -C home/junjie.yjj | ||
将tar.gz文件解压到制定文件 | ||
tar中使用gzip | ||
tar cvfz /tmp/my_home_directory.tar.gz /home/junjie.yjj/ | 创建tar.gz | |
tar xvfz /tmp/my_home_directory.tar.gz | ||
tar tvfz /tmp/my_home_directory.tar.gz | ||
tar中使用bzip2 | ||
tar cvfz /tmp/my_home_directory.tar.bz2 /home/junjie.yjj/ | 创建tar.bz2 | |
tar xvfz /tmp/my_home_directory.tar.bz2 | ||
tar tvfz /tmp/my_home_directory.tar.bz2 | ||
gzip 要比bzip2快 | ||
ctrl + r(R) | ||
搜索含有关键字的历史命令 | ctrl + r (R ) + keyword | |
source | 环境变量设置 | |
source ~/.bash_profile | 用户环境变量设置 | |
source . | 在当前shell下执行脚本 | |
cd | ||
cd - | 进入上次的路径 | |
cp | ||
cp -r SourceDir TargetDir | 递归拷贝文件夹下的文件 | |
touch | ||
touch filename | 新建文件 | |
ln | ||
ln -s SourceFile TargetFile | 创建软链接,相当于快捷方式 | |
ln -s /home/junjie.yjj/data/buy/ buy | ||
w | who | 显示当前登录的用户 |
last | 显示历史登录的用户 | |
yum | ||
yum list | grep company | 查看当前提供的公司的包 | |
yum install *.rpm | 安装某个包 | |
yum remobe *.rpm | 删除某个包 | |
进程管理 | ||
ps | ||
ps aux | 查看所有进程信息 | |
ps -ef pid | 查看某个进程的详细信息 | |
pstree | 查看进程树 | |
kill | ||
kill pid | 杀死某一进程 | |
kill -9 pid | 强制杀死某一进程 | |
top | 查看当前系统的进程占用资源信息,试试刷新 | |
nohup cmd & | 后台执行,且当前shell退出时,不结束任务 | |
su | su junjie.yjj | 切换到junjie.yjj |
su | 切换到root用户 | |
su - | 切换到root用户 | |
su root | 切换到root用户 | |
rz | 将windows 的文件传到linux | |
sz | sz filename | 将linux文件传到本地 |
光标移动 | ||
ctrl + a | 光标移到命令行开始 | |
ctrl + e | 光标移到命令行结尾 | |
ctrl + r | 从命令历史中找 | |
ctrl + l | ‘=clear 清屏 | |
wc | ||
wc -l | 统计行数 |
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。