Linux基础命令

操作系统简介

在这里插入图片描述

shell

shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上shell是一个命令解释器,它解释用户输入的命令并且把用户的意图传达给内核。(可以理解为用户与内核之间的翻译官角色)

在这里插入图片描述

[root@localhost ~]# 
[用户名@主机名 目录名]权限标识
快捷键作用
^C终止前台运行的程序
^D退出 等价exit
^L清屏
^A光标移动到命令行的最前端
^E光标移动到命令行的后端
^U删除光标前所有字符
^K删除光标后所有字符
^R搜索历史命令,利用关键词

ls

选项

  • -a:显示所有文件及目录 (**.**开头的隐藏文件也会列出)
  • -l:除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  • -r:将文件以相反次序显示(原定依英文字母次序)
  • -t:将文件依建立时间之先后次序列出
  • -A:同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
  • -F:在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
  • -R:若目录下有文件,则以下之文件亦皆依序列出
  • -h:将显示出来的文件大小以合适的单位显示出来
[root@localhost ~]# ls -ahl

-rw-------.  1 root root 128 4月   2 09:37 .bash_history

-rw-r--r--.  1 root root  18 12月 29 2013 .bash_logout

-rw-r--r--.  1 root root 176 12月 29 2013 .bash_profile

-rw-r--r--.  1 root root 176 12月 29 2013 .bashrc

-rw-r--r--.  1 root root 100 12月 29 2013 .cshrc

drwxr-xr-x.  2 root root  32 4月   2 14:00 dir

-rw-r--r--.  1 root root 129 12月 29 2013 .tcshrc

-rw-r--r--.  1 root root   0 4月   2 14:00 test.txt
  1. 第一列共10位,第1位表示文档类型,d表示目录,-表示文件,l表示链接文件,d表示可随机存取的设备,如U盘等,c表示一次性读取设备,如鼠标、键盘等。后9位,依次对应三种身份所拥有的权限,身份顺序为:owner、group、others,权限顺序为:readable、writable、excutable。如:-r-xr-x---的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可写,其他人没有任何权限
  2. 第二列表示链接数,表示有多少个文件链接到inode号码。
  3. 第三列表示拥有者
  4. 第四列表示所属群组
  5. 第五列表示文档容量大小,单位字节
  6. 第六列表示文档最后修改时间(atime),注意不是文档的创建时间哦
  7. 第七列表示文档名称。以点(.)开头的是隐藏文档

查看系统别名

[root@server1 selinux]# alias 
alias cman='man -M /usr/share/man/zh_CN'
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost ~]# type -a cp
cp 是 `cp -i' 的别名
cp 是 /usr/bin/cp
  • 修改别名,比如使用wl来查看IP地址相关信息
[root@localhost ~]# alias wl='ip address'
[root@localhost ~]# wl
  • 为了让别名永久生效,可以讲修改别名的命令写入bashrc文件,这个文件中的命令会在每次登陆命令行的时候执行
[root@localhost ~]# echo "alias wl='ip address'" >> /etc/bashrc

history

选项

  • -c:将目前shell中的所有history命令消除
  • -a:将目前新增的命令写入histfiles, 默认写入~/.bash_history
  • -w:将目前history记忆的内容写入到histfiles
[root@localhost ~]# history -w histfiles.txt

安装中文man手册

yum -y install man-pages-zh-CN.noarch
echo "alias cman='man -M /usr/share/man/zh_CN'" >> .bashrc
source .bashrc

touch(创建新文件)

mkdir (创建新目录)

选项

  • -m:配置文件的权限喔,直接配置,不需要看默认权限 (umask)
  • -p:帮助你直接将所需要的目录(包含上一级目录)递归创建起来
  • -v:显示目录创建的过程

cp (复制文件或目录)

  • -a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
  • -r:递归持续复制,用於目录的复制行为;(常用)
  • -v:显示复制的详细过程
[root@localhost ~]# cp -v install.log /home/dir1
# 复制文件到目录下
[root@localhost ~]# cp -v install.log /home/dir1/abc.txt
# 复制文件到目录下,并且重命名为abc.txt
[root@localhost ~]# cp -rv /etc /home/dir1
# 复制目录
[root@localhost ~]# cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/passwd /etc/hostname /home/dir2
# 将多个文件复制到同一个目录
[root@localhost ~]# cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/passwd /etc/hostname .
# 将多个文件复制到当前目录
[root@localhost ~]# cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak
[root@localhost ~]# cp -rv /etc/sysconfig/network-scripts/{ifcfg-ens33,ifcfg-ens33.bak}
[root@localhost ~]# cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33{,.bak}
# 备份配置文件

mv(移动文件与目录,或修改名称)

  • -f:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
  • -i:若目标文件 (destination) 已经存在时,就会询问是否覆盖!
  • -u:若目标文件已经存在,且 source 比较新,才会升级 (update)
  • -v:显示复制的详细过程

rm (移除文件或目录)

选项

  • -f:就是 force 的意思,忽略不存在的文件,不会出现警告信息;
  • -i:互动模式,在删除前会询问使用者是否动作
  • -r:递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

文本文件查看

cat

cat -n #显示行号

less

可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页

head

查看文件的开头部分的内容

  • 查看文件的前6行
[root@localhost ~]# head -n 6 anaconda-ks.cfg

tail

会把文本文件里的最尾部的内容显示在屏幕上

实例

  • 查看文件anaconda-ks.cfg尾部的3行
[root@localhost ~]# tail -n 3 anaconda-ks.cfg
  • 查看日志的实时更新情况
[root@localhost ~]# tail -f /var/log/messages 
  • 查看文件anaconda-ks.cfg从第10行到结尾
[root@localhost ~]# tail -n +10 anaconda-ks.cfg

grep

针对文件内容进行过滤

实例

[root@xwz ~]# grep 'root' /etc/passwd
# 在/etc/passwd的文件中找出有root的行
[root@xwz ~]# grep '^root' /etc/passwd
# 在/etc/passwd中找出root开头的行
[root@xwz ~]# grep 'bash$' /etc/passwd
# 在/etc/passwd中找出bash结尾的行

文件

更改系统语言

[root@localhost ~]# export LANG="en_US.UTF-8"
# 改回中文是LANG="zh_CN.UTF-8"

文件时间

[root@localhost ~]# stat anaconda-ks.cfg 
  File: ‘anaconda-ks.cfg’
  Size: 1241        Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 33574979    Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:admin_home_t:s0
Access: 2021-04-04 17:54:09.700844151 +0800
Modify: 2021-04-04 16:53:30.524854041 +0800
Change: 2021-04-04 16:53:30.524854041 +0800
 Birth: -
  • Access:访问时间,也叫atime
    • 当文件被访问的时候,这个时间就会发生改变
    • Linux文件运行的时候查看文件又频繁数量又大,如果每次atime发生变化的时候都记入硬盘,或造成很大的压力。RHEL6开始relatime,atime延迟修改,必须满足其中一个条件:
      • 自上次atime修改后,已达到86400秒
      • 发生写操作时
  • Modify:修改时间,也叫mtime
    • 当文件内容发生变化的时候,这个时间就会发生改变
  • Change:改变时间,也叫ctime
    • 当文件状态被改变的时候,这个时间就会发生修改

文件类型

方法一:ls

  • -普通文件(文本文档,二进制文件,压缩文件,电影,图片。。。)
  • d目录文件(蓝色)
  • b块设备文件(块设备)存储设备硬盘,U盘 /dev/sda,/dev/sda1
  • c字符设备文件(字符设备)打印机,终端 /dev/tty1,/dev/zero
  • s套接字文件
  • p管道文件
  • l链接文件(淡蓝色)

方法二:file

方法三:stat

文件查找

which

用于查找文件

which指令会在环境变量$PATH设置的目录里查找符合条件的文件

[root@server1 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

实例

  • 查看ls命令的可执行文件在什么目录
[root@localhost ~]# which ls
alias ls='ls --color=auto'
    /usr/bin/ls
# which会先告诉你ls其实是一个别名
# 然后显示出来ls所在的具体位置
  • 查看poweroff在什么目录
[root@localhost ~]# which poweroff
/usr/sbin/poweroff

locate

用于查找符合条件的文件,他会去保存文件和目录名称的数据库内,查找合乎范本样式条件的文件或目录

在centos7的最小化安装中,并没有自带locate命令,我们需要输入如下命令进行安装。

  • 手动更新,输入updatedb
  • 默认情况下,updatedb会每天自动执行一次
[root@localhost ~]# yum -y install mlocate
  • 查找ens33网卡配置文件所在的位置
[root@server1 mlocate]# updatedb
[root@server1 mlocate]# locate -r ens33$
/etc/sysconfig/network-scripts/ifcfg-ens33
/home/dir2/ifcfg-ens33
/root/ifcfg-ens33

find

实时查找工具,通过遍历指定路径下的文件系统完成文件查找

查找条件

  • 根据文件名查找
[root@localhost ~]# find /etc -name "ifcfg-ens33"
[root@localhost ~]# find /etc -iname "ifcfg-ens33"    # 忽略大小写
[root@localhost ~]# find /etc -iname "ifcfg*"
  • 按文件大小
[root@localhost ~]# find /etc -size +5M    # 大于5M
[root@localhost ~]# find /etc -size 5M    # 等于5M
[root@localhost ~]# find /etc -size -5M    # 小于5M
  • 指定查找的目录深度
[root@localhost ~]# find / -maxdepth 3 -a -name "ifcfg-ens33"    # 最大查找深度
# -a是同时满足,-o是或
[root@localhost ~]# find / -mindepth 3 -a -name "ifcfg-ens33"    # 最小查找深度
  • 按时间找
[root@localhost ~]# find /etc -mtime +5        # 修改时间超过5天
[root@localhost ~]# find /etc -mtime 5        # 修改时间等于5天
[root@localhost ~]# find /etc -mtime -5        # 修改时间5天以内
  • 按照文件属主、属组找,文件的属主和属组,会在下一篇详细讲解。
[root@localhost ~]# find /home -user xwz    # 属主是xwz的文件
[root@localhost ~]# find /home -group xwz
[root@localhost ~]# find /home -user xwz -group xwz
[root@localhost ~]# find /home -user xwz -a -group root
[root@localhost ~]# find /home -user xwz -o -group root
[root@localhost ~]# find /home -nouser        # 没有属主的文件
[root@localhost ~]# find /home -nogroup        # 没有属组的文件
  • 按文件类型
[root@localhost ~]# find /dev -type d
  • 按文件权限,文件权限会在下一篇详细讲解
[root@localhost ~]# find / -perm 644 -ls
[root@localhost ~]# find / -perm -644 -ls    # 权限小于644的
[root@localhost ~]# find / -perm 4000 -ls
[root@localhost ~]# find / -perm -4000 -ls
  • 按正则表达式
[root@localhost ~]# find /etc -regex '.*ifcfg-ens[0-9][0-9]'
# .*    任意多个字符
# [0-9]    任意一个数字
  • 条件组合
    • -a:多个条件and并列
    • -o:多个条件or并列
    • -not:条件取反

处理动作

  • ‐print:默认的处理动作,显示至屏幕
  • ‐ls:类型于对查找到的文件执行ls ‐l命令
  • ‐delete:删除查找到的文件
  • ‐fls /path/to/somefile:查找到的所有文件的长格式信息保存至指定文件中
  • ‐ok COMMAND {}:对查找到的每个文件执行由COMMAND指定的命令,需要确认
  • **‐exec COMMAND {} **:对查找到的每个文件执行由COMMAND指定的命令,不需要确认
  • {}:用于引用查找到的文件名称自身

实例

  • 查找/var目录下属主为root,且属组为mail的所有文件或目录
[root@localhost ~]# find /var ‐user root ‐group mail
  • 查找/usr目录下不属于root,bin或Hadoop的所有文件或目录
[root@localhost ~]# find /usr ‐not ‐user root ‐a ‐not ‐user bin ‐a ‐not ‐user centos
[root@localhost ~]# find /usr ‐not \(‐user root ‐o ‐user bin ‐o ‐user hadoop\)
  • 查找/etc目录下最近一周内容曾被修改过的文件或目录
[root@localhost ~]# find /etc/ ‐mtime ‐7
  • 查找当前系统上没有属主或属组,且最近一周内曾被访问过的文件或目录
[root@localhost ~]# find / \(‐nouser ‐o ‐nogroup\) ‐a ‐atime ‐7
  • 查找/etc目录下大于1M且类型为普通文件的所有文件或目录
[root@localhost ~]# find /etc ‐size +1M ‐type f
  • 查找/etc目录下所有用户都没有写权限的文件
[root@localhost ~]# find /etc ‐not ‐perm /222
  • 查找/etc目录下至少一类用户没有执行权限的文件
[root@localhost ~]# find /etc ‐not ‐perm ‐111
  • 查找/etc/init.d目录下,所有用户都执行权限,且其它用户写权限的文件
[root@localhost ~]#find /etc/init.d ‐perm ‐113

tar 命令

-x 从压缩的文件中提取文件

-v 显示操作过程

-f 指定压缩文件

  • 常见解压/压缩命令
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName

(注:tar是打包,不是压缩!)

.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName

.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName

.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知

.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
.Z
解压:uncompress FileName.Z
压缩:compress FileName

.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName

.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值