1.Linux命令大全25个英文命令详细讲解linux英文命令
2.Linux GCC常用命令详解
3.linux如何查看命令的用命源代源码
4.Linux日常维护常用命令集合整理
5.Linux系列教程(五)——Linux常用命令之链接命令和权限管理命令
6.linux虚拟机常用命令
Linux命令大全25个英文命令详细讲解linux英文命令
Linux是当今最受欢迎的操作系统之一,也是令源非常强大的操作系统。下面我们来介绍Linux命令大全:个英文命令详细讲解。码l命令码
1. pwd命令:pwd是用命源代print working directory的缩写,它的令源功能是用来显示当前的工作目录的路径。可以通过使用pwd命令来查看当前所在目录的码l命令码华为smsproxy源码绝对路径。
代码: $ pwd
2. ls命令:ls命令是用命源代用来显示当前目录下文件和目录的命令,它可以按照文件类型,令源修改日期,码l命令码文件大小等格式显示文件和目录的用命源代列表。
代码:$ ls -l
3. cd命令:cd是令源change directory的缩写,它的码l命令码功能是用来改变当前的工作目录,以及移动用户在终端的用命源代路径。
代码:$ cd ~/Documents
4. mkdir命令:mkdir命令用来创建新的令源文件夹,当创建新的码l命令码文件夹的时候,用户可以提供给它一个参数来指定文件夹的名称,以及创建文件夹的权限等信息。
代码:$ mkdir myfolder
5. chmod命令:chmod用来改变文件权限,它可以让用户指定文件的所有者,以及文件所有者可以对文件进行的操作,比如读取,写入,执行等。
代码:$ chmod myfolder
6. sort命令:sort命令用来将文本文件中的行重新排序,可以按照不同的方式进行排序,例如按照字母的顺序,按照数字的大小,按照指定的规则。
代码:$ sort -k2n filename
7. grep命令:grep命令可以通过指定字符串来搜索文本文件,并将符合的字符串打印出来,可以用它来搜索特定的字符串或者正则表达式。
代码:$ grep ‘test’ filename
8. cp命令:cp命令可以利用它来复制文件或者目录,也可以用来复制文件和目录,并且还可以改变复制之后文件或者目录的名称。
代码:$ cp filename1 filename2
9. mv命令:mv是move的缩写,可以利用它来移动文件和目录,也可以用来改变文件或者目录的名称。
代码:$ mv filename1 filename2
. rm命令:rm命令可以用来删除文件或者目录,如果想要永久删除文件,可以使用rm -rf命令来实现。
代码:$ rm -rf filename
. rmdir命令:rmdir可以用来删除空的目录,如果目录不为空,可以用rm -rf 命令来实现。
代码:$ rmdir myfolder
. cat命令:cat是concatenate的缩写,它可以用来查看文件的内容,或者将两个文件拼接成一个新的文件。
代码:$ cat filename1 filename2
. head命令:head可以用来查看文件的dha溯源码和没有溯源码的区别开头部分内容,可以通过参数指定要查看的行数。
代码:$ head -n 5 filename
. tail命令:tail可以用来查看文件的结尾部分内容,可以通过参数指定要查看的行数。
代码:$ tail -n 5 filename
这就是Linux命令大全:个英文命令的详细讲解,以上命令只是Linux系统中最常用的一部分命令,其实Linux系统还有很多其他功能强大的命令,在实际使用中,我们要多学习,多练习,在遇到问题的时候可以更快速地解决问题。
Linux GCC常用命令详解
Linux GCC常用命令详解1. 简介
GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GNU Compiler Collection 也即是 GNU 编译器家族的意思了。另一方面,说到 GCC 对于操作系统平台及硬件平台支持,概括起来就是一句话:无所不在。
2. 简单编译
示例程序如下:
//test.c #include int main(void) { printf("Hello World!\n"); return 0; }
这个程序,一步到位的编译指令是:
gcc test.c -o test
实质上,上述编译过程是分为四个阶段进行的,即预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编 (Assembly)和连接(Linking)。
2.1 预处理
gcc -E test.c -o test.i 或 gcc -E test.c
可以输出test.i文件中存放着test.c经预处理之后的代码。打开test.i文件,看一看,就明白了。后面那条指令,是直接在命令行窗口中输出预处理后的代码。
gcc的-E选项,可以让编译器在预处理后停止,并输出预处理结果。在本例中,预处理结果就是将stdio.h 文件中的内容插入到test.c中了。
2.2 编译为汇编代码(Compilation)
预处理之后,可直接对生成的test.i文件编译,生成汇编代码:
gcc -S test.i -o test.s
gcc的百姓网源码下载 源码下载-S选项,表示在程序编译期间,在生成汇编代码后,停止,-o输出汇编代码文件。
2.3 汇编(Assembly)
对于上一小节中生成的汇编代码文件test.s,gas汇编器负责将其编译为目标文件,如下:
gcc -c test.s -o test.o
2.4 连接(Linking)
gcc连接器是gas提供的,负责将程序的目标文件与所需的所有附加的目标文件连接起来,最终生成可执行文件。附加的目标文件包括静态连接库和动态连接库。
对于上一小节中生成的test.o,将其与C标准输入输出库进行连接,最终生成程序test
gcc test.o -o test
在命令行窗口中,执行./test, 让它说HelloWorld吧!
3. 多个程序文件的编译
通常整个程序是由多个源文件组成的,相应地也就形成了多个编译单元,使用GCC能够很好地管理这些编译单元。假设有一个由test1.c和 test2.c两个源文件组成的程序,为了对它们进行编译,并最终生成可执行程序test,可以使用下面这条命令:
gcc test1.c test2.c -o test
如果同时处理的文件不止一个,GCC仍然会按照预处理、编译和链接的过程依次进行。如果深究起来,上面这条命令大致相当于依次执行如下三条命令:
gcc -c test1.c -o test1.o gcc -c test2.c -o test2.o gcc test1.o test2.o -o test
4. 检错
gcc -pedantic illcode.c -o illcode
-pedantic编译选项并不能保证被编译程序与ANSI/ISO C标准的完全兼容,它仅仅只能用来帮助Linux程序员离这个目标越来越近。或者换句话说,-pedantic选项能够帮助程序员发现一些不符合 ANSI/ISO C标准的代码,但不是全部,事实上只有ANSI/ISO C语言标准中要求进行编译器诊断的那些情况,才有可能被GCC发现并提出警告。
除了-pedantic之外,GCC还有一些其它编译选项也能够产生有用的警告信息。这些选项大多以-W开头,其中最有价值的当数-Wall了,使用它能够使GCC产生尽可能多的警告信息。
gcc -Wall illcode.c -o illcode
GCC给出的警告信息虽然从严格意义上说不能算作错误,但却很可能成为错误的栖身之所。一个优秀的Linux程序员应该尽量避免产生警告信息,使自己的代码始终保持标准、健壮的特性。所以将警告信息当成编码错误来对待,是一种值得赞扬的行为!所以,在编译程序时带上-Werror选项,那么GCC会在所有产生警告的地方停止编译,迫使程序员对自己的代码进行修改,如下:
gcc -Werror test.c -o test
5. 库文件连接
开发软件时,编程什么是有源码什么是无源码完全不使用第三方函数库的情况是比较少见的,通常来讲都需要借助许多函数库的支持才能够完成相应的功能。从程序员的角度看,函数库实际上就是一些头文件(.h)和库文件(so、或lib、dll)的集合。。虽然Linux下的大多数函数都默认将头文件放到/usr/include/目录下,而库文件则放到/usr/lib/目录下;Windows所使用的库文件主要放在Visual Stido的目录下的include和lib,以及系统文件夹下。但也有的时候,我们要用的库不再这些目录下,所以GCC在编译时必须用自己的办法来查找所需要的头文件和库文件。
例如我们的程序test.c是在linux上使用c连接mysql,这个时候我们需要去mysql官网下载MySQL Connectors的C库,下载下来解压之后,有一个include文件夹,里面包含mysql connectors的头文件,还有一个lib文件夹,里面包含二进制so文件libmysqlclient.so
其中inclulde文件夹的路径是 /usr/dev/mysql/include ,lib文件夹是 /usr/dev/mysql/lib
5.1 编译成可执行文件
首先我们要进行编译test.c为目标文件,这个时候需要执行
gcc –c –I /usr/dev/mysql/include test.c –o test.o
5.2 链接
最后我们把所有目标文件链接成可执行文件:
gcc –L /usr/dev/mysql/lib –lmysqlclient test.o –o test
Linux下的库文件分为两大类分别是动态链接库(通常以.so结尾)和静态链接库(通常以.a结尾),二者的区别仅在于程序执行时所需的代码是在运行时动态加载的,还是在编译时静态加载的。
5.3 强制链接时使用静态链接库
默认情况下, GCC在链接时优先使用动态链接库,只有当动态链接库不存在时才考虑使用静态链接库,如果需要的话可以在编译时加上-static选项,强制使用静态链接库。
在/usr/dev/mysql/lib目录下有链接时所需要的库文件libmysqlclient.so和libmysqlclient.a,为了让GCC在链接时只用到静态链接库,可以使用下面的命令:
gcc –L /usr/dev/mysql/lib –static –lmysqlclient test.o –o test
静态库链接时搜索路径顺序:
1. ld会去找GCC命令中的参数-L
2. 再找gcc的环境变量LIBRARY_PATH
3. 再找内定目录 /lib /usr/lib /usr/local/lib 这是当初compile gcc时写在程序内的
动态链接时、执行时搜索路径顺序:
1. 编译目标代码时指定的动态库搜索路径
2. 环境变量LD_LIBRARY_PATH指定的动态库搜索路径
3. 配置文件/etc/ld.so.conf中指定的动态库搜索路径
4. 默认的动态库搜索路径/lib
5. 默认的动态库搜索路径/usr/lib
有关环境变量:
LIBRARY_PATH环境变量:指定程序静态链接库文件搜索路径
LD_LIBRARY_PATH环境变量:指定程序动态链接库文件搜索路径
linux如何查看命令的源码
linux 提供了多种方法来查看命令源码:使用 strace 命令跟踪系统调用,并从输出文件中找到包含 execve() 的行,显示可执行文件。使用 file 命令查看可执行文件的类型。使用 nm 和 objdump 命令列出符号和反汇编内容,但需具备更高级别的技术知识。
如何查看 Linux 命令的源码
Linux 系统提供了一种简单的方法来查看命令的源码。通常情况下,这些命令是使用 C 语言编写的,并存储在可执行文件中。
方法:
最常用的方法是使用 strace 命令,它可以跟踪程序执行时发出的系统调用。
步骤:
打开终端窗口。使用 strace 命令并指定要查看源码的命令,如下所示:
strace -e trace=file command/command
例如:
strace -e trace=file ls
strace 将输出有关命令执行的mysql源码的数据结构源码在哪里详细信息,包括调用的函数和打开的文件。使用文本编辑器(如 vi 或 nano)打开 strace 输出文件(默认情况下位于 /tmp/strace.out)。在输出文件中,找到包含 execve() 系统调用的行。此行将显示命令及其源码所在的可执行文件。使用 file 命令查看可执行文件的类型,如下所示:
file executable/executable
例如:
file /bin/ls
这将显示可执行文件的信息,包括其类型(如 ELF 文件)。
其他方法:
除了 strace 之外,还可以使用以下方法查看命令的源码:
nm:此命令列出可执行文件中的符号(函数和变量)。objdump:此命令以反汇编形式显示可执行文件的内容。
这些方法需要更高级别的技术知识,但可以提供有关命令实现更详细的信息。
Linux日常维护常用命令集合整理
网络命令:# ifconfig# 显示网络信息,包括IP地址、数据包接收/发送情况
# ifconfig eth0 up# 启动eth0
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 # 更改eth0配置文件
# iwconfig # 显示无线网络信息
# sudo /etc/init.d/network restart | start | stop# 重启网络|启动网络|停止网络
# service network start| service networking restart# 同上
# /etc/network/interfaces# 手动配置网络文件
# ifup interface# 启用网络接口
# ifdown interface# 禁用网络接口
# wget /xx.tar.gz # 下载
# route -n# 列举内核 IP 路由表,用来解决相关问题
# sudo dhclient# 从DHCP服务器上获取IP地址
# sudo dhclient -r# 从指定的网络接口获取IP 地址
# cat /etc/resolv.conf# 查看DNS 服务器
# iwlist scan# 显示区域内无线网络情况
# lshw -C network# 显示网卡和网络设备驱动信息(需以管理员权限运行)
其他常用命令:
# cat# 把档案串连接后传到基本输出(屏幕)
# more# 类似cat,会以一页一页的显示,space下一页,b上一页,h帮助
# grep# 查找文件里符合条件的字符串,若包含则显示那一列
# tar -zxpf xx.tar.gz# 解压缩
# hostname | cat /etc/sysconfig/network# 查看主机名
# lspci -nn# 以数字和硬件名称方式显示连接到PCI总线的PCI供应商和设备代码
# lsusb# 显示USB设备
# lshw -C usb# 显示USB相关的硬件上的附加信息(适用于USB加密狗)
# yum install XX# yum安装命令
# yum list installed | wc -l | rpm -qa# 查看所有安装的软件包
# chkconfig --list # 列出所有系统服务
# grep on# 列出所有启动的系统服务
# service XX(服务) restart | stop | start# 重启|停止|启动XX服务
# echo $LANG $LANGUAGE | cat /etc/sysconfig/in# 查看系统默认语言
硬盘挂载:
# mount -t 硬盘类型 硬盘 挂载点
(硬盘类型:FAT则是msdos,FAT则是vfat,NTFS则是ntfs)
# fdisk -l# 查看硬盘以及所有使用情况
# mkdir /mnt/win_disk# 在/mnt目录下建立挂载点
# mount -t ntfs /dev/sda6 /mnt/win_disk# 挂载sda6至/mnt/win_disk
# unmount /mnt/win_disk# 卸载硬盘
# mount -t iso /dev/cdrom /mnt/cdrom# 挂载光盘
# mount /dev/fd0 /mnt/floppy# 挂载软盘
常用命令归类:
系统
# uname -a | uname -r # 查看内核/操作系统/CPU信息
# lsb_release -a # 查看系统版本信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo | more /proc/cpuinfo | grep "model name" # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
# getconf LONG_BIT # 查看cpu位数( or )
# more /etc/redhat-release | cat /etc/redhat-release# 查看当前linux的版本信息
# passwd # 修改用户密码
# reboot | Ctrl+Alt+Del | init 6#重启
# shutdown -h now | halt | init 0#关机
资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh 目录名 # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
# pwd # 查看所在目录
# ls -l # 显示目录文件列表(-a:显示隐藏)
磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l | df -h # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
# cat /etc/sysconfig/network# 查看网关
# cat /etc/resolv.conf # 查看DNS
进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态
# ps -auxw # 列举当前进程ID
# kill XX进程ID # 终止单一进程
# killall 程序名 # 终止程序的所有进程
# xkill # 终止X-Window程序
用户
# w # 查看活动用户
# id 用户名 # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务
# startx # 启动X桌面
# switchdesk gnome|KDE|..# 切换桌面
服务
# chkconfig --list # 列出所有系统服务
# chkconfig --list | grep on # 列出所有启动的系统服务
程序
# rpm -qa | wc -l # 查看所有安装的软件包
# yum list installed # 同上
# cat -n /root/install.log# 查看系统安装时安装的软件包
# more /root/install.log # 同上
# /.configure # 配置
# make # 编译
# make install # 安装
1、--df –hP 不管文件系统的名字多长,就不折行的输出,这在写监控磁盘使用率的时候很有用
df –hP -P, --portability use the POSIX output format
2、--在/var/log/messages筛选昨天和今天的错误日志
cat /var/log/messages | grep -iE 'warning | panic | error | exception | fail' | grep "$(date | awk '{ print $2" "$3}')" $FILENAME
cat /var/log/messages | grep -iE 'warning | panic | error | exception | fail' | grep "$(date -d yesterday | awk '{ print $2" "$3}')" $FILENAME
3、-- sort根据字段来排序,-t 后跟分隔符,-k n(n代表数字)根据第几列来排序,-n 对字符串数字进行排序
sort -t ':' -k 3 -n /etc/passwd //对/etc/passwd文件的uid进行从小到大的排序,如下所示:
station.example.com# sort -n -t ":" -k 3 /etc/passwd | head -n 3
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:Daemon:/sbin:/bin/bash
4、--bc 数学运算
station.example.com# echo "scale=3;1/5" | bc //精确到小数点几位,需要加scale,scale默认值为0
.
station.example.com# echo "1.2*8" | bc
9.6
[root@station ~]# bc -q //-q --quiet don't print initial banner
3*4
3/4
0
scale=5
3/4
.
[root@station ~]# var1=2
[root@station ~]# echo "scale=5;$var1/3" | bc //bc支持变量
.
[root@station ~]# var1=3
[root@station ~]# var2=$(echo "scale=3;$var1/3" | bc)
[root@station ~]# echo $var2
1.
5、--取出第二行第2列的数据 NR取出第几行的数据
oracle@Station.example.com/ cat 1.txt
1 4
2 5
3 6
oracle@Station.example.com/ awk 'NR==2 { print $2}' 1.txt
5
每隔2s执行一次df –h
watch –n 2 “df –h”
ls –ltrh 人性化的显示输出
rm *删除文件报错,可通过如下方式删除文件
find ./ -type f /tmp/.txt
for a in $(cat /tmp/.txt);do rm $a;done
tar命令中,参数—files-from很好用,如:
解压tar中特定几个文件,同时使用-C指定解压路径,--files-from后面的文件.txt存放要解压的文件名,可进行模糊匹配
tar -zxvf xxxxx.tar.gz -C xxxx/ --files-from .txt
在进行压缩文件的时候,--files-from也是很好用的,如:
对当前路径下的文件保留十天十天,其他的进行删除操作
find ./ -type f –name “emcm*” –mtime + /tmp/.txt
tar –zcvpf xxxxx.tar.gz –files-from /tmp/.txt
for a in $(cat /tmp/.txt);do rm $a;done
5、split分割文件和合成文件
split -b m xxx.tar.gz xxx.tar.gz_
因网络原因,将导出文件分割为M,在您下载了所有文件后,执行如下命令进行合成文件:
cat xxx.tar.gz_aa xxx.tar.gz_ab xxx.tar.gz_ac xxx.tar.gz_ad xxx.tar.gz
若您需要在windows上合成,如您下载文件到d盘,执行如下命令:
C:/Users/Administratord:
d:/copy /b "xxx.tar.gz_aa"+"xxx.tar.gz_ab"+"xxx.tar.gz_ac"+"xxx.tar.gz_ad" xxx.tar.gz
6、查看进程打开了多少个文件句柄,取前3
[root@squid ~]# lsof -n | awk '{ print $2}' | sort| uniq -c | sort -nr | head -n 3
7、批量更改操作系统用户密码
chpasswd 1.txt
cat 1.txt
test1:$%uKRe
test2:$#rK8e
test3:#rH9e3R
8、当时同事正在做一些操作,可能导致存储有问题,只要能在存储上创建文件,则说明存储还是OK的,这时候的工作就是时不时的去多台服务器上去创建文件,简单重复但很累,就写下面的脚本代替:
脚本作用:若不能创建文件则发出响声报警echo $'/a'
#!/bin/bash
for i in { 1..}
do
sleep 3
echo "xxxxxxxxxxxxxxxxxxxxx" lhf_$i.txt
if [ $? -eq 0 ];then
echo "ok"
else
echo "failure"
echo $'/a'
fi
done
9、tac 倒着看文本,如要看最新的message日志就挺方便的
tac /var/log/message | less
、grep 参数-A,-B,-C
-A 1 取当前行和所筛选值的后一行
-B 1 取当前行和所筛选值的前一行
-C 1 取当前行和所筛选值的上下行
station.example.com:~/ # cat grep.txt
1
2
3
4
5
6
station.example.com:~/ # cat grep.txt | grep -B 1 4 //取当前行和所筛选值的前一行
3
4
station.example.com:~/ # cat grep.txt | grep -A 1 4 //取当前行和所筛选值的后一行
4
5
station.example.com:~/ # cat grep.txt | grep -C 1 4 //取当前行和所筛选值的上下行
3
4
5
、grep –l –r参数
搜索含有keyword关键字文件,-l只列出含有关键字的文件名,-r递归
grep -l -r keyword ./
、grep 参数–x –w
cat 1.txt | grep –x ..1.1匹配的是行,只有这一行只有..1.1的时候才进行匹配
cat 1.txt | grep –w ..1.1匹配的词组,只要这一行有..1.1就是匹配的
、grep –f 后跟文件名,如:
Cat 1.txt | grep –f 2.txt 2.txt内容中的每一行都会在1.txt进行匹配下,如果1.txt文件中有匹配的,则1.txt文件将显示匹配内容,如果2.txt和1.txt的文件都很大,是很消耗性能的
、更改用户的uid和组的gid
usermod –u uid 用户名
groupmod –g gid 组名
、sed 用法
1、sed将号码前的替换成空
sed -i 's/^//g' 1.txt
2、将文本中的第行上面插入xxxxx
sed -i "i/xxxxx" 1.txt
3、在开头加上”,同时将空格替换成/+空格
sed -i -e "s/^//"/g" -e "s/$//"/g" -e "s/ //// /g" mdsp_filepath.txt
4、分步写,则为:
sed -i "s/^//"/g" 1.txt
sed -i "s/ //// /g" 1.txt
5、在文件内容的末尾加上”
sed -i "s/$//"/g" 1.txt
、xargs用法
1、批量重命名文件
ls | xargs -i mv { } { }.bak
2、在文件中,查询关键字的信息
find . -name '*.CDR'|xargs grep '关键字'
、awk用法
awk –F指定分隔符,默认的分隔符为空格,如
以|作为分隔符,取第九列
awk -F '|' '{ print $9}' 1.txt
、批量取文件所在的绝对路径dirname,文件名须不带空格
station.example.com~ # cat 1.txt
/etc/ATAEVRCSPC/slessp2_x.properties
/etc/ATAEVRCSPC//task.properties
/etc/DIR_COLORS
station.example.com:~ # for i in $(cat 1.txt);do dirname $i;done
/etc/ATAEVRCSPC
/etc/ATAEVRCSPC/
/etc
、批量取文件名basename
station.example.com~# for i in $(cat 1.txt);do basename $i;done
slessp2_x.properties
task.properties
DIR_COLORS
netcontrol_global_hooks
、rsync传输文件
rsync –avH –n –delete ./ oracle@...:/home/oracle/
-n 并不会真正的传输,只是一种测试
-a示以递归方式传输文件,并保持所有文件属性
--delete 如果远程文件和被传输的目录文件不同,则删除(谨慎使用)
后续继续更新,现在脑袋就先想到了这些,朋友们觉得好的,就留言给我,我一并整出来,一起进步!!!
Linux系列教程(五)——Linux常用命令之链接命令和权限管理命令
大家好,我是可乐,专注于原创,乐于分享的程序猿。本系列教程将持续更新,欢迎微信搜索「IT可乐」第一时间获取内容。回复《电子书》获取我为大家精心筛选的免费书籍资源。 上篇博客我们讨论了Linux文件和目录的处理命令,对于新手而言,无需记住命令的详尽语法,理解其功能并根据需要查阅即可。本篇我们将探讨链接命令和权限管理命令。链接命令
命令名称:ln 英文原意:link 命令所在路径:/bin/link 执行权限:所有用户 功能描述:生成链接文件 语法:ln -s 源文件目标文件 -s 创建软链接 不加 -s 创建硬链接 示例:创建文件 /etc/issue 的软链接 /tmp/issue.soft:ln -s /etc/issue /tmp/issue.soft
创建文件 /etc/issue 的硬链接 /tmp/issue.hard:ln /etc/issue /tmp/issue.hard
软链接和硬链接的关键区别在于:软链接以'l'开头,硬链接以'-'开头
软链接所有者和所属组具有完全操作权限,而硬链接没有
软链接类似Windows快捷方式,包含指向源文件的箭头
硬链接与源文件名称不同,但属性完全相同,可同步更新
通过ls -i查看文件i节点,软链接与源文件的i节点不同,硬链接相同
硬链接不能指向目录,且跨分区创建受限
权限管理命令
更改文件或目录权限命令:chmod
语法:chmod { ugoa}{ +-=}{ rwx}文件或目录 -R 递归修改权限 说明:ugoa分别代表所有者、所属组、其他用户和所有人
rwx表示读、写、执行权限,分别对应4、2、1
示例:赋予/tmp/tmp.log所有者x权限:chmod u+x /tmp/tmp.log
赋予所属组和其它用户w权限:chmod g+w,o+w /tmp/tmp.log
用数字表示权限,如赋予/tmp/tmp.log权限rwxrw-rw-,表示为:使用chmod tmp.log
递归修改所有文件或目录权限:chmod -R /tmp
改变文件或目录所有者命令:chown
语法:chmod 用户文件或目录 权限更改仅限于root用户改变文件或目录所属组命令:chgrp
语法:chgrp用户组文件或目录 权限更改仅限于root用户显示、设置文件的缺省权限命令:umask
语法:umask -S -S以rwx形式显示新建文件的默认权限 默认新建文件权限为rwxr-xr-x(),可通过umask -S显示当前掩码值,然后设置umask 来将新建文件默认权限调整为rwxr-xr--()总结
本篇介绍了链接命令ln和权限管理命令的使用。理解软链接与硬链接的区别,以及它们在不同场景下的应用。权限管理命令提供了灵活的权限调整方式,确保资源的正确使用。本系列教程将持续更新,期待您的关注,回复《电子书》获取精选学习资料。linux虚拟机常用命令
linux虚拟机的常用命令有很多种,具体介绍如下:
1、# virsh list //查看已打开虚拟机列表
2、# virsh list --all //查看所有虚拟机列表
3、# virsh version //查看virsh版本号
4、# virsh shutdown node1 //关机node1虚拟机
5、# virsh start node1 //启动node1虚拟机
6、# virsh dumpxml node1 > node1.xml//导出node1虚拟机配置文件
7、# virsh destroy node1 //强制关机node1虚拟机
8、# virsh undefine node1//取消node1定义
9、# virsh define node1.xml //重新定义node1
Linux常用命令系列 apt-get 由来命令选项示例详解
Linux的开源特性使其拥有丰富的命令行工具,其中之一便是apt-get,它在软件包管理中扮演重要角色。本文将深入探讨apt-get的起源和命令选项。
apt-get起源于早期Linux,当时软件包管理是个复杂任务,用户需要手动处理源码安装。为简化这个过程,Debian发行版引入了apt工具,其中包括前端命令行工具apt-get。apt-get的核心功能是自动解决软件包依赖关系,提供了一个用户友好的命令行接口,极大地方便了软件包的安装和管理。
apt-get的诞生解决了dpkg(Debian的软件包管理系统)中无法自动处理依赖关系的问题。通过apt-get,用户可以直接从软件源获取、安装、更新和卸载软件包,无需手动编译。它支持的命令选项丰富多样,如update用于同步软件包索引,upgrade用于安装新版本,dist-upgrade则能智能处理依赖更新,install用于安装软件包,remove用于卸载,source用于获取源代码包,以及各种选项如--fix-broken用于修复依赖错误。
apt-get的配置文件管理也相当灵活,允许用户通过命令行选项或配置文件自定义操作。选项如--yes可以自动接受安装提示,而--download-only则只下载软件包而不安装。掌握这些命令和选项,用户可以高效地管理Linux系统中的软件包,确保软件包保持最新状态。
以下是一些apt-get的常用命令示例,供用户参考和实践:
Linux入门级常用命令学习笔记
以下是我学习Linux时所用到的命令,整理成笔记,方便日后反复练习。让我们一起来看看这些基础的Linux命令吧。
一、Linux实战命令
1. pwd查看我们所在的目录。# /root 就是根目录
2. ipconfig查看当前服务器的网络设备信息。如果有网盘,就有如下提示:
3. free -h检查当前服务器的内存是否够用。可以看到有2.3G的可用内存。
4. df -lh查看网络磁盘空间是否足够。
5. mkdir code新建一个目录,起名为code。cd命令可以把当前目录切换到这个目录。
6. git clone 地址可以拉取项目到本地进行调试。然后切换到项目所在的目录。
7. ls查看当前目录有哪些文件。
8. du -sh *来查看项目占用了多少空间。
9. cat 文件名查看文本文件的内容。
. uname -a查看系统的版本。
. yum install java-1.8.0-openjdk* -y用系统自带的软件管理器安装java。
. java -version查看java的版本号。
. which java查看java的安装目录。
. wget maven地址下载安装maven。
. tar -zxvf 文件名解压文件。
. find -name ".jar"查找文件命令。
. cp 文件名复制文件到当前目录。mv 旧文件名 新文件名为文件改名。
. nohup java后台启动程序。
. jobs看看服务器中有没有运行任务。
. ps -ef查看系统进程。
. grep在众多进程中筛选出java进程。|为管道符。
. netstat -ntlp查看java占用的端口。
. tail -n error.og查看最近的行错误命令。之前要运行cd log
. curl 网址访问网址或者端口。
. sz error.log下载日志到本地。
. vim pom.xml用vim编辑器快速修改一下代码。
. kill杀死进程
. top查看进程状态。
. vim start.ssh写一个shell脚本。
. chmod a+x start.sh给文件添加权限。
. history查看历史命令。help查看帮助文件。
. rm -rf /*删除当前目录下所有文件。
二、学后反思
学习Linux,重在实际操作演练,多敲多练,不要死记硬背。可以看着视频边看边操练。
我也是一个Linux的初学者,刚刚开始感觉有点儿吃力,但看多了,用多了一切都感觉不是那么陌生了。
好了,还不快去申请或者购买一个服务器马上开启实操吧?
Linux常用命令大全
系统信息arch 显示机器的处理器架构(1)
uname -m 显示机器的处理器架构(2)
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/cpuinfo 显示CPU info的信息
cat /proc/interrupts 显示中断
cat /proc/meminfo 校验内存使用
cat /proc/swaps 显示哪些swap被使用
cat /proc/version 显示内核的版本
cat /proc/net/dev 显示网络适配器及统计
cat /proc/mounts 显示已加载的文件系统
lspci -tv 罗列 PCI 设备
lsusb -tv 显示 USB 设备
date 显示系统日期
cal 显示年的日历表
date . 设置日期和时间 - 月日时分年.秒
clock -w 将时间修改保存到 BIOS
关机 (系统的关机、重启以及登出 )
shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
shutdown -h hours:minutes 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销
文件和目录
cd /home 进入 '/ home' 目录'
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~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 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
file file1 outputs the mime type of the file as text
iconv -l 列出已知的编码
iconv -f fromEncoding -t toEncoding inputFile outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.
find . -maxdepth 1 -name *.jpg -print -exec convert "{ }" -resize x "thumbs/{ }" ; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)
文件搜索
find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录
find / -user user1 搜索属于用户 'user1' 的文件和目录
find /home/user1 -name *.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
find /usr/bin -type f -atime + 搜索在过去天内未被使用过的执行文件
find /usr/bin -type f -mtime - 搜索在天内被创建或者修改过的文件
find / -name *.rpm -exec chmod '{ }' ; 搜索以 '.rpm' 结尾的文件并定义其权限
find / -xdev -name *.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备
locate *.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令
whereis halt 显示一个二进制文件、源码或man的位置
which halt 显示一个二进制文件或可执行文件的完整路径
挂载一个文件系统
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 FAT文件系统
mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享
磁盘空间
df -h 显示已经挂载的分区列表
ls -lSr |more 以尺寸大小排列文件和目录
du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间'
du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小
rpm -q -a --qf '%{ SIZE}t%{ NAME}n' | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)
dpkg-query -W -f='${ Installed-Size;}t${ Package}n' | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)
用户和群组
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" 用户组的用户
useradd user1 创建一个新用户
userdel -r user1 删除一个用户 ( '-r' 排除主目录)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
passwd 修改口令
passwd user1 修改一个用户的口令 (只允许root执行)
chage -E -- user1 设置用户口令的失效期限
pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户
grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组
文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消
ls -lh 显示权限
ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示
chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
chown user1 file1 改变一个文件的所有人属性
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chgrp group1 file1 改变文件的群组
chown user1:group1 file1 改变一个文件的所有人和群组属性
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 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件
chmod o-t /home/public 禁用一个目录的 STIKY 位
文件的特殊属性 - 使用 "+" 设置权限,使用 "-" 用于取消
chattr +a file1 只允许以追加方式读写文件
chattr +c file1 允许这个文件能被内核自动压缩/解压
chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
chattr +s file1 允许一个文件被安全地删除
chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
lsattr 显示特殊的属性
打包和压缩文件
bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件
bzip2 file1 压缩一个叫做 'file1' 的文件
gunzip file1.gz 解压一个叫做 'file1.gz'的文件
gzip file1 压缩一个叫做 'file1'的文件
gzip -9 file1 最大程度压缩
rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1'
rar x file1.rar 解压rar包
unrar x file1.rar 解压rar包
tar -cvf archive.tar file1 创建一个非压缩的 tarball
tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件
tar -tf archive.tar 显示一个包中的内容
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式压缩包
RPM 包 - (Fedora, Redhat及类似系统)
rpm -ivh package.rpm 安装一个rpm包
rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告
rpm -U package.rpm 更新一个rpm包但不改变其配置文件
rpm -F package.rpm 更新一个确定已经安装的rpm包
rpm -e package_name.rpm 删除一个rpm包
rpm -qa 显示系统中所有已经安装的rpm包
rpm -qa | grep mand file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT
cat file1 | command( sed, grep, awk, grep, etc...) result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中
cat file1 | command( sed, grep, awk, grep, etc...) result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中
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 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2"
sed '/^$/d' example.txt 从example.txt文件中删除所有空白行
sed '/ *#/d; /^$/d' example.txt 从example.txt文件中删除所有注释和空白行
echo 'esempio' | tr '[:lower:]' '[:upper:]' 合并上下单元格内容
sed -e '1d' result.txt 从文件example.txt 中排除第一行
sed -n '/stringa1/p' 查看只包含词汇 "string1"的行
sed -e 's/ *$//' example.txt 删除每一行最后的空白字符
sed -e 's/stringa1//g' example.txt 从文档中只删除词汇 "string1" 并保留剩余全部
sed -n '1,5p;5q' example.txt 查看从第一行到第5行内容
sed -n '5p;5q' example.txt 查看第5行
sed -e 's/*/0/g' example.txt 用单个零替换多个零
cat -n file1 标示文件的行数
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 file1 file2 合并两个文件或两栏的内容
paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分
sort file1 file2 排序两个文件的内容
sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份)
sort file1 file2 | uniq -u 删除交集,留下其他的行
sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)
comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容
comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容
comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分
字符设置和文件格式转换
dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX
unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS
recode ..HTML page.txt page.html 将一个文本文件转换成html
recode -l | more 显示所有允许的转换格式
文件系统分析
badblocks -v /dev/hda1 检查磁盘hda1上的坏磁块
fsck /dev/hda1 修复/检查hda1磁盘上linux文件系统的完整性
fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性
e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性
e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性
fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性
fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性
fsck.msdos /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性
dosfsck /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性
初始化一个文件系统
mkfs /dev/hda1 在hda1分区创建一个文件系统
mke2fs /dev/hda1 在hda1分区创建一个linux ext2的文件系统
mke2fs -j /dev/hda1 在hda1分区创建一个linux ext3(日志型)的文件系统
mkfs -t vfat -F /dev/hda1 创建一个 FAT 文件系统
fdformat -n /dev/fd0 格式化一个软盘
mkswap /dev/hda3 创建一个swap文件系统
SWAP文件系统
mkswap /dev/hda3 创建一个swap文件系统
swapon /dev/hda3 启用一个新的swap文件系统
swapon /dev/hda2 /dev/hdb3 启用两个swap分区
备份
dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的完整备份
dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的交互式备份
restore -if /tmp/home0.bak 还原一个交互式备份
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和压缩将本地目录同步到远程目录
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远程主机上执行一次备份本地磁盘的操作
dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件
tar -Puf backup.tar /home/user 执行一次对 '/home/user' 目录的交互式备份操作
( 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包
dd if=/dev/hda of=/dev/fd0 bs= count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作
dd if=/dev/fd0 of=/dev/hda bs= count=1 从已经保存到软盘的备份中恢复MBR内容
光盘
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 创建一个目录的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镜像文件
cd-paranoia -B 从一个CD光盘转录音轨到 wav 文件中
cd-paranoia -- "-3" 从一个CD光盘转录音轨到 wav 文件中(参数-3)
cdrecord --scanbus 扫描总线以识别scsi通道
dd if=/dev/hdc | md5sum 校验一个设备的md5sum编码,例如一张 CD
网络 - (以太网和WIFI无线)
ifconfig eth0 显示一个以太网卡的配置
ifup eth0 启用一个 'eth0' 网络设备
ifdown eth0 禁用一个 'eth0' 网络设备
ifconfig eth0 ..1.1 netmask ...0 控制IP地址
ifconfig eth0 promisc 设置 'eth0' 成混杂模式以嗅探数据包 (sniffing)
dhclient eth0 以dhcp模式启用 'eth0'
route -n show routing table
route add -net 0/0 gw IP_Gateway configura default gateway
route add -net ..0.0 netmask ..0.0 gw ..1.1 configure static route to reach network '..0.0/'
route del 0/0 gw IP_gateway remove static route
echo "1" /proc/sys/net/ipv4/ip_forward activate ip routing
hostname show hostname of system
host www.example.com lookup hostname to resolve name to ip address and viceversa(1)
nslookup www.example.com lookup hostname to resolve name to ip address and viceversa(2)
ip link show show link status of all interfaces
mii-tool eth0 show link status of 'eth0'
ethtool eth0 show statistics of network card 'eth0'
netstat -tup show all active network connections and their PID
netstat -tupl show all network services listening on the system and their PID
tcpdump tcp port show all HTTP traffic
iwlist scan show wireless networks
iwconfig eth1 show configuration of a wireless network card
hostname show hostname
host www.example.com lookup hostname to resolve name to ip address and viceversa
nslookup www.example.com lookup hostname to resolve name to ip address and viceversa
whois www.example.com lookup on Whois database
GO TOP INDEX ^
Microsoft Windows networks (SAMBA)
nbtscan ip_addr netbios name resolution
nmblookup -A ip_addr netbios name resolution
smbclient -L ip_addr/hostname show remote shares of a windows host
smbget -Rr smb://ip_addr/share like wget can download files from a host windows via smb
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share mount a windows network share