linux命令
echo
- 在命令行输出一段信息,引号是可选的
echo 'message'
- 输出带有变量的信息
echo "My path is $PATH"
- 打印一个没有结尾换行符的消息
echo -n "Hello World"
- 启用反斜杠转义解释(特殊字符)
echo -e "Column 1\tColumn 2"
>和>>
当输入某个命令需要保存返回的内容的时候会>
和>>
ls > file
会覆盖之前的内容
ls >> file
会在后面添加内容
ln 命令
这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件。当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
-s 是代号(symbolic)的意思。
- 命令格式
ln
[参数][源文件或目录][目标文件或目录] - 创建一个文件(或文件夹)的符号软链接:
ln -s path/to/file(源文件) path/to/symlink(目标文件)
- 覆盖现有符号以指向不同的文件
ln -sf path/to/new_file path/to/symlink
- 创建一个硬链接到一个文件
ln path/to/file(源文件) path/to/hardlink(目标文件)
软链接:
- 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
- 软链接可以 跨文件系统 ,硬链接不可以
- 软链接可以对一个不存在的文件名进行链接
- 软链接可以对目录进行链接
硬链接:
- 硬链接,以文件副本的形式存在。但不占用实际空间。
- 不允许给目录创建硬链接
- 硬链接只有在同一个文件系统中才能创建
通过ls -al的方式可以查看目录下的文件是否是通过ln的方式生成的
python2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
说明源文件在../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
目录下
which 命令
路径的查找
- 搜索PATH环境变量并显示任何匹配可执行文件的位置
which executable
- 如果有多个可执行文件匹配,显示全部
which -a executable
grep命令
grep
Matches patterns in input text.
Supports simple patterns and regular expressions.
-
Search for an exact string:
grep search_string path/to/file
-
Search in case-insensitive mode:
grep -i search_string path/to/file
-
Search recursively (ignoring non-text files) in current directory for an exact string:
grep -RI search_string .
-
Use extended regular expressions (supporting
?
,+
,{}
,()
and|
):
grep -E ^regex$ path/to/file
-
Print 3 lines of [C]ontext around, [B]efore, or [A]fter each match:
grep -C|B|A 3 search_string path/to/file
-
Print file name with the corresponding line number for each match:
grep -Hn search_string path/to/file
-
Use the standard input instead of a file:
cat path/to/file | grep search_string
-
Invert match for excluding specific strings:
grep -v search_string
scp
命令
使用SSH上的安全复制协议在主机之间复制文件
-
复制本地文件到远程服务器:
scp path/to/local_file remote_host:path/to/remote_file
-
将文件从远程主机复制到本地文件夹:
scp remote_host:path/to/remote_file path/to/local_dir
-
递归地将目录的内容从远程主机复制到本地目录:
scp -r remote_host:path/to/remote_dir path/to/local_dir
-
在通过本地主机传输的两个远程主机之间复制文件:
scp -3 host1:path/to/remote_file host2:path/to/remote_dir
-
连接到远程主机时使用特定的用户名:
scp path/to/local_file remote_username@remote_host:path/to/remote_dir
-
使用特定的ssh私钥与远程主机进行身份验证:
scp -i ~/.ssh/private_key local_file remote_host:/path/remote_file
-
复制本地文件到远程服务器使用特定的端口号:
scp -P port path/to/local_file remote_name@remote_host:path/to/remote_file
df
概述文件系统磁盘空间的使用情况
-
显示所有文件系统及其磁盘使用情况:
df
-
以人类可读的形式显示所有文件系统及其磁盘使用情况:
df -h
-
显示包含给定文件或文件夹的文件系统及其磁盘使用情况:
df path/to/file_or_folder
tar
归档工具。
通常与压缩方法相结合,如gzip或bzip。
-
从文件创建归档:
tar cf target.tar file1 file2 file3
-
创建一个压缩的gzip归档文件:
tar czf target.tar.gz file1 file2 file3
-
在目标文件夹中提取存档:
tar xf source.tar -C folder
-
在当前目录中提取压缩后的归档文件(gzip):
tar xzf source.tar.gz
-
在当前目录中提取压缩后的归档文件(bzipped):
tar xjf source.tar.bz2
-
创建压缩存档,使用存档后缀来确定压缩程序:
tar caf target.tar.xz file1 file2 file3
-
列出tar文件的内容:
tar tvf source.tar
-
提取与模式匹配的文件:
tar xf source.tar --wildcards "*.html"
which
在用户路径中定位程序
(可执行文件)
-
搜索PATH环境变量并显示任何匹配的可执行文件的位置:
which executable
-
如果有多个可执行文件匹配,则显示所有文件:
which -a executable
alias
命令
创建别名——由命令字符串替换的单词。
别名在当前shell会话中过期,除非它们是在shell的配置文件中定义的,例如。~ / . bashrc。
-
创建通用别名:
alias word="command"
-
查看与给定别名关联的命令:
alias word
-
删除别名命令:
unalias word -
列出所有别名的单词:
alias
mac系统下
alias -p
linux系统下 -
将rm转换为交互式命令:
alias rm="rm -i"
-
创建“la”作为“ls -a”的快捷方式:
alias la="ls -a"
cat
命令
打印和连接文件。
-
将文件的内容打印到标准输出:
cat file
-
将几个文件连接到目标文件中会覆盖原来文件的内容:
cat file1 file2 > target_file
-
将几个文件附加到目标文件中 在原来文件内容后面追加内容:
cat file1 file2 >> target_file
-
给所有输出行编号:
cat -n file
nohup
命令
当终端被终止时,允许进程继续运行。
- 运行可以驻留在终端之外的进程:
nohup command options
uname
打印当前机器和在其上运行的操作系统的详细信息。
注意:有关操作系统的更多信息,请尝试“sw_vers”命令
-
打印硬件相关信息:机器和处理器:
uname -mp
-
打印软件相关信息:操作系统、发布号、版本:
uname -srv
-
打印系统的节点名(主机名):
uname -n
-
打印所有可用的系统信息(硬件、软件、节点名):
uname -a
linux下读取系统版本信息
cat /etc/issue
命令读取 内容
ps
命令
Linux ps命令用于显示当前进程 (process) 的状态。
-
列出所有正在运行的进程:
ps aux
-
列出所有正在运行的进程,包括完整的命令字符串:
ps auxww
-
列出所有正在运行的进程,包括完整的命令字符串:
ps aux | grep string
-
以额外的完整格式列出当前用户的所有进程:
ps --user $(id -u) -F
-
以树的形式列出当前用户的所有进程:
ps --user $(id -u) f
-
获取进程的父pid:
ps -o ppid= -p pid
env
命令
显示环境或在修改的环境中运行程序。
-
展示环境:
env
-
运行一个程序。通常用于脚本后的shebang(#!),用于查找程序的路径:
env program
-
清除环境并运行程序:
env -i program
-
从环境中删除变量并运行程序:
env -u variable program
-
设置一个变量并运行一个程序:
env variable=value program
cp
命令
复制文件和文件夹。
-
将文件复制到另一个位置:
cp path/to/file.ext path/to/copy.ext
-
将文件复制到另一个文件夹中,保留文件名:
cp path/to/file.ext path/to/target_parent_folder
-
递归地将文件夹复制到另一个位置:
cp -r path/to/folder path/to/copy
-
以详细模式递归复制文件夹(在复制文件时显示文件):
cp -vr path/to/folder path/to/copy
-
将文件夹的内容复制到另一个文件夹:
cp -r path/to/source_folder/* path/to/target_folder
-
以交互模式(覆盖前提示用户)将文本文件复制到另一个位置:
cp -i *.txt path/to/target_folder
mv
命令
移动或重命名文件和目录.
-
将文件移动到任意位置:
mv source target
-
覆盖现有文件前不要提示确认:
mv -f source target
-
覆盖现有文件前提示确认,无论文件权限如何:
mv -i source target
-
不覆盖目标上的现有文件:
mv -n source target
-
以详细模式移动文件,在移动文件后显示文件:
mv -v source target
rm
命令
删除文件或目录.
-
从任意位置删除文件:
rm path/to/file path/to/another/file
-
递归地删除目录及其所有子目录:
rm -r path/to/folder
-
强制删除目录,无需提示确认或显示错误消息:
rm -rf path/to/folder
-
交互式地删除多个文件,每次删除前都有一个提示符:
rm -i file(s)
-
以冗长模式删除文件,为每个删除的文件打印一条消息:
rm -v path/to/folder/*
crontab
命令
安排cron工作在当前用户的时间间隔内运行.
工作定义格式: "(min) (hour) (day_of_month) (month) (day_of_week) 命令执行".
-
为当前用户编辑crontab文件:
crontab -e
-
查看当前用户的现有cron任务列表:
crontab -l
-
删除当前用户的所有cron任务:
crontab -r
crontab编辑例子:
-
每天10点运行的示例任务。*表示任何值:
0 10 * * * path/to/script.sh
-
示例任务,在4月3日每分钟运行一次:
* * 3 Apr * path/to/script.sh
-
样本任务,每周五2:30开始:
30 2 * * Fri path/to/script.sh
tail
命令
显示文件的最后一部分 默认10行.
-
在文件中显示最后的“num”行:
tail -n num file
-
显示“num”行之后的所有文件:
tail -n +num file
-
显示文件中的最后一个“num”字节:
tail -c num file
-
一直读取文件,直到“Ctrl + C”:
tail -f file
-
一直读取文件直到“Ctrl + C”,即使文件是循环的:
tail -F file
mkdir
命令
- 在当前文件夹或给定路径中创建目录:
mkdir directory
- 递归地创建目录(用于创建嵌套的dirs) 嵌套创建目录:
mkdir -p path/to/directory
export
命令
命令来标记当前环境中的shell变量,以便与任何新派生的子进程一起导出
-
设置一个新的环境变量:
export VARIABLE=value
-
删除环境变量:
export -n VARIABLE
-
向路径变量追加一些东西:
export PATH=$PATH:path/to/append
Passwd
是一个用来更改用户密码的工具。
-
更改当前用户的密码:
passwd new_password
-
更改指定用户的密码r:
passwd username new_password
-
获取用户的当前状态:
passwd -S
-
将账户密码设为空(将指定账户设为无密码):
passwd -d
使用telnet协议连接到主机的指定端口
-
Telnet到主机的默认端口:
telnet host
-
Telnet到主机的特定端口:
telnet ip_address port
-
退出telnet会话:
quit
-
发出终止会话的默认转义字符组合:
Ctrl + ]
-
以“x”作为会话终止字符启动telnet:
telnet -e x ip_address port
网友评论