帮助文档
- man + 指令 显示该指令的帮助文档
man page说明后面的数字中,1代表一般账号可用命令,8代表系统管理员常用命令,5代表系统配置文件格式。
进入man命令的功能后,你可以按下『空格键』往下翻页,可以按下『 q 』按键来离开man的环境。
切换用户
- su用于用户之间的切换。
- su命令不加参数,默认切到root用户,需要输入root用户密码进行验证
- su命令可以加一个“-”再加上用户名,此时,不但身份变化了,同时也拥有了此用户的“用户环境”
- sudo用于普通用户可以使用root权限来执行指定命令。
- u username/#uid不加此参数,代表要以root的身份执行指令,而加了此参数,可以以username的身份执行指令(#uid为该username的使用者号码)
- 执行sudo -u <用户名> <命令>, 将允许当前用户,提权到<用户名>的身份,再执行后面的<命令>, 即使<命令>原本需要root权限。
su 命令与 su - 命令之间有什么区别呢?
前者在切换到 root 用户之后仍然保持旧的(或者说原始用户的)环境,而后者则是创建一个新的环境(由 root 用户 ~/.bashrc 文件所设置的环境),相当于使用 root 用户正常登录(从登录屏幕登录)。
Mac只能使用sudo su命令
终端利用ssh登录远程服务器
其他命令
显示日期与时间的命令: date
显示日历的命令: cal(calendar) cal [month] [year]
简单好用的计算器: bc
quit <==离开 bc 这个计算器who命令用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。
clear 清屏
last 查看最近的登录历史记录
[Tab]按键
『命令补全』与『文件补齐』[Ctrl]-c 按键
中断目前程序[Ctrl]-d 按键 直接离开文字接口(相当于输入exit啊!)。
-
history 查看历史命令
history 10 显示最近10条命令
ping 用来测试主机之间网络的连通性
exit 退出shell
将数据同步写入硬盘中的命令: sync
惯用的关机命令: shutdown
重新启动,关机: reboot, halt, poweroff
在终端机环境中,可依据提示字符为$或#判断为一般账号或root账号;
取得终端机支持的语系数据可下达『echo $LANG』或『locale』命令
文件属性与权限
- chgrp 改变文件所属群组
- chown 改变文件拥有者
- chmod 改变文件的权限
目录
在 Linux 或 Unix 操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。
文件系统的最顶层是由根目录开始的,系统使用 / 来表示根目录。在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含子目录文件。如此反复就可以构成一个庞大的文件系统。
在Linux文件系统中有两个特殊的目录,一个用户所在的工作目录,也叫当前目录,可以使用一个点 . 来表示;另一个是当前目录的上一级目录,也叫父目录,可以使用两个点 .. 来表示。
- . :代表当前的目录,也可以使用 ./ 来表示;
- .. :代表上一层目录,也可以 ../ 来代表。
如果一个目录或文件名以一个点 . 开始,表示这个目录或文件是一个隐藏目录或文件(如:.bashrc)。即以默认方式查找时,不显示该目录或文件。
绝对路径和相对路径
绝对路径
由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc;
相对路径
相对于目前路径的文件名写法。 例如 ./home/dmtsai等等。反正开头不是 / 就属于相对路径的写法。
而你必须要了解,相对路径是以你当前所在路径的相对位置来表示的。举例来说,你目前在 /home 这个目录下, 如果想要进入 /var/log 这个目录时,可以怎么写呢?
cd /var/log (absolute)
cd ../var/log (relative)
. :代表当前的目录,也可以使用 ./ 来表示;
.. :代表上一层目录,也可以 ../ 来代表。
实例1:如何先进入/var/spool/mail/目录,再进入到/var/spool/cron/目录内?
命令:
cd /var/spool/mail
cd ../cron
实例2:网络文件常常提到类似./run.sh之类的数据,这个指令的意义为何?
说明:
由于指令的执行需要变量的支持,若你的执行文件放置在本目录,并且本目录并非正规的执行文件目录(/bin, /usr/bin等为正规),此时要执行指令就得要严格指定该执行档。./代表本目录的意思,所以./run.sh代表执行本目录下, 名为run.sh的文件。
处理目录的常用命令
- ls: 列出目录
ls filename 列出指定目录下的文件或目录
-a 列出目录下的所有文件,包括以 . 开头的隐含文件
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。
- cd:切换目录
#使用 mkdir 命令创建 runoob 目录
[root@www ~]# mkdir runoob
#使用绝对路径切换到 runoob 目录
[root@www ~]# cd /root/runoob/
#使用相对路径切换到 runoob 目录
[root@www ~]# cd ./runoob/
# 表示回到自己的家目录,亦即是 /root 这个目录
[root@www runoob]# cd ~
# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@www ~]# cd ..
cd - 回到先前的目录
. 代表此层目录
.. 代表上一层目录
代表前一个工作目录
~ 代表『目前使用者身份』所在的家目录
~account 代表 account 这个使用者的家目录(account是个帐号名称)
pwd:显示目前的目录
mkdir:创建一个新的目录
-p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
#递归创建多个目录
mkdir -p test2/test22
rmdir:删除一个空的目录
rm: 移除文件或目录
该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
-r, -R 指示rm将参数中列出的全部目录和子目录均递归地删除。
# 删除任何.log文件;删除前逐一询问确认
rmr -i *.log
- mv
# 文件改名
mv test.log test1.txt 讲test.log改为test1.txt
rename 可以用来批量更改文件名
# 移动文件
mv test1.txt test3
touch: 新建文件
stat: 输出文件的相关信息
文件内容查看
Linux系统中使用以下命令来查看文件的内容:
cat 由第一行开始显示文件内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
以二进制的方式读取文件内容
cat 用于连接文件并打印到标准输出设备上
-n 或 --number:由 1 开始对所有输出的行数编号。
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat -n textfile1 > textfile2
- tac 反向列示
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!
- head
#显示前20行
head -n 20 /etc/man_db.conf
- cp 复制文件或目录
复制/etc/这个目录下所有内容到/tmp下面
cp /etc/ /tmp
- cmp 用于比较两个文件是否有差异
当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有所差异,预设会标示出第一个不同之处的字符和列数编号。
cmp prog.o.bak prog.o
- file 用于辨识文件类型。
通过file指令,我们得以辨识该文件的类型。
打包压缩
打包:将一大堆文件或目录变成一个总的文件【tar命令】
压缩:将一个大的文件通过一些压缩算法变成一个小文件【gzip,bzip2等】
gzip是linux自带的压缩文件命令,它的压缩比大概能达到60%-70%,比zip的压缩比更高。使用gzip压缩默认会在文件后加上.gz后缀并将源文件删除。gunzip是解压缩命令。
- gzip
gzip * 把当前目录下的每个文件压缩成.gz文件
-d或--decompress或----uncompress:解开压缩文件
- gunzip 解压文件
bzip2命令是.bz2文件的压缩程序。
bzip2采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。
- tar
习惯上以.tar后缀代表tar包,用xxx.tar.gz或.tgz代表gzip压缩过的tar文件,用.tar.bz2代表bzip2压缩过的tar文件。
#将img1和img2两个文件夹打包成img.tar,仅打包不压缩
tar img.tar img1 img2
#将img1和img2两个文件夹打包成img.tar.gz,打包后,以gzip压缩
tar -zcvf img.tar.gz img1 img2
#将img1和img2两个文件夹打包成img.tar.bz2,打包后,以bzip2来压缩
tar -jcvf img.tar.bz2 img1 img2
tar -xvf file.tar
tar -zxvf file.tar.gz
指令与文件的查找
- which 指令名 查找可执行命令所在的路劲
- whereis 指令名
- find 用来在指定目录下查找文件
将目前目录及其子目录下所有延伸档名是 c 的文件列出来。
# find . -name "*.c"
将目前目录其其下子目录中所有一般文件列出
# find . -type f
将目前目录及其子目录下所有最近 20 天内更新过的文件列出
# find . -ctime -20
文本搜索
- grep
强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
磁盘管理
Linux磁盘管理常用三个命令为df、du和fdisk。
- df:列出文件系统的整体磁盘使用量
- du:检查磁盘空间使用量
- fdisk:用于磁盘分区
内存管理
- free
Mac下
- top -l 1 | head -n 10 | grep PhysMem