1、date:系统时间、日期。
2、cal:当月日历。
3、df:磁盘可用空间。
4、free:可用内存。
5、exit:关闭终端会话。
1、pwd:当前工作目录(Print Working Directory)。
2、ls:列出当前工作目录的文件和目录。
特别地,ls -a:可以列出隐藏文件。
3、cd:更改工作目录。
1、选项和参数
ls常用选项:
-a/--all
:列出所有文件,包括隐藏。
-l
:长格式显示。
-r/--reverse
:字母逆序显示。
-S
:文件大小排序。
-t
:修改时间排序。
-h/--human-readable
:人可读的方式显示文件大小。
file filename
:确定文件类型。
less filename
:查看文件内容。
按Q键退出。
常用通配符:
*:匹配任意多个字符(0/1/2…个)。
?:匹配任意单个字符(1个)。
mkdir dir1
:创建一个目录。
mkdir dir1...
:创建多个目录。
cp item1 item2
:复制单个文件。
cp item1... directory
:复制多个文件。
mv item1 item2
:移动/重命名item1为item2。
mv item... directory
:移动单个/多个文件到某个目录下。
rm item...
:不可撤回的操作!⚠️
rm命令常用选项:
-i/--interactive
:提醒用户确认
-r/--recursive
:递归删除
-f/--force
:直接执行不提示
ln file link
:创建硬链接。ln -s item link
:创建软链接/符号链接。硬链接软链接对比
type command
which command
alias name='string'
:name后无空格!string是命令集合,可用分号把多条命令写在一行。
unalias name
:删除别名。
注意⚠️:在命令行创建别名alias会在会话结束后自动删除。
stdin/stdout/stderr
使用>/<符号进行重定向。
> filename
:从文件开头把输出内容写入文件,但不写入错误信息。
>> filename
:从文件尾部添加输出内容。
妙用:
可以直接调用>/>>来创建空文件,>也可以用来清空文件内容。
2> filename
:fd=2即为stderr。
&> filename
:同时把stdout/stderr重定向到同个文件。
2> /dev/null
:/dev/null称为位桶(bit bucket)。
cat命令的用法:
1)显示文件
cat filename
2)合并文件
cat filename... > newfile
:把filename等文件合并成newfile。
3)创建文本文件
cat > filename
:执行后stdin会等待输入直到EOF。
4)stdin重定向
cat < filename
:filename作为输入。
command1 | command2
:从command1的stdout传送到command2的stdin。
pipe的用法:
1)过滤器filter
ls /bin /usr | sort | less
:/a /b目录下可执行程序 -> 排序 -> 查看。
2)uniq——删除文件重复行
经常与sort结合使用。
ls /bin | sort | uniq | less
:删除重复行。
ls /bin | sort | uniq -d | less
:反选重复行。
3)wc——打印行数、字数、字节数
wc filename
:打印行数、字数、字节数。
ls /bin | wc -l
:只打印行数。
4)grep——打印匹配行
ls /bin | grep string
:匹配满足正则表达式string的行。
5)head/tail——打印文件开头/结尾
head -n 5 filename
:输出前5行。
tail -n 5 filename
:输出末5行。
ls /bin | tail -n 5
:管道中使用tail。
tail -f /var/log/messages
:持续监视日志文件,有新行添加就立刻显示(-f)。
6)tee——从stdin读取,同时输出到stdout和文件
tee:“T”,单口进,双口出。
tee filename
:从管道中间某个位置输出到文件。
例子:
ls /bin | tee ls.txt | grep zip
:把/bin全部目录列表存到ls.txt,stdout则最后只输出包含zip的子项。
echo命令:把文本参数内容打印到stdout。
echo D*
:扩展为当前目录下首字母D的文件或目录。
echo ~
:扩展为当前用户的主目录。
echo ~username
:扩展为username用户的主目录。
空格在算术表达式中无意义。
echo $(((5**2) * 3))
:75。
花括号里是模式信息!可以用逗号枚举、可以用两个句号表示序列。
echo a{A{1,2},B{3,4}}b
:aA1b / aA2b / aB3b / aB4b。
echo Num_{1..5}
:Num_1 / Num_2 / Num_3 / Num_4 / Num_5。
扩展为已定义的变量,若无定义则为空白。
echo $USER
:liuwp。
echo $HAHAHA
:空白输出。
echo $(ls)
:等价于ls。
加上双引号,则表示整体为一个参数。
加上单引号,抑制所有扩展。
history | less
:查看命令的历史记录。
假设输出如下:
1 ls
2 pwd
3 are you ok?
…
!2
:使用历史记录第2行命令,即pwd。
!!
:使用最近一条命令。
! are
:使用最近以"are"开头的命令。
!?are
:使用最近包含"are"的命令。
id
:uid=1016(liuwp) gid=1016(liuwp) groups=1016(liuwp)
访问权限的控制就是:读、写、执行。
文件类型 | 所有者权限 | 组权限 | 其他用户权限 |
---|---|---|---|
-(普通) | rwx | rw- | r– |
d(目录) | 略 | 略 | 略 |
l(符号链接) | 略 | 略 | 略 |
例子:
6 -> 110 -> rw-
chmod 777 filename
例子:
u+x
:文件所有者增加执行权限。
u-rw
:文件所有者删除读写权限。
umask默认值是0002,可改,但一般不需要改。
用4个八进制数表示掩码。第一位不需要看。
例子:
002,分别对u/g/o设置掩码0/0/2。其中,2 <=> 010 <=> 把w设置为-。
su -
:超级用户,等价于su -l
。
ps
:简略输出。
ps x
:所有进程。
ps aux
:更详细输出所有进程。
top
:可看CPU、MEM占用情况。
process1 &
:process1后台运行。
bg %1
:1号作业后台运行。
fg %1
:1号作业返回前台。
kill [-signal] PID
killall [-signal] name