
1、基本命令
shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3)shutdown -h hours:minutes &按预定时间关闭系统shutdown-c 取消按预定时间关闭系统shutdown -r now 重启(1)reboot 重启(2)logout 注销
2、关机
shutdown -h now #关闭系统 init 0 #关闭系统 telinit 0 #关闭系统 shutdown -h hours:minutes & #按预定时间关闭系统 shutdown -c #取消按预定时间关闭系统 shutdown -r now #重启 reboot #重启 logout #注销
3、文件和目录
cd /home # 进入 '/home' 目录
cd .. # 返回上一级目录
cd ../.. # 返回上两级目录
cd # 进入个人的主目录
cd ~user1 # 进入 user1 的主目录
cd - # 返回上次所在的目录
pwd # 显示工作路径
ls # 查看目录中的文件
ls -F # 查看目录中的文件
ls -l # 显示文件和目录的详细资料
ls -a # 显示隐藏文件
ls *[0-9]* # 显示包含数字的文件名和目录名
tree # 显示文件和目录由根目录开始的树形结构(1)
lstree # 显示文件和目录由根目录开始的树形结构(2)
mkdir dir1 # 创建一个叫做 'dir1' 的目录
mkdir dir1 dir2 # 同时创建两个目录
mkdir -p /tmp/dir1/dir2 # 创建一个目录树
rm -f file1 # 删除一个叫做 'file1' 的文件
rmdir dir1 # 删除一个叫做 'dir1' 的目录
rm -rf dir1 # 删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 # 同时删除两个目录及它们的内容
mv dir1 new_dir # 重命名/移动 一个目录
cp file1 file2 # 复制一个文件
cp dir/* . # 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . # 复制一个目录到当前工作目录
cp -a dir1 dir2 # 复制一个目录
ln -s file1 lnk1 # 创建一个指向文件或目录的软链接
ln file1 lnk1 # 创建一个指向文件或目录的物理链接
touch -t 0712250000 file1 # 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
file file1 # outputs the mime type of the file as text
iconv -l # 列出已知的编码
iconv -f fromEncoding -t toEncoding inputFile > outputFile # 假设输入文件采用 fromEncoding 编码,将其转换为 toEncoding 编码并生成新文件
find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" ; # 批量调整当前目录中的文件大小,并将其发送到缩略图目录(需要 ImageMagick 的 convert 工具)4、文件搜索
find / -name file1 # 从 '/' 开始进入根文件系统搜索文件和目录
find / -user user1 # 搜索属于用户 'user1' 的文件和目录
find /home/user1 -name \*.bin # 在目录 '/home/user1' 中搜索带有'.bin' 结尾的文件
find /usr/bin -type f -atime +100 # 搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 # 搜索在10天内被创建或者修改过的文件
find / -name \*.rpm -exec chmod 755 '{}' \; # 搜索以 '.rpm' 结尾的文件并定义其权限为755
find / -xdev -name \*.rpm # 搜索以 '.rpm' 结尾的文件,忽略光驱、U盘等可移动设备
locate \*.ps # 寻找以 '.ps' 结尾的文件 - 需先运行 'updatedb' 命令更新索引
whereis halt # 显示halt命令对应的二进制文件、源码或man手册的位置
which halt # 显示halt二进制文件或可执行文件的完整路径5、挂载一个文件系统
mount /dev/hda2 /mnt/hda2 # 挂载hda2盘 - 需确保'/mnt/hda2'目录已存在 umount /dev/hda2 # 卸载hda2盘 - 需先从'/mnt/hda2'挂载点退出 fuser -km /mnt/hda2 # 当设备繁忙时强制卸载 umount -n /mnt/hda2 # 运行卸载操作而不写入/etc/mtab文件 - 适用于文件只读或磁盘写满的情况 mount /dev/fd0 /mnt/floppy # 挂载软盘 mount /dev/cdrom /mnt/cdrom # 挂载cdrom或dvdrom mount /dev/hdc /mnt/cdrecorder # 挂载cdrw或dvdrom mount /dev/hdb /mnt/cdrecorder # 挂载cdrw或dvdrom mount -o loop file.iso /mnt/cdrom # 挂载ISO镜像文件 mount -t vfat /dev/hda5 /mnt/hda5 # 挂载Windows FAT32文件系统 mount /dev/sda1 /mnt/usbdisk # 挂载USB设备(如U盘、移动硬盘) mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share # 挂载Windows网络共享
6、磁盘空间
df -h # 显示已经挂载的分区列表(以人类可读的格式)
ls -lSr | more # 以尺寸大小升序排列文件和目录,并分页显示
du -sh dir1 # 估算目录 'dir1' 已经使用的磁盘空间(以人类可读的格式)
du -sk * | sort -rn # 以容量大小为依据降序显示当前目录下所有文件和目录的大小(单位:KB)
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n # 以大小为依据升序显示已安装的rpm包所使用的空间(适用于fedora、redhat类系统)
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n # 以大小为依据升序显示已安装的deb包所使用的空间(适用于ubuntu、debian类系统)7、用户和群组
groupadd group_name # 创建一个新用户组 groupdel group_name # 删除一个用户组 groupmod -n new_group_name old_group_name # 重命名一个用户组 useradd -c "Name Surname" -g admin -d /home/user1 -s /bin/bash user1 # 创建一个属于"admin"用户组的用户,指定家目录和默认shell useradd user1 # 创建一个新用户(使用默认配置) userdel -r user1 # 删除一个用户('-r'表示同时删除主目录) usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 # 修改用户属性(注释、所属组、家目录、登录shell) passwd # 修改当前用户的口令 passwd user1 # 修改指定用户的口令(仅root可执行) chage -E 2005-12-31 user1 # 设置用户口令的失效期限 pwck # 检查'/etc/passwd'文件的格式和语法,并修正错误及检查存在的用户 grpck # 检查'/etc/group'文件的格式和语法,并修正错误及检查存在的群组 newgrp group_name # 登录到一个新的群组,以改变新创建文件的预设群组
8、文件的权限
ls -lh # 显示文件和目录的权限及详细信息(人类可读格式) ls /tmp | pr -T5 -W$COLUMNS # 将终端划分成5栏显示/tmp目录内容 # 权限设置基础操作 chmod ugo+rwx directory1 # 设置目录的所有人(u)、群组(g)及其他人(o)拥有读(r)、写(w)和执行(x)权限 chmod go-rwx directory1 # 删除群组(g)与其他人(o)对目录的读写执行权限 chmod +x 文件路径 # 为所有者、所属组和其他用户添加执行权限 chmod -x 文件路径 # 为所有者、所属组和其他用户删除执行权限 # 针对特定用户的权限操作 chmod u+x 文件路径 # 为所有者添加执行权限 chmod g+x 文件路径 # 为所属组添加执行权限 chmod o+x 文件路径 # 为其他用户添加执行权限 chmod ug+x 文件路径 # 为所有者、所属组添加执行权限 chmod =wx 文件路径 # 为所有用户添加写、执行权限,取消读权限 chmod ug=wx 文件路径 # 为所有者、所属组添加写、执行权限,取消读权限 # 所有者与群组属性修改 chown user1 file1 # 改变一个文件的所有人属性 chown -R user1 directory1 # 递归改变目录及其中所有文件的所有人属性 chgrp group1 file1 # 改变文件的群组属性 chown user1:group1 file1 # 同时改变文件的所有人和群组属性 # SUID/SGID/STICKY位管理 find / -perm -u+s # 罗列系统中所有使用了SUID控制的文件 chmod u+s /bin/file1 # 设置二进制文件的SUID位(运行用户获得所有者权限) chmod u-s /bin/file1 # 禁用二进制文件的SUID位 chmod g+s /home/public # 设置目录的SGID位(类似SUID,针对目录) chmod g-s /home/public # 禁用目录的SGID位 chmod o+t /home/public # 设置目录的STICKY位(仅所有者可删除文件) chmod o-t /home/public # 禁用目录的STICKY位
9、文件的特殊属性
使用 “+” 设置权限,使用 “-” 用于取消
chattr +a file1 # 只允许以追加方式读写文件 chattr +c file1 # 允许这个文件能被内核自动压缩/解压 chattr +d file1 # 在进行文件系统备份时,dump程序将忽略这个文件 chattr +i file1 # 设置成不可变的文件,不能被删除、修改、重命名或者链接 chattr +s file1 # 允许一个文件被安全地删除 chattr +S file1 # 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘 chattr +u file1 # 若文件被删除,系统会允许你在以后恢复这个被删除的文件 lsattr # 显示文件的特殊属性
10、打包和压缩文件
(Fedora, Redhat及类似系统
## 一、RPM包安装与更新 rpm -ivh package.rpm # 安装一个rpm包 rpm -ivh --nodeeps package.rpm # 安装一个rpm包并忽略依赖关系警告 rpm -U package.rpm # 更新一个rpm包(不改变配置文件) rpm -F package.rpm # 更新一个确定已安装的rpm包 ## 二、RPM包查询 rpm -qa # 显示系统中所有已安装的rpm包 rpm -qa | grep httpd # 显示所有名称包含"httpd"的rpm包 rpm -qi package_name # 获取已安装包的详细信息 rpm -qg "System Environment/Daemons" # 显示指定组件的rpm包 rpm -ql package_name # 显示已安装rpm包提供的文件列表 rpm -qc package_name # 显示已安装rpm包提供的配置文件列表 rpm -q package_name --whatrequires # 显示与指定rpm包存在依赖关系的列表 rpm -q package_name --whatprovides # 显示指定rpm包提供的依赖 rpm -q package_name --scripts # 显示安装/删除期间执行的脚本 rpm -q package_name --changelog # 显示rpm包的修改历史 rpm -qf /etc/httpd/conf/httpd.conf # 确认指定文件由哪个rpm包提供 rpm -qp package.rpm -l # 显示尚未安装的rpm包提供的文件列表 ## 三、RPM包验证与签名 rpm --import /media/cdrom/RPM-GPG-KEY # 导入公钥数字证书 rpm --checksig package.rpm # 确认rpm包的完整性 rpm -qa gpg-pubkey # 确认已安装的所有rpm包的完整性 rpm -V package_name # 检查文件尺寸、许可、类型、所有者等属性 rpm -Va # 检查系统中所有已安装的rpm包(谨慎使用) rpm -Vp package.rpm # 确认rpm包尚未安装 ## 四、RPM包卸载与高级操作 rpm -e package_name.rpm # 删除一个rpm包 rpm2cpio package.rpm | cpio --extract --make-directories *bin* # 从rpm包提取可执行文件 rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm # 从源码安装构建好的rpm包 rpmbuild --rebuild package_name.src.rpm # 从rpm源码构建rpm包
12、YUM 软件包升级器
(Fedora, RedHat及类似系统)
yum install package_name # 下载并安装一个rpm包 yum localinstall package_name.rpm # 安装本地rpm包,通过软件仓库解决依赖关系 yum update # 更新当前系统中所有安装的rpm包 yum update package_name # 更新指定的一个rpm包 yum remove package_name # 删除一个rpm包 yum list # 列出当前系统中安装的所有包 yum search package_name # 在rpm仓库中搜寻软件包 yum clean packages # 清理rpm缓存,删除下载的包 yum clean headers # 删除所有头文件 yum clean all # 删除所有缓存的包和头文件
13、DEB 包
(Debian, Ubuntu 以及类似系统)
## 一、DEB包管理命令(dpkg) dpkg -i package.deb # 安装/更新一个deb包 dpkg -r package_name # 从系统删除一个deb包 dpkg -l # 显示系统中所有已经安装的deb包 dpkg -l | grep httpd # 显示所有名称中包含"httpd"字样的deb包 dpkg -s package_name # 获得已安装的特定包的详细信息 dpkg -L package_name # 显示已安装的deb包提供的文件列表 dpkg --contents package.deb # 显示尚未安装的deb包提供的文件列表 dpkg -S /bin/ping # 确认指定文件由哪个deb包提供 ## 二、APT软件工具命令(Debian、Ubuntu及类似系统) apt-get install package_name # 安装/更新一个deb包 apt-cdrom install package_name # 从光盘安装/更新一个deb包 apt-get update # 升级软件包列表 apt-get upgrade # 升级所有已安装的软件 apt-get remove package_name # 从系统删除一个deb包 apt-get check # 确认依赖的软件仓库正确 apt-get clean # 清理下载的软件包缓存 apt-cache search searched-package # 搜索名称包含指定字符串的软件包
14、查看文件内容
cat file1 # 从第一个字节开始正向查看文件的内容 tac file1 # 从最后一行开始反向查看一个文件的内容 more file1 # 分页查看一个长文件的内容(仅正向浏览) less file1 # 类似'more'命令,但支持正向和反向浏览文件内容 head -2 file1 # 查看一个文件的前两行 tail -2 file1 # 查看一个文件的最后两行 tail -f /var/log/messages # 实时查看文件新增内容(常用于日志监控)
15、文本处理
## 一、基础文本重定向与合并(cat)
cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt # 文本处理通用语法,结合管道(PIPE)、标准输入(STDIN)和标准输出(STDOUT)
cat file1 | command(sed, grep, awk, etc...) > result.txt # 处理文件内容,将结果写入新文件(覆盖原有内容)
cat file1 | command(sed, grep, awk, etc...) >> result.txt # 处理文件内容,将结果追加到已有文件末尾
cat -n file1 # 显示文件内容并标注每一行的行数
## 二、文本搜索(grep)
grep Aug /var/log/messages # 在文件'/var/log/messages'中查找关键词"Aug"
grep ^Aug /var/log/messages # 在文件'/var/log/messages'中查找以"Aug"开头的行
grep [0-9] /var/log/messages # 筛选'/var/log/messages'中所有包含数字的行
grep Aug -R /var/log/* # 在目录'/var/log'及子目录中递归搜索字符串"Aug"
## 三、文本编辑(sed)
sed 's/stringa1/stringa2/g' example.txt # 将example.txt中的"string1"全局替换为"string2"
sed '/^$/d' example.txt # 从example.txt中删除所有空白行
sed '/ *#/d; /^$/d' example.txt # 从example.txt中删除所有注释行(#开头)和空白行
sed -e '1d' result.txt # 从文件中排除第一行
sed -n '/stringa1/p' example.txt # 只显示包含词汇"string1"的行
sed -e 's/ *$//' example.txt # 删除每一行末尾的空白字符
sed -e 's/stringa1//g' example.txt # 从文档中删除所有"string1",保留其他内容
sed -n '1,5p;5q' example.txt # 查看文件第1行到第5行的内容
sed -n '5p;5q' example.txt # 只查看文件第5行的内容
sed -e 's/00*/0/g' example.txt # 用单个"0"替换文件中的连续多个"0"
## 四、字符转换与字段提取(tr/awk)
echo 'esempio' | tr '[:lower:]' '[:upper:]' # 将字符串从小写转换为大写
cat example.txt | awk 'NR%2==1' # 删除example.txt中的所有偶数行(保留奇数行)
echo a b c | awk '{print $1}' # 提取一行中的第一栏(字段)
echo a b c | awk '{print $1,$3}' # 提取一行中的第一栏和第三栏(字段)
## 五、文件合并(paste)
paste file1 file2 # 按行合并两个文件的内容(左右对应)
paste -d '+' file1 file2 # 按行合并两个文件,字段间用"+"分隔
## 六、文本排序与去重(sort/uniq)
sort file1 file2 # 合并并排序两个文件的内容
sort file1 file2 | uniq # 取两个文件的并集(重复行只保留1份)
sort file1 file2 | uniq -u # 删除两个文件的交集,保留仅在单个文件中存在的行
sort file1 file2 | uniq -d # 取两个文件的交集(只保留同时存在于两个文件中的行)
## 七、文件内容比较(comm)
comm -1 file1 file2 # 比较两个文件,只删除file1独有的内容
comm -2 file1 file2 # 比较两个文件,只删除file2独有的内容
comm -3 file1 file2 # 比较两个文件,只删除两个文件共有的内容
16、字符设置和文件格式转换
dos2unix filedos.txt fileunix.txt #将一个文本文件的格式从MSDOS转换成UNIX unix2dos fileunix.txt filedos.txt #将一个文本文件的格式从UNIX转换成MSDOS recode ..HTML < page.txt > page.html #将一个文本文件转换成html recode -l | more #显示所有允许的转换格式
17、文件系统分析
一、磁盘坏块检查(badblocks) badblocks -v /dev/hda1 # 检查磁盘 hda1 上的坏磁块,-v 参数显示详细检查过程 二、文件系统完整性修复(fsck 系列) 1. 通用 /ext2 文件系统 fsck /dev/hda1 # 修复 / 检查 hda1 磁盘上 Linux 文件系统的完整性(自动识别文件系统类型) fsck.ext2 /dev/hda1 # 修复 / 检查 hda1 磁盘上 ext2 文件系统的完整性 e2fsck /dev/hda1 # 修复 / 检查 hda1 磁盘上 ext2 文件系统的完整性(ext2 专属修复工具) 2. ext3 文件系统 e2fsck -j /dev/hda1 # 修复 / 检查 hda1 磁盘上 ext3 文件系统的完整性(-j 识别 ext3 日志) fsck.ext3 /dev/hda1 # 修复 / 检查 hda1 磁盘上 ext3 文件系统的完整性 3. FAT/DOS 文件系统 fsck.vfat/dev/hda1 # 修复 / 检查 hda1 磁盘上 FAT 文件系统的完整性 fsck.msdos/dev/hda1 # 修复 / 检查 hda1 磁盘上 DOS 文件系统的完整性 dosfsck /dev/hda1 # 修复 / 检查 hda1 磁盘上 DOS 文件系统的完整性(DOS/FAT 专属修复工具)
18、初始化一个文件系统
mkfs /dev/hda1 #在hda1分区创建一个文件系统 mke2fs /dev/hda1 #在hda1分区创建一个linux ext2的文件系统 mke2fs -j /dev/hda1 #在hda1分区创建一个linux ext3(日志型)的文件系统 mkfs -t vfat 32 -F /dev/hda1 #创建一个 FAT32 文件系统 fdformat -n /dev/fd0 #格式化一个软盘 mkswap /dev/hda3 #创建一个swap文件系统
19、SWAP文件系统
mkswap /dev/hda3 #创建一个swap文件系统 swapon /dev/hda3 #启用一个新的swap文件系统 swapon /dev/hda2 /dev/hdb3 #启用两个swap分区
20、备份
### 一、目录备份命令 - dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' #目录的完整备份 - dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' #目录的交互式备份 - tar -Puf backup.tar /home/user 执行一次对 '/home/user' #目录的交互式备份操作 ### 二、备份还原命令 - restore -if /tmp/home0.bak 还原一个 #交互式备份 - dd if=/dev/fd0 of=/dev/hda bs=512 count=1 #从已经保存到软盘的备份中恢复 MBR内容 ### 三、磁盘与分区操作 - dd if=/dev/sda of=/tmp/file1 备份 #磁盘内容到一个文件 - dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' #通过ssh在 远程主机上执行一次备份本地磁盘的操作 - dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 #MBR (Master Boot Record)内容复制到软盘的动作 ### 四、目录与文件同步/复制 - rsync -rogpav --delete /home /tmp 同步两边的 #目录 - rsync -rogpav -e ssh --delete /home ip_address:/tmp #通过SSH通道 rsync - rsync -az -e ssh --delete ip_addr:/home/public /home/local #通过ssh和压缩将一个 远程目录同步到本地目录 - rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将 #本地目录同步到远程目录 - ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' #通过ssh在 远程目录中复制一个目录内容 - ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' #通过ssh在 #远程目录中复制一个本地目录 - tar cf - . | (cd /tmp/backup ; tar xf - ) #本地将一个 目录复制到另一个地方,保留原有权限及链接 - find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents #从一个目录查找并复制所有以 '.txt' 结尾的 文件到另一个目录 - find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 #查找所有以 '.log' 结尾的 文件并做成一个bzip包
21、光盘
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force # 清空可复写光盘的内容 mkisofs /dev/cdrom > cd.iso # 在磁盘上创建光盘的 ISO 镜像文件 mkisofs /dev/cdrom | gzip > cd_iso.gz # 在磁盘上创建光盘的压缩 ISO 镜像文件 mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd # 创建指定目录(data_cd)的 ISO 镜像文件 cdrecord -v dev=/dev/cdrom cd.iso # 刻录 ISO 镜像文件到光盘 gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - # 刻录压缩的 ISO 镜像文件到光盘 mount -o loop cd.iso/mnt/iso # 挂载 ISO 镜像文件到 /mnt/iso 目录 cd-paranoia -B # 从 CD 光盘中转录音轨到 WAV 文件 cd-paranoia -- "-3" # 从 CD 光盘中(带参数 - 3)转录音轨到 WAV 文件 cdrecord --scanbus # 扫描总线以识别 SCSI 通道(用于确认光盘设备) dd if=/dev/hdc | md5sum # 校验设备(如 CD 光盘 /dev/hdc)的 MD5SUM 编码
22、网络
ifconfig eth0 # 显示以太网卡 eth0 的配置信息 ifup eth0 # 启用网络设备 eth0 ifdown eth0 # 禁用网络设备 eth0 ifconfig eth0 192.168.1.1 netmask 255.255.255.0 # 为 eth0 配置 IP 地址(192.168.1.1)和子网掩码(255.255.255.0) ifconfig eth0 promisc # 将 eth0 设置为混杂模式(用于数据包嗅探) dhclient eth0 # 以 DHCP 模式启用 eth0(自动获取 IP 地址) route -n # 显示路由表 route add -net 0/0 gw IP_Gateway # 配置默认网关(将 IP_Gateway 替换为实际网关 IP) route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 # 配置静态路由(访问 192.168.0.0/16 网段时,通过网关 192.168.1.1 转发) route del 0/0 gw IP_Gateway # 删除默认静态路由(将 IP_Gateway 替换为实际网关 IP) echo "1" > /proc/sys/net/ipv4/ip_forward # 启用 IP 路由转发功能 hostname # 显示系统主机名 host www.example.com # 解析主机名(将www.example.com转换为 IP 地址,或反向解析 IP 为域名) nslookup www.example.com # 解析主机名(将www.example.com转换为 IP 地址,或反向解析 IP 为域名) ip link show # 显示所有网络接口的链路状态 mii-tool eth0 # 显示网络设备 eth0 的链路状态 ethtool eth0 # 显示网卡 eth0 的统计信息 netstat -tup # 显示所有活跃的网络连接及其对应的进程 PID netstat -tupl # 显示系统上所有监听的网络服务及其对应的进程 PID tcpdump tcp port 80 # 抓取所有 TCP 80 端口的网络流量(即 HTTP 流量) iwlist scan # 扫描周围可用的无线网络 iwconfig eth1 # 显示无线网卡 eth1 的配置信息 whois www.example.com # 在 Whois 数据库中查询域名www.example.com的注册信息
23、列出目录内容
ls -a # 显示当前目录下所有文件(包括以。开头的隐藏文件) ls -l # 以长格式显示当前目录下文件的详细信息(含权限、大小、修改时间等) ls -R # 递归显示当前目录及其所有子目录下的文件结构 ls -ld # 仅显示目录本身或链接文件的详细信息(不展示目录内内容) ctrl+r # 快捷键:在命令历史记录中搜索命令(输入命令中任意字符即可匹配) pwd # 显示当前所在的工作目录路径 (补充说明)# Linux 系统中,以英文句号 “.” 开头的文件或目录为隐藏文件 / 目录
24、查看文件的类型
file:查看文件的类型
25、复制文件目录等操作
- cp 源文件(文件夹)目标文件(文件夹) # 复制文件和目录 - cp -r 源文件夹 目标文件夹 # 递归复制整个目录树(复制文件夹必须使用) - cp -v 源文件 目标文件 # 复制文件时显示详细信息 - touch 文件名 # 当文件不存在时创建文件;当文件存在时修改其创建时间(生成空文件或修改文件的存取/修改时间记录值) - touch * # 将当前目录下所有文件的时间修改为系统当前时间 - touch -d 20040210 test # 将test文件的日期改为2004年2月10日 - touch abc # 若abc文件存在,则修改为系统当前时间;若不存在,则生成一个当前时间的空文件 - mv 文件 目标目录 # 移动文件到目标目录 - mv a.txt ../ # 将a.txt文件移动到上层目录 - mv a.txt b.txt # 将a.txt文件重命名为b.txt - mv dir2 ../ # 将dir2目录上移一层 - rm 文件名 # 删除文件 - rm -i 文件名 # 交互式删除文件(删除前会询问确认) - rm -r 文件夹名称 # 递归删除文件夹(空文件夹和非空文件夹都可删除) - mkdir 文件夹名称 # 创建文件夹 - rmdir 文件夹名称 # 删除文件夹(只能删除空文件夹) - mkdir -p dir1/dir2 # 连续创建多级目录(在当前目录下创建dir1,并在dir1下创建dir2) - rmdir -p dir1/dir2 # 删除dir1下的dir2目录,若dir1目录为空则一并删除 - rm * # 删除当前目录下的所有文件(不包括目录) - rm -f *.txt # 强制删除所有后缀名为txt的文件(不询问) - rm -i * # 删除当前目录下所有文件时逐一询问(遇到目录会自动略过) - rm -r test # 删除test目录及其包含的所有文件和子目录 - rm -r * # 删除当前目录下所有文件、所有子目录及子目录下的文件 - rm -rf test # 强行删除test目录及其内容,不进行询问 - grep 要找的字串 要寻找字串的源文件 # 在文件中搜索匹配的字符并输出结果 - grep linux test.txt # 在test.txt文件中搜索字符串"linux"并输出匹配内容 - ln 源文件或目录 目标文件或目录 # 在文件和目录之间建立链接(默认创建硬链接) - ln -s /usr/share/do doc # 创建软链接文件doc,指向目录/usr/share/do - ln /usr/share/test hard # 创建硬链接文件hard,指向文件/usr/share/test(增加一个指向该存储区域的文件)
26、系统常用命令
1、显示命令
date # 查看当前系统的时间(默认格式) date +% Y--% m--% d # 以 “年 -- 月 -- 日” 的格式显示当前系统时间 date -s 时间值 # 设置当前系统的时间(例如 “date -s 2024-10-16 14:30” 设置为 2024 年 10 月 16 日 14 点 30 分) hwclock # 显示硬件时钟时间(需管理员权限,也可使用 “clock” 命令,功能相同) cal # 显示当前月份的日历 cal 4 2004 # 显示 2004 年 4 月份的日历 cal -y 2003 # 显示 2003 年一整年的日历 uptime # 查看系统当前的运行时间(含开机时长、用户数、系统负载等信息)
2、输出查看命令
echo "liuyazhuang" >> liuyazhuang.txt # 将字符串 “liuyazhuang” 追加到 liuyazhuang.txt 文件末尾 echo 内容 # 显示输入的指定内容(如 “echo hello” 会输出 “hello”) cat test.txt # 显示 test.txt 文件的全部内容 cat test.txt | more # 逐页显示 test.txt 文件的内容(按空格翻页,按 Q 退出) cat test.txt >> test1.txt # 将 test.txt 的内容附加到 test1.txt 文件之后(不覆盖原内容) cat test.txt test2.txt > readme.txt # 将 test.txt 和 test2.txt 的内容合并,生成并写入 readme.txt 文件(覆盖原有内容) head 文件名 # 显示文件的前 10 行内容(默认显示 10 行) head -n 行数 文件名 # 显示文件的前指定行数内容(如 “head -5 test.txt” 显示 test.txt 前 5 行) tail /etc/passwd # 显示 /etc/passwd 文件的最后 10 行内容(默认显示 10 行) tail -n 行数 文件名 # 显示文件的最后指定行数内容(如 “tail -3 test.txt” 显示 test.txt 最后 3 行) tail -f 文件名 # 追踪显示文件的实时更新内容(常用于查看日志,命令持续运行,按 Ctrl+C 退出) tail -10 /etc/passwd # 显示 /etc/passwd 文件的倒数 10 行内容 tail +10 /etc/passwd # 显示 /etc/passwd 文件从第 10 行开始到末尾的所有内容 more 文件名 # 翻页显示文件内容(仅支持向下翻页,按空格翻页,按 Q 退出) ls -al | more # 以长格式显示当前目录下所有文件,内容按页展示(满页暂停,空格继续,Q 退出) less 文件名 # 翻页显示文件内容(支持上下键翻页,按 Q 退出) ls -al | less # 以长格式显示当前目录下所有文件,支持上下键滚动浏览(按 Q 退出)
3、查看硬件信息
lspci # 查看系统中所有 PCI 设备(如显卡、网卡、声卡等) lspci -v # 查看系统中所有 PCI 设备的详细信息(含设备型号、驱动等) lsusb # 查看系统中已连接的所有 USB 设备(如 U 盘、鼠标、键盘等) lsusb -v # 查看系统中已连接 USB 设备的详细信息(含设备 ID、厂商信息等) lsmod # 查看当前系统中已加载的内核模块(即已启用的硬件驱动程序)
4、归档、压缩
zip liuyazhuang.zip myfile # 将 myfile 文件压缩为 liuyazhuang.zip(格式:zip 压缩后的文件名 原文件) unzip liuyazhuang.zip # 解压 liuyazhuang.zip 压缩文件 gzip 文件名 # 压缩指定指定文件(压缩后原文件会被删除,生成.gz 后缀的压缩文件) tar -cvf out.tar liuyazhuang # 将文件 "liuyazhuang" 打包成归档文件 out.tar(-c:创建新归档;-v:显示过程;-f:指定文件名) tar -xvf liuyazhuang.tar # 释放 liuyazhuang.tar 归档文件(-x:解开归档) tar -cvzf backup.tar.gz/etc # 将 /etc 目录打包并通过 gzip 压缩为 backup.tar.gz(-z:调用 gzip 压缩) tar -cvf test.tar * # 将当前目录下所有文件打包成 test.tar(需手动添加.tar 扩展名) tar -zcvf test.tar.gz * # 将当前目录下所有文件打包并通过 gzip 压缩为 test.tar.gz tar -tf test.tar # 查看 test.tar 归档文件中包含的所有文件(-t:查看内容) tar -xvf test.tar # 解开 test.tar 归档文件 tar -zxvf foo.tar.gz # 解压并解开 foo.tar.gz 压缩归档文件 gzip test.txt # 压缩 test.txt 文件(无需额外参数,压缩后生成 test.txt.gz) gzip -l test.txt.gz # 显示 test.txt.gz 压缩文件的压缩率信息
6、查找
locate keyword # 快速查找名称包含 keyword 的文件或文件夹(需依赖预先建立的数据库)
updatedb # 手工建立或更新 locate 命令所需的数据库(默认每天自动更新)
find . -name liuyazhuang # 查找当前目录下名称中含有 "liuyazhuang" 的文件
find /-name *.conf # 查找根目录下(整个硬盘)所有后缀为.conf 的文件
find /-perm 777 # 查找系统中所有权限为 777 的文件
find /-type d # 返回根目录下所有的目录
find . -name "a*" -exec ls -l {} ; # 查找当前目录下名称以 "a" 开头的文件,并执行 ls -l 命令显示详细信息
find /-name httpd.conf # 搜索系统根目录下名为 httpd.conf 的文件
ctrl+c # 快捷键:终止当前正在执行的命令
who # 查看当前系统中登录的用户信息
w # 查看当前系统中登录的用户信息(比 who 更详细,包含用户活动)
dmesg # 显示系统诊断信息(包括操作系统版本、物理内存大小等)
df # 查看文件系统各分区的空间占用情况
du [参数] < 目录名 > # 查看指定目录中各级子目录所使用的硬盘空间
free # 查看系统内存及虚拟内存(交换空间)的大小和占用情况

